国产达梦数据库(DM7)在初始化数据库实例时会涉及到数据库标识如端口号的配置,也有页大小、字符集等参数的初始化配置,其中一些参数是作用在数据库实例的整个生命周期内的,一旦初始化不能修改。在实际使用过程中这些参数的不同,可能会对数据存储、查询、分组等存在不同的影响,本篇根据官方文档说明、实践经验、测例总结,主要阐述参数值不同带来的不同影响效果。
1、 页大小(PAGE_SIZE)
数据库实例页大小
字符串列定义实际最大长度
4K
1900
8K
3900
16K
8000
32K
8188
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)等参数也是实例生命周期内不允许修改的,这些参数只会在做备份还原时要求一致性,对实际使用影响不大,可根据需求定义即可。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。