DM数据库体系结构

目录

1.1逻辑结构概述

1.1.1数据库

1.1.2实例

1.2DM逻辑存储结构

1.2.1页

1.2.2簇

1.2.3段

1.2.4表空间

2.1配置文件

2.1.1dm.ini

2.1.2dmmal.ini

2.1.3dmarch.ini

2.1.4dm_svc.conf

2.1.5sqllog.ini

2.1.6其他

2.2控制文件

2.3数据文件

2.4重做日志文件

2.5归档日志文件

2.6备份文件

2.7跟踪日志文件

2.8事件日志文件

3.内存结构

3.1内存池

3.2缓冲区

3.2.3字典缓冲区

3.2.4 SQL缓冲区

3.3排序区

3.4哈希区


DM数据库体系结构

1.逻辑存储结构

图 1-1 DM体系结构图

1.1逻辑结构概述

在DM7之前版本的DM数据库中,“数据库”和“实例”这两个术语经常可以互相替换,意义也很相近。在DM7以及之后版本的数据库中,“数据库”和“实例”这两个概念之间有着很大的差别,甚至可以说它们是两个完全不同的实体。

DM数据库存储在服务器的磁盘上,而DM实例则存储于服务器的内存中。通过运行DM实例,可以操作DM数据库中的内容。

