目录

一、实例设置方法

二、各参数设置不同值的区别

1. 页大小

2. 簇大小

3. 标识符大小写敏感

4. 字符集选项

5. VARCHAR 类型长度是否以字符为单位


一、实例设置方法

达梦数据库利用./dminit进行数据库实例参数设置

./dminit help (查看可配置参数)

其中页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,需谨慎设置。下表为这几个参数的具体含义:

名称

含义

可设置值

page_size

数据文件使用的页大小

4/8/16/32

extent_size

簇大小,每次分配新的段空间时连续的页数

16/32/64

case_sensitive

标识符大小写敏感。当大小写敏感时,小写的标识符要用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写。

Y/y/N/n/1/0(默认为Y)

charset

字符集选项,0 代表 GB18030;1 代表 UTF-8;2 代表韩文字符集 EUC-KR

0/1/2(默认为0)

length_in_char

VARCHAR 类型长度是否以字符为单位

Y/N,1/0(默认为N)

例如:

./dminit path=/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y

CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5236

上述语句表示:设置页大小为 32 KB,簇大小为 32 KB,大小写敏感,字符集为 utf-8,数据库名为 DMDB,实例名为 DBSERVER,端口为 5236。

接下来主要介绍页大小、大小写敏感、字符集选项和VARCHAR 类型长度是否以字符为单位,当它们设置不同值的时候的具体区别。

二、各参数设置不同值的区别

1. 页大小

DM数据库中的页大小可以为 4KB、8KB、16KB 或者 32KB,用户在创建数据库时可以指定,默认大小为 8KB,一旦创建好了数据库,在该库的整个生命周期内,页大小都不能够改变。页大小对字符数据类型实际最大长度及每行记录的影响如下表所示(不同的数据库版本略有差异),每条记录总长度不能大于页面大小的一半。

数据库页大小

每个字符类型字段实际最大长度(字节)

每行记录除大字段外其他字段总长度(字节)

4K

1900

2000

8K

3900

4000

16K

8000

8000

32K

8188

16000

例如:采用默认的8K进行初始化数据库,测试用例如下:

创建表:create table t1 (c1 varchar2(8100),c2 varchar2(8100));插入数据:
declare
v varchar2(8100);
v_sql varchar2(8100);
begin
v:='a';
for i in 1..4000
loop
v:=v||'a';
end loop;
v_sql:='insert into t1(c1) VALUES ('''||v||''')';
print(v_sql);
execute immediate v_sql;
commit;
end;

运行结果:

2. 簇大小

簇是进行存储空间分配的基本单位。一个簇是由一系列逻辑上连续的数据页组成的逻辑存储结构。因此,簇是数据页的上级逻辑单元 ,由同一个数据文件中 16 个或 32 个连续的数据页组成。即每次分配新的段空间时连续的页数。没有特殊需求默认16就可以。

3. 标识符大小写敏感

case_sensitive参数用来设置字符串比较是否大小写敏感,用于确定数据库对象及数据是否区分大小写,默认为区分,不可更改。根本目的是为了兼容不同的数据库,从MYSQL和SQLSERVER 迁移过来的系统,建议使用大小写不敏感;从 ORACLE迁移过来的系统,建议使用大小写敏感,以便和原来系统匹配。

例如进行如如下测试:

创建表t1:create table t1(a1 char(10));
insert into t1 values(‘a’);
insert into t2 values(‘A’);
commit;

首先测试对表中内容的影响,初始化数据库采用大小写敏感,查询表t1:

select count(*) from t1 where a1=’a’;   ---查询成功,结果为1select count(*) from t1 where a1=’A’;   ---查询成功,结果为1

初始化数据库采用大小写不敏感,查询表t1:

select count(*) from t1 where a1=’a’;   ---查询成功,结果为2select count(*) from t1 where a1=’A’;   ---查询成功,结果为2

再测试对对象名的影响:

在大小写敏感时:

创建对象:create table a(a1 int);  ---执行成功select * from a;     ---执行成功select * from A;      ---执行成功select * from “a”;     ---执行失败:无效的表或视图名[A]select * from “A”;     ---执行成功
create table “b”(a1 int); ---执行成功select * from b;       ---执行失败:无效的表或视图名[B]select * from “b”;     ---执行成功select * from B;       ---执行失败:无效的表或视图名[B]select * from “B”;     ---执行失败:无效的表或视图名[B]
在大小写不敏感时:create table a(a1 int);  ---执行成功select * from a;        ---执行成功select * from A;         ---执行成功select * from “a”;     ---执行成功select * from “A”;     ---执行成功
create table “b”(a1 int); ---执行成功select * from b;            ---执行成功select * from “b”;        ---执行成功select * from B;            ---执行成功select * from “B”;         ---执行成功

由此可见,大小写不敏感时,双引号并不影响对象名。

4. 字符集选项

一般使用GB18030,GB18030 数字字母占 1 个字节,普通汉字占 2 个字节,部分繁体及少数民族文字占 4 字节。如果需要国际字符可以采用 Unicode,Unicode 在达梦中采用 UTF-8 编码格式,欧洲的字母字符占 1 到 2 个字节,亚洲的大部分字符占 3 个字节,附加字符为 4 个字节。如果只存储中文和字母数字,GB18030更节省空间些。

例如字符集选项为GB18030和UTF-8时,查看字母字符和汉字字符所占的字节长度:

字符集选项为GB18030--建表create table t1(c1 varchar(10));--插入数据insert into t1 values('a');
insert into t1 values('一');
insert into t1 values('二');
commit;--查看所占字节长度select c1,lengthb(c1),(ascii(c1)) from t1;

运行结果:

设置字符集选项为UTF-8时,运行以上代码

5. VARCHAR 类型长度是否以字符为单位

该参数的作用是建表时VARCHAR的长度是按照字符计算还是字节计算,默认以字节为单位,即字段的长度单位按照字节计算。如果采用字符为单位,字段的长度单位按照字符来计算,不同的字符集会导致字段长度不一样,实际最大长度受到页大小的限制。建议采用默认以字节为单位,如果从 MYSQL 迁移的同时又不方便扩大表结构的长度,需要设置为以字符为单位。

例如:在字符集为 gb18030,varchar 长度以字节为单位时

运行以下代码:

create table t2(name VARCHAR(3));insert into t2 values('一');commit;                   ---执行成功insert into t2 values('一二');commit;                   ---执行失败,列[NAME]长度超出定义

在字符集为UTF-8,varchar 长度以字符为单位时

create table t2(name VARCHAR(3));insert into t2 values('一');commit;                   ---执行成功insert into t2 values('一二');commit;                   ---执行成功

如果还有任何问题,欢迎到达梦云适配中心提问哦!

社区 | 达梦云适配中心 (dameng.com)

达梦数据库初始化实例参数说明(页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset))相关推荐

  1. 达梦数据库初始化实例

    ** 达梦数据库初始化实例 达梦数据库产品可进入官网下载www.dameng.com 1.1图形化初始化实例 初始化实例 在tool目录下执行./dbca.sh打开初始化图形化工具 1.选择创建数据实 ...

  2. 达梦数据库创建实例(图形化界面流程)

    虚拟机:VMWARE 操作系统:Kylin-Server-10-SP2-x86-Release-Build09-2021052474 数据库:dm8_20210818_x86_rh6_64_ent_8 ...

  3. 达梦数据库初始化、创建用户和修改密码

    达梦数据库初始化.创建用户和修改密码 进入数据库目录 cd /opt/dmdbms/bin/bin 初始化数据文件路径.簇大小和页大小 ./dminit path=/mnt/data EXTENT_S ...

  4. 达梦数据库 分区表实例

    达梦数据库 分区表实例 分区表 默认的表(索引组织表,无主键利用 rowid,并发不好) SQL> select para_name,para_value from v$dm_ini where ...

  5. 达梦数据库初始化常用参数查询及介绍

    1字符集 字符是各种文字和符号的统称,包括各个国家文字.标点符号.表情.数字等等. 字符集 就是一系列字符的集合.字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉 ...

  6. DM8达梦数据库数据文件整体迁移方式

    目录 一.前要 二.模拟环境准备: 三.名词定义 3.1 表空间和数据文件 3.2 重做日志(redo) 3.3 控制文件(dm.ctl) 3.4 参数文件(dm.ini) 3.5 dminit工具 ...

  7. DM8达梦数据库体系结构详解

    DM8达梦数据库体系结构详解 1.逻辑结构 1.1 表空间 1.2 段 1.3 簇 1.4 页 2.物理结构 2.1 数据文件 2.2 控制文件 2.3 重做日志文件 2.4 归档日志文件 2.5 配 ...

  8. 达梦数据库中各种表的管理

    上海蒙马软件技术有限公司 2021年7月28日 达梦数据库有:普通表.分区表.临时表.堆表(rowid).列存表(HUGE).外部表等 默认的普通表是索引组织部表(索引组织表,无主键利用 rowid, ...

  9. 达梦数据库安装学习总结--DCA下篇

    达梦数据库DCA概述 达梦数据库是一款完全自主原创的国产数据库,国产的操作系统及国产的数据库在国内使用不断扩大,升级及发展也日新月异,其中达梦数据库在政府及事业单位就得到广泛应用. DCA课程学习使用 ...

最新文章

  1. 9月,最值得看的30篇肠道健康文献!
  2. LBFT跨链共识机制
  3. Hat’s Words
  4. node中的Stream-Readable和Writeable解读
  5. Socket通信 客户端加密数据,传递数据密文到服务端,服务端解密密文 输出明文
  6. 洛谷 P1272 重建道路
  7. Java基础学习总结(136)——有关流资源关闭(try-with-resources与AutoCloseable)的使用总结
  8. 《三层架构之抽象工厂加反射》纠错
  9. 语义Web的一些概念和资源
  10. python3语法学习第四天--字符串
  11. Hadoop2.7.3伪分布式集群搭建
  12. adb 连接时候不弹出授权对话框
  13. PHP+SQlite 制作简单的留言板
  14. Windows2003终端服务器超出了最大允许连接数
  15. CQI原理及CQI指标优化
  16. 中间件技术及双十一实践·EagleEye篇
  17. Python读取MEIC文件(.nc格式及.asc格式)
  18. 游戏模块分析总结(4)之系统篇
  19. Android——Hander+Service,实现后台长期周期性定时任务
  20. Vivado仿真报错合集(更新中)

热门文章

  1. 厦门工程技术人员职称申报操作笔记 02 论文
  2. android pixelflinger 研究,Android Pixelflinger 研究
  3. Windows10 WSL2 安装 Ubuntu20.04LTS
  4. Spring Cloud云服务架构 - commonservice-config配置服务搭建
  5. Java 微信公众号每日自动给女朋友推送问候
  6. iOS 相机拍照、相册获取照片(仿微信) 一一 拍照、图片裁剪
  7. 布局云计算的下一个主场,紫光云引领行业云三大趋势
  8. 孤独的宇宙中,人类是个例外吗?
  9. HAL--独立看门狗、窗口看门狗
  10. 养老服务机构引入电子签章推动养老合同在线签