国产数据库达梦数据库(DM7)实例初始化参数浅析

网友投稿 824 2023-11-23

国产达梦数据库(DM7)在初始化数据库实例时会涉及到数据库标识如端口号的配置,也有页大小、字符集等参数的初始化配置,其中一些参数是作用在数据库实例的整个生命周期内的,一旦初始化不能修改。在实际使用过程中这些参数的不同,可能会对数据存储、查询、分组等存在不同的影响,本篇根据官方文档说明、实践经验、测例总结,主要阐述参数值不同带来的不同影响效果。

国产数据库达梦数据库(DM7)实例初始化参数浅析

1、 页大小(PAGE_SIZE)

数据页(也称数据块) 是 DM 数据库中最小的数据存储单元。 页的大小对应物理存储空间上特定数量的存储字节。页大小可以为 4KB、 8KB、 16KB 或者 32KB,默认值为8K。

该参数主要影响的是数据库中实际可存储的字符串长度大小和一行数据的总长度。

在基表列定义字符串类型时,其最大存储长度由数据库页面大小决定,可以指定一个不超过其最大存储长度的正整数作为字符长度,最大存储长度和页面大小的对应关系请见下表。另外,实际插入表中的列长度要受到记录长度的约束,每条记录总长度不能大于页面大小的一半(不包含大字段列)。

数据库实例页大小

字符串列定义实际最大长度

4K

1900

8K

3900

16K

8000

32K

8188

 这个限制长度只针对建表的情况,在定义变量的时候和表达式计算中,可以不受这个限制长度的限制。

选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。通长默认为8K即够用,也可根据实际业务需求选择合理的页大小或将长字符串列变为大字段列处理。

           2、 簇大小(EXTENT_SIZE)

簇是数据页的上级逻辑单元 ,由同一个数据文件中 16 个或 32 个连续的数据页组成。即每次分配新的段空间时连续的页数。没有特殊需求默认16就可以。

3、 大小写敏感(CASE_SENSITIVE)

标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。通俗来说,就是大小写不敏感时无论大小写都是一样的;大小写敏感时,只有“”中的内容是严格区分大小写的,其他都会默认转换成大写。

如下图示例中,大小写敏感的情况下,表名因为没有双引号会默认转换为大写,字段中加了双引号的c3和Cc4会保持原有大小写的样子且只有使用定义时的方式才可查询到相应内容。

如下图示例中,大小写不敏感的情况下,表名、列名、字符串内容全部忽略大小写,无论大写、小写、是否加双引号都不影响。

4、 字符集编码(CHARSET/UNICODE_FLAG)

字符集选项。 取值: 0 代表 GB18030, 1 代表 UTF-8, 2 代表韩文字符集 EUC-KR。 默认为 0 。

5、 VARCHAR类型长度是否以字符为单位(LENGTH_IN_CHAR)

1 或 Y:是, 所有 VARCHAR 类型对象的长度以字符为单位。 这种情况下, 定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为 8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过 8188;

0 或 N:否,所有 VARCHAR 类型对象的长度以字节为单位。默认是0。

该参数影响的仅仅是VARCHAR数据类型,对CHAR类型不影响。

当length_in_char=0时,varchar类型列存储单位为字节,如下图示例中c2列varchar(10)最多存储10个字节。

当length_in_char=1时,varchar类型列存储单位为字符(即2个字节),如下图示例中c2列varchar(10)最多存储20个字节。

6、 空格填充模式(BLANK_PAD_MODE)

设置字符串比较时, 结尾空格填充模式是否兼容 ORACLE。 取值: 1 兼容; 0 不兼容。默认为 0。

通俗来说,就是在比较、count等操作时是否严格区分字符串’a’和’a  ‘。

当BLANK_PAD_MODE=0时,除去group by 这种分组操作时严格区分外,其他比较、count等操作不严格区分’a’和’a  ‘,认为这两个字符串是相等的,如下图示例。

当BLANK_PAD_MODE=1时,所有操作严格区分’a’和’a  ‘,如下图示例。

除以上参数会影响到具体的使用外,还有默认加密算法、默认HASH算法、根密钥加密引擎、全库加密算法、是否使用改进的字符类型HASH算法(USE_NEW_HASH)等参数也是实例生命周期内不允许修改的,这些参数只会在做备份还原时要求一致性,对实际使用影响不大,可根据需求定义即可。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub-/29130514/viewspace-2655856/,如需转载,请注明出处,否则将追究法律责任。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mysql如何查询临时表
下一篇:mysql中事务和存储过程指的是什么
相关文章

 发表评论

暂时没有评论,来抢沙发吧~