在任何时候,一个实例只能与一个数据库进行关联(装载、打开或者挂起数据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。但是在DM共享存储集群(DMDSC)中,多个实例可以同时装载并打开一个数据库(位于一组由多台服务器共享的物理磁盘上)。

图1-2实例与数据库的构成

1.1.1数据库

DM数据库指的是磁盘上存放在DM数据库中的数据的集合,一般包括:控制文件、数据文件、日志文件以及临时数据文件等。

1.1.2实例

实例一般是由一组正在运行的DM后台进程/线程以及一个大型的共享内存组成。简单来说,实例就是操作DM数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。

1.2DM逻辑存储结构

DM数据库的逻辑单元从大到小依次为:表空间(–>数据文件)–>段–>簇–>页。它们的层次结构如下(数据文件属于物理结构):

1.数据库由一个或多个表空间组成;

2.每个表空间由一个或多个数据文件组成

3.每个数据文件由一个或多个簇组成;

4.段是簇的上级逻辑单元,一个段可以跨多个数据文件;

5.簇由磁盘上连续的页(16(默认)、32、64个连续页)组成,一个簇总是在一个数据文件中;

6.页(4/8(默认)/16/32KB)是数据库中最小的分配单元,也是数据库中使用的最小的IO单元。

图1-3表空间、数据文件、段、簇、页的关系

DM数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。

下面我们按照逻辑结构从低层次到高层次来介绍这些概念。

​​​​​​​1.2.1

数据页(也称数据块)是DM数据库中最小的数据存储单元。

在DM数据库中,页大小可以为4KB、8KB、16KB或者32KB.一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能改变

 图1-4数据页的组成

页头控制信息包含了关于页类型、页地址等信息。

行偏移数组用于标识页上的空间占用情况以便管理数据页自身的空间。

在绝大多数情况下,用户都无需干预DM数据库对数据页的管理。不过,DM数据库还是提供了选项供用户选择。对于普通表和索引DM8提供了一个用于管理数据页填充比例的存储参数:

填充比例FILLFACTOR:指定插入数据时数据页的可用空间百分比,取值范围从0到100(默认值为0,等价于100),其余的空间被称为可扩展空间。可扩展空间可供页内的数据更新时使用。插入数据时填充比例的值越低,可由新数据使用的空间就越多;更新数据时填充比例的值越大,更新导致出现的页分裂的几率越大。

当插入的数据占据的数据页空间百分比低于FILLFACTOR时,允许数据插入该页,否则将当前数据页中的数据分为两部分,一部分保留在当前数据页中,另一部分存入一个新页中。

为了提高更新数据的性能,可以设置一个相对较低(但不是过低)的FILLFACTOR值,使得后续执行更新操作时,可以尽量避免数据页的分裂,提升I/O性能,不过这是以牺牲空间利用率来换取性能的提高。

以创建普通表为例,设置方式如下:

create table SYSDBA.TEST

(

snum int,

sname varchar(50)

)

storage(fillfactor 85,on TS_TEST)

数据库表中的每一行是一条记录。在DM中,除了Huge表,其他的表都是在数据页中按记录存储数据的。记录不能跨页存储,DM规定每条记录的总长度不能超过页面大小的一半。

​​​​​​​1.2.2

簇是数据页的上级逻辑单元,由同一个数据文件中16个或32个或64个连续的数据页组成。默认大小为16。一旦创建好数据库,此后该数据库的簇的大小就不能改变

当创建一个表/索引的时候,DM为表/索引的数据段分配至少一个簇(默认一个),同时数据库会自动生成对应数量的空闲数据页。如果初始分配的簇中所有数据页都已经用完,或者新插入/更新数据需要更多的空间,DM数据库将自动分配新的簇。

对于创建普通表和索引,DM8提供了几个和簇的存储参数:

1.初始簇数目INITIAL:

建立表时分配的簇个数(默认为1),1<INITIAL<256

2.下次分配簇数目NEXT:

指当表空间不够时,从数据文件中分配的簇个数(默认为1),1<NEXT<256;

3.最小保留簇数目MINEXTENTS:

当删除表中的记录后,如果表使用的簇数目小于这个值(默认为1),就不再释放表空间,1<MINEXTENTS<256;

以创建普通表为例:

create table person.person

(

email varchar(50),

phone varchar(25)

)

storage

(initial 5,minextents 5,next 2,on ts_person,fillfactor 85);

对于用户数据表空间:在删除表/索引对象中的记录的时候,DM数据库通过修改数据文件中的位图来释放簇,释放后的簇被视为空闲簇,可以供其他对象使用。

truncatetable删除表中所有记录的时候会保留表结构和表上的约束及索引信息。因此会留下1~2个簇供后续使用。

droptable/index删除表对象的时候,则此表/索引对应的段以及段中包含的簇全部收回,并供存储于此表空间的其他模式对象使用。

对于临时表空间:DM数据库会自动释放在执行SQL过程中产生的临时段,并将属于此临时段的簇空间还给临时表空间。需要注意的是,临时表空间文件在磁盘所占大小并不会因此而缩减,用户可以通过系统函数SF_RESET_TEMP_TS来进行磁盘空间的清理。

对于回滚表空间:DM数据库将定期检查回滚段,并确定是否需要从回滚段中释放一个或多个簇

​​​​​​​1.2.3

段是簇的上级逻辑分区单元,它由一组簇(不一定连续)组成。在同一个表空间中,段可以包含来自不同文件的簇,即一个段可以跨越不同的数据文件。段的分配和释放完全由DM数据库自动完成。表中的数据段和与该表相关的索引的索引段不必在同一表空间。

​​​​​​​1.2.4表空间

表空间有联机和脱机两种状态。

系统表空间(SYSTEM)、回滚表空间(ROLL)、重做日志表空间()和临时文件表空间(TEMP)不允许脱机,不允许修改数据缓冲区。

在DM数据库中,表空间由一个或者多个数据文件组成。DM数据库中的所有对象在逻辑上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。

在创建DM数据库时,会自动创建5个表空间:SYSTEM表空间、ROLL表空间、MAIN表空间、TEMP表空间和HMAIN表空间。

1.SYSTEM表空间存放了有关DM数据库的字典信息,用户不能在SYSTEM表空间创建表和索引。

2.ROLL表空间完全由DM数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行DML操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。

3.MAIN表空间在初始化库的时候,就会自动创建一个大小为128M的数据文件MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定MAIN表空间为用户默认的表空间。

4.TEMP表空间完全由DM数据库自动维护。当用户的SQL语句需要磁盘空间来完成某个操作时,DM数据库会从TEMP表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL语句中间结果集以及用户创建的临时表等都会使用到TEMP表空间。

5.HMAIN表空间属于HTS表空间,完全由DM数据库自动维护,用户无需干涉。当用户在创建HUGE表时,未指定HTS表空间的情况下,充当默认HTS表空间。

SYS、SYSSSO、SYSAUDITOR系统用户,默认的用户表空间是SYSTEM,

SYSDBA的默认表空间为MAIN,新创建的用户如果没有指定默认表空间,则系统自动指定MAIN表空间为用户默认的表空间。

如果用户在创建表的时候指定了存储表空间A,并且和当前用户的默认表空间B不一致时,表存储在用户指定的表空间A中,并且默认情况下,在这张表上面建立的索引也将存储在A中,但是用户的默认表空间是不变的,仍为B。

查看普通表空间信息:

select*fromV$tablespace;

查看huge表空间信息:

select*fromV$huge_tablespace;

查询表空间与数据文件对应关系

SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID= df.GROUP_ID; 

修改回滚表空间的数据文件路径的时候:

回滚文件的路径记录在控制文件里面,可以使用 dmctlcvt 工具在 DM 服务器关闭的状态下对控制文件进行修改。使用 dmctlcvt 工具将控制文件转换为文本文件,编辑文本文件中要修改的文件的路径后再使用 dmctlcvt 工具将文本文件转换为控制文件即可。

首先转换控制文件到文本文件:

dmctlcvt c2t D:\dm.ctl D:\ctl.txt

编辑 ctl.txt 文本文件中 fil_path=d:\roll.dbf 为 fil_path=e:\ roll.dbf,

保存文本文件。复制 d:\roll.dbf 文件为 e:\ roll.dbf。

最后转换文本文件到控制文件:

dmctlcvt t2c D:\ctl.txt D:\dm.ctl

这种修改文件路径的方法也可用于重做日志文件,系统表空间文件等路径的修改。 

只能只用dmctlcvt的原因:

因为使用alter tablespace修改表空间的数据文件路径时,必须将表空间设置为脱机状态alter tablespace offline但是系统表空间、回滚表空间、重做日志表空间和临时文件表空间不允许脱机。

2.物理存储结构

典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等。

​​​​​​​2.1配置文件

配置文件是DM数据库用来设置功能选项的一些文本文件的集合,配置文件以ini为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值来达成如下两个方面的目标:

1.启用/禁用特定功能项;

2.针对当前系统运行环境设置更优的参数值以提升系统性能

​​​​​​​2.1.1dm.ini

每创建一个DM数据库,就会自动生成dm.ini文件。dm.ini是DM数据库启动所必须的配置文件,通过配置该文件可以设置DM数据库服务器的各种功能和性能选项。

参数属性分为三种:静态、动态和手动。

静态,可以被动态修改,修改后重启服务器才能生效。

动态,可以被动态修改,修改后即时生效。动态参数又分为会话级和系统级两种。会话级参数被修改后,新参数值只会影响新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。

手动,不能被动态修改,必须手动修改dm.ini参数文件,然后重启才能生效。

动态修改是指DBA用户可以在数据库服务器运行期间,通过调用系统过程

SP_SET_PARA_VALUE()

SP_SET_PARA_DOUBLE_VALUE()

SP_SET_PARA_STRING_VALUE()

参数名必须加上单引号,加上单引号后,可以不用管大小写。

void

SP_SET_PARA_VALUE(

scope int,

ini_param_name varchar(256)

value bigint

)

scope:取值为1、2。1表示dm.ini文件和内存参数都修改,不需要重

启服务器;2表示只修改dm.ini文件,服务器重启后生效。

ini_param_name:dm.ini文件中的参数名。

value:设置的值。

void

SP_SET_PARA_DOUBLE_VALUE(

scope int,

ini_param_name varchar(256),

value double

)

void

SP_SET_PARA_STRING_VALUE(

scope int,

ini_param_namevarchar(256),

value varchar(8187)

)

注意对应的

SF_GET_PARA_VALUE()

SF_GET_PARA_DOUBLE_VALUE()

SF_GET_PARA_STRING_VALUE()

存储函数是有对应的返回值的,可用于DMSQL程序的编写,在管理工具调用这些存储函数无法查看参数值。

要查看dm.ini的PWD_POLICY参数值可以使用

select * from V$dm_ini where para_name='PWD_POLICY'

这里的参数名必须大写,加单引号

也可以这样:

select SF_GET_PARA_VAlUE(1,'pwd_POlICY');

部分参数如下:

COMPATIBLE_MODE(静态):是否兼容其他数据库模式。

0:不兼容,1:兼容SQL92标准,2:部分兼容ORACLE,

3:部分兼容MSSQLSERVER,4:部分兼容MYSQL,

5:兼容DM6,6:部分兼容TERADATA

PWD_POLICY(动态,系统级):密码策略

设置系统默认口令策略。0:无策略;1:禁止与用户名相同;2:口令长度不小于9;4:至少包含一个大写字母(A-Z);8:至少包含一个数字(0-9);16:至少包含一个标点符号(英文输入法状态下,除―和空格外的所有符号;若为其他数字,则表示配置值的和,如3=1+2,表示同时启用第1项和第2项策略。当COMPATIBLE_MODE=1时,PWD_POLICY的实际值均为0

​​​​​​​2.1.2dmmal.ini

dmmal.ini是MAL系统的配置文件。需要用到MAL环境的实例,所有站点dmmal.ini需要保证严格一致。

MAL系统是DM内部高速通信系统,基于TCP/IP协议实现。服务器的很多重要功能都是通过MAL系统实现通信的,例如数据守护、数据复制、MPP、远程日志归档等。MAL系统内部包含一系列线程,有MAL监听线程、MAL发送工作线程、MAL接收工作线程等。

​​​​​​​2.1.3dmarch.ini

dmarch.ini用于本地归档和远程归档。配置项如下:

​​​​​​​2.1.4dm_svc.conf

此文件中包含DM各接口及客户端需要配置的一些参数。在Linux平台下,此文件位于/etc目录。64位的DM安装在Win64操作平台下,此文件位于%SystemRoot%\system32目录;

如果对dm_svc.conf的配置项进行了修改,需要重启客户端程序,修改的配置才能生效。

dm_svc.conf配置文件的内容分为全局配置区和服务配置区。全局配置区在前,可配 置所有的配置项;服务配置区在后,以“[服务名]”开头,可配置除了服务名外的所有配置项。服务配置区中的配置优先级高于全局配置区。

​​​​​​​2.1.5sqllog.ini

sqllog.ini用于sql日志的配置。当把INI参数SVR_LOG置为1,才会打开SQL日志。

如果在服务器启动过程中,修改了sqllog.ini文件。修改之后的文件,只要调用过程SP_REFRESH_SVR_LOG_CONFIG() 就会生效。

SVR_LOG(动态,系统级)是否打开SQL日志功能

0:表示关闭;

1:表示打开;

2:按文件中记录数量切换日志文件,日志记录为详细模式;

3:不切换日志文件,日志记录为简单模式,只记录时间和原始语句。

​​​​​​​2.1.6其他

dmrep.ini 用于配置复制实例,详见DBA手册“数据复制”章节

dmllog.ini 用于配置逻辑日志,详见DBA手册“数据复制”章节

dmtimer.ini 用于配置定时器,用于数据守护中记录异步备库的定时器信息或数据复制中记录异步复制的定时器信息。

​​​​​​​2.2控制文件

查看控制文件内容:

./dmctlcvt type=1 src=/home/dmdba/dmdbms/data/DAMENG/dm.ctl dest=/tmp/dmctl.txt

使用dmctlcvt工具将dm.ctl转换为文本文件才能查看它的内容。

每个 DM 数据库都有一个名为 dm.ctl 的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容:

1.数据库名称;

2.数据库服务器模式;

3.OGUID 唯一标识;

4.数据库服务器版本;

5.数据文件版本;

6.数据库的启动次数;

7.数据库最近一次启动时间;

8.表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的表空间,数组的方式保存起来;

9.控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控制文件合法性,防止文件损坏及手工修改

​​​​​​​2.3数据文件

数据文件以 dbf 为扩展名,它是数据库中最重要的文件类型,一个 DM 数据文件对应磁盘上的一个物理文件或者达梦分布式数据库中的一个逻辑文件,数据文件是真实数据存储的地方。

可以在创建数据文件时通过 MAXSIZE参数限制其扩展量,当然,也可以不限制。举例如下:

create tablespace "DMTBS" datafile '/dm8/data/DMDB/DMTBS01.DBF' size 64 autoextend on next 2 maxsize 10240, '/dm8/data/DMDB/DMTBS02.DBF' size 64 autoextend on next 2 maxsize 10240 CACHE = "NORMAL";

create tablespace "DMTBS" datafile 'D:\dmdbms\data\DAMENG\DMTBS01.DBF' size 64 autoextend on next 2 maxsize 10240, 'D:\dmdbms\dat\DAMENG\DMTBS02.DBF' size 64 autoextend on next 2 maxsize 10240 CACHE = "NORMAL";

在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的数据文件是更好的选择。

​​​​​​​2.4重做日志文件

重做日志文件因为是数据库正在使用的日志文件,因此被称为联机日志文件。主要用于数据库的备份与恢复。

重做日志(即REDO日志)指在DM数据库中添加、删除、修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以log为扩展名。每个DM数据库实例必须至少有2个重做日志文件,默认两个日志文件为DAMENG01.log、DAMENG02.log,这两个文件循环使用。

非归档模式下,数据库会只将重做日志写入联机日志文件中进行存储。

归档模式下,数据库会同时将重做日志写入联机日志文件和归档日志文件中分别进行存储。

​​​​​​​2.5归档日志文件

归档日志文件,就是在归档模式下,重做日志被连续写入到归档日志后,所生成了归档日志文件。归档日志文件以归档时间命名,扩展名也是log。但只有在归档模式下运行时,DM数据库才会将重做日志写入到归档日志文件中。

​​​​​​​2.6备份文件

备份文件以bak为扩展名,当系统正常运行时,备份文件不会起任何作用,它也不是数据库必须有的联机文件类型之一。

备份文件自身包含了备份的名称、对应的数据库、备份类型和备份时间等信息。同时,系统还会自动记录备份信息及该备份文件所处的位置

​​​​​​​2.7跟踪日志文件

用户在dm.ini中配置SVR_LOG和SVR_LOG_SWITCH_COUNT参数后就会打开跟踪日志。跟踪日志文件是一个纯文本文件,以“dm_commit_日期_时间”命名,默认生成在DM安装目录的log子目录下面,管理员可通过ini参数SVR_LOG_FILE_PATH设置其生成路径。

打开跟踪日志会对系统的性能会有较大影响。

​​​​​​​2.8事件日志文件

DM数据库系统在运行过程中,会在log子目录下产生一个“dm_实例名_日期”命名的事件日志文件。事件日志文件对DM数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等一些致命错误。

3.内存结构

3.1内存池

3.1.1共享内存池

DM系统管理员可以通过DMServer的配置文件(dm.ini)来对共享内存池的大小进行设置,共享池的参数为MEMORY_POOL,该配置默认为200M。如果在运行时所需内存大于配置值,共享内存池也可进行自动扩展,INI参数MEMORY_EXTENT_SIZE指定了共享内存池每次扩展的大小,参数MEMORY_TARGET则指定了共享内存池能扩展到的最大大小。

​​​​​​​3.1.2运行时内存池

除了共享内存池,DMServer的一些功能模块在运行时还会使用自己的运行时内存池。

这些运行时内存池是从操作系统申请一片内存作为本功能模块的内存池来使用,如会话内存池、虚拟机内存池等

3.2缓冲区

​​​​​​​3.2.1数据缓冲区

DMServer中有四种类型的数据缓冲区,分别是NORMAL、KEEP、FAST和RECYCLE。

其中,用户可以在创建表空间或修改表空间时,指定表空间属于NORMAL或KEEP缓冲区。RECYCLE缓冲区供临时表空间使用,FAST缓冲区根据用户指定的FAST_POOL_PAGES大小由系统自动进行管理,用户不能指定使用RECYCLE和FAST缓冲区的表或表空间。

NORMAL缓冲区主要是提供给系统处理的一些数据页,没有特定指定缓冲区的情况下,默认缓冲区为NORMAL;KEEP的特性是对缓冲区中的数据页很少或几乎不怎么淘汰出去,主要针对用户的应用是否需要经常处在内存当中,如果是这种情况,可以指定缓冲区为KEEP。

select para_name,para_value,para_type from V$dm_ini where para_name like '%BUFFER%';

​​​​​​​3.2.2日志缓冲区

为了避免由于直接的磁盘IO而使系统性能受到影响,系统在运行过程中产生的日志并不会立即被写入磁盘,而是和数据页一样,先将其放置到日志缓冲区中。

DMServer提供了参数RLOG_BUF_SIZE对日志缓冲区大小进行控制,日志缓冲区所占用的内存是从共享内存池中申请的,单位为页数量。

单独设立日志缓 冲区,主要是基于以下原因:

1. 重做日志的格式同数据页完全不一样,无法进行统一管理;

2. 重做日志具备连续写的特点;

3. 在逻辑上,写重做日志比数据页 IO 优先级更高。

​​​​​​​3.2.3字典缓冲区

字典缓冲区主要存储一些数据字典信息,如模式信息、表信息、列信息、触发器信息等。每次对数据库的操作都会涉及到数据字典信息,访问数据字典信息的效率直接影响到相应的操作效率。该缓冲区配置参数为DICT_BUF_SIZE,默认的配置大小为5M。

如果在实际应用中涉及对分区数较多的水平分区表访问,例如上千个分区,那么就需要适当调大DICT_BUF_SIZE参数值。

相关视图:

V$DCIT_CACHE_ITEM:字典缓冲区中的字典对象的信息。

V$DICT_CACHE:字典缓冲区的信息。

​​​​​​​3.2.4 SQL缓冲区

SQL缓冲区提供在执行SQL语句过程中所需要的内存,包括计划、SQL语句和结果集缓存。

很多应用当中都存在反复执行相同SQL语句的情况,此时可以使用缓冲区保存这些语句和它们的执行计划,这就是计划重用。

DMServer在配置文件dm.ini提供了参数来支持是否需要计划重用,参数为USE_PLN_POOL,当指定为非0时,则启动计划重用;为0时禁止计划重用。

DM同时还提供了参数CACHE_POOL_SIZE(单位为MB),来改变SQL缓冲区大小,系统管理员可以设置该值以满足应用需求,默认值为20M。

在INI参数文件中同时设置参数RS_CAN_CACHE=1且USE_PLN_POOL非0时DM服务器才会缓存结果集。

客户端结果集也可以缓存,但需要在配置文件 dm_svc.conf 中设置参数:

ENABLE_RS_CACHE = (1) //表示启用缓存;

RS_CACHE_SIZE = (100) //表示缓存区的大小为 100M, 可配置为 1-65535

RS_REFRESH_FREQ = (30) //表示每 30 秒检查缓存的有效性,如果失效,自动重查; 0 表示不检查。

同时在服务器端使用INI参数文件中的CLT_CACHE_TABLES参数设置哪些表的结果集需要缓存。

​​​​​​​3.3排序区

排序缓冲区提供数据排序所需要的内存空间。当用户执行SQL语句时,常常需要进行排序,所使用的内存就是排序缓冲区提供的。

DMServer提供了参数来指定排序缓冲区的大小,参数SORT_BUF_SIZE在,由于该值是由系统内部排序算法和排序数据结构决定,建议使用默认值2M

​​​​​​​3.4哈希区

DMServer在dm.ini中提供了参数HJ_BUF_SIZE来进行控制,由于该值的大小可能会限制哈希连接的效率,所以建议保持默认值,或设置为更大的值。

服务器中有 HASH 相关的操作,需要用到 hash 缓冲区。

 

更多相关资料参考达梦云适配中心:

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心 (dameng.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值