SF_GET_SESSION_PARA_VALUE
定义:
int
SF_GET_SESSION_PARA_VALUE (
paraname varchar(8187) )
功能说明:
获得会话级 INI 参数的值。
参数说明:
paraname:会话级 INI 参数的参数名。
返回值:
会话级 INI 参数的值
举例说明:
获取会话级 INI 参数 JOIN_HASH_SIZE 的值:
SELECT SF_GET_SESSION_PARA_VALUE (‘JOIN_HASH_SIZE’);
行号 SF_GET_SESSION_PARA_VALUE(‘JOIN_HASH_SIZE’)
1 500000
六 参数修改
达梦数据库对于参数的修改,有三种方式:
1.直接修改参数配置文件dm.ini;
2.通过SQL语句修改;
3.通过相应函数修改;
直接修改配置文件不再说明,下面主要针对后两种情况进行阐述:
6.1 通过SQL语句修改参数
6.1.1 全局设置
用户可以通过ALTER SYSTEM语法修改静态或动态(系统级、会话级)参数值,使修改之后的参数值能够在全局范围内起作用。对于静态参数,只有指定SPFILE情况下,才能修改。
语法格式
ALTER SYSTEM SET ‘ ‘ = [DEFERRED] [MEMORY|BOTH|SPFILE];
参数
 指静态、动态(系统级、会话级)INI参数名字。
 指设置该INI参数的值。
[DEFERRED] 只适用于动态参数。指定DEFERRED,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,对当前会话和新创建的会话都生效。
[MEMORY|BOTH|SPFILE] 指设置INI参数修改的位置。其中,MEMORY只对内存中的INI值做修改;SPFILE则只对INI文件中的INI值做修改;BOTH则内存和INI文件都做修改。默认情况下,为MEMORY。对于静态参数,只能指定SPFILE。
语句功能
设置系统级的 INI 参数值。
举例说明
例 设置当前系统动态、会话级参数 SORT_BUF_SIZE 参数值为 200,要求延迟生效,对当前的 session 不生效,对后面创建的会话才生效。并且只修改内存。
ALTER SYSTEM SET ‘SORT_BUF_SIZE’ =200 DEFERRED MEMORY;
例 设置静态参数 MTAB_MEM_SIZE 参数值为 1200。
ALTER SYSTEM SET ‘MTAB_MEM_SIZE’ =1200 spfile;
6.1.2 会话级别设置用户可以通过 ALTER SESSION 语法修改动态会话级参数(即 TYPE 为 SESSION 的参数),使修改之后的 INI 参数值只对当前会话起作用,不会影响其他会话或系统的 INI 参数值。
语法格式
ALTER SESSION SET ‘ ‘ = [PURGE];
参数
 指动态会话级INI参数名字;
 指设置该INI参数的相应值;
[PURGE] 指是否清理执行计划。
语句功能
设置动态、会话级的 INI 参数值。
使用说明
设置后的值只对当前会话有效。当包含 PURGE 选项时会清除服务器保存的所有执行计划。
举例说明
例 设置当前会话的 HAGR_HASH_SIZE 参数值为 2000000。
ALTER SESSION SET ‘HAGR_HASH_SIZE’ =2000000;
6.2 通过函数修改单个参数值
6.2.1 SP_SET_PARA_VALUE定义:
void
SP_SET_PARA_VALUE (
scope int,
ini_param_name varchar(256)
value bigint
)
功能说明:
设置 dm.ini 文件中非浮点和字符串类型的参数值
参数说明:
scope:取值为 1,2 。1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;2 表示只修改 dm.ini 文件,服务器重启后生效。ini_param_name:dm.ini 文件中的参数名。
value:设置的值。
返回值:
无
举例说明:
将 dm.ini 文件中 HFS_CACHE_SIZE 参数值设置为 320
SP_SET_PARA_VALUE (1,’HFS_CACHE_SIZE’,320);
DMSQL executed successfully
used time: 10.289(ms). Execute id is 227.
SQL> select SF_GET_PARA_VALUE(2,’HFS_CACHE_SIZE’);
LINEID SF_GET_PARA_VALUE(2,’HFS_CACHE_SIZE’)
1 320
used time: 1.243(ms). Execute id is 228.https://www.cndba.cn/semiter/article/4176
6.2.2 SP_SET_PARA_DOUBLE_VALUE
定义:
void
SP_SET_PARA_DOUBLE_VALUE (
scope int,
ini_param_name varchar(256),
value double
)
功能说明:
设置dm.ini参数中浮点型的参数值
参数说明:
scope:取值为 1,2。1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;2 表示只可修改 dm.ini 文件,服务器重启后生效。
ini_param_name:dm.ini文件中的参数名。
value:设置的值。
返回值:
无
举例说明:
将dm.ini文件中SEL_RATE_EQU参数值设置为0.3
SP_SET_PARA_DOUBLE_VALUE(1, ‘SEL_RATE_EQU’, 0.3);
DMSQL executed successfully
used time: 10.040(ms). Execute id is 231.
https://www.cndba.cn/semiter/article/4176
6.2.3 SP_SET_PARA_STRING_VALUE
定义:
void
SP_SET_PARA_STRING_VALUE (
scope int,
ini_param_name varchar(256) ,
value varchar(8187)
)
功能说明:
设置 dm.ini 文件中的字符串型参数值
参数说明:
scope:取值为 1,2 。1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;2 表示只修改 dm.ini 文件,服务器重启后生效。
ini_param_name:dm.ini 文件中的参数名。
value:设置的字符串的值。
返回值:
无
举例说明:
将 dm.ini 文件中 SQL_TRACE_MAS 参数值设置为 1
SP_SET_PARA_STRING_VALUE(1, ‘SQL_TRACE_MASK’,’1’);
DMSQL executed successfully
used time: 8.278(ms). Execute id is 233.
6.2.4 SF_SET_SESSION_PARA_VALUE
定义:
void
SF_SET_SESSION_PARA_VALUE (
paraname varchar(8187),
value bigint
)
功能说明:
设置会话级 INI 参数的值
参数说明:
paraname: 会话级 INI 参数的参数名
value:要设置的新值
返回值:
无
举例说明:
设置会话级 ini 参数 JOIN_HASH_SIZE 的值为 2000:
SELECT SF_SET_SESSION_PARA_VALUE (‘JOIN_HASH_SIZE’, 2000);
DMSQL executed successfully
used time: 1.170(ms). Execute id is 234.
6.2.5 SP_RESET_SESSION_PARA_VALUE
定义:
void
SP_RESET_SESSION_PARA_VALUE (
paraname varchar(8187) )
功能说明:
重置会话级 INI 参数的值,使得参数的值和系统级一致。
参数说明:
paraname:会话级 INI 参数的参数名。
返回值:
无
举例说明:
重置会话级 INI 参数 JOIN_HASH_SIZE 的值:
SP_RESET_SESSION_PARA_VALUE (‘JOIN_HASH_SIZE’);
DMSQL executed successfully
used time: 1.089(ms). Execute id is 235.
6.2.6 SF_SET_SYSTEM_PARA_VALUE
定义:
void
SF_SET_SYSTEM_PARA_VALUE (
paraname varchar(256),
value bigint/double/varchar(256),
deferred int,
scope int)
功能说明:
修改系统整型、double、varchar 的静态配置参数或动态配置参数。
参数说明:
paraname:ini 参数的参数名。
value:要设置的新值。
deferred:是否立即生效。为 0 表示当前 session 修改的参数立即生效,为 1 表示当前 session 不生效,后续再生效,默认为 0。
scope:取值为 0、1、2 。0 表示修改内存中的参数值,1 表示修改内存和INI 文件中参数值,0 和 1 都只能修改动态的配置参数。2 表示修改 INI 文件中参数,此时可用来修改静态配置参数和动态配置参数。
返回值:
无
举例说明:
修改 INI 参数 JOIN_HASH_SIZE 的值:
SELECT SF_SET_SYSTEM_PARA_VALUE (‘JOIN_HASH_SIZE’,50,1,1);
https://www.cndba.cn/semiter/article/4176
6.2.7 SF_SET_SQL_LOG
定义:
INT
SF_SET_SQL_LOG (
svrlog int,
svrmsk varchar(1000)
)
功能说明:
设置服务器日志相关 INI 参数
参数说明:
svrlog:INI 参数 SVR_LOG 的设置值
svrmsk:INI 参数 SQL_TRACE_MASK 的设置值
返回值:
是否成功
举例说明:
设置服务器日志相关 INI 参数
SELECT SF_SET_SQL_LOG(1, ‘3:5:7’);
LINEID SF_SET_SQL_LOG(1,’3:5:7’)
https://www.cndba.cn/semiter/article/4176
1 1
used time: 15.798(ms). Execute id is 239.
七 其它配置文件
达梦数据库除了系统配置文件dm.ini,还存在其它各项功能对应的配置文件,每个配置文件的详细信息,可以自行查看官方文档,具体如下:
SQL> select name from sysobjects where name like ‘V$DM_%INI’;https://www.cndba.cn/semiter/article/4176
行号 namehttps://www.cndba.cn/semiter/article/4176
1 V$DM_INI
2 V$DM_ARCH_INI
3 V$DM_MAL_INI
4 V$DM_REP_RPS_INST_NAME_INI
5 V$DM_REP_MASTER_INFO_INI
6 V$DM_REP_SLAVE_INFO_INI
7 V$DM_REP_SLAVE_TAB_MAP_INI
8 V$DM_REP_SLAVE_SRC_COL_INFO_INI
9 V$DM_LLOG_INFO_INI
10 V$DM_LLOG_TAB_MAP_INI
11 V$DM_TIMER_INI
12 V$DM_ARCH_INI
13 V$DM_MAL_INI
14 V$DM_REP_RPS_INST_NAME_INI
15 V$DM_REP_MASTER_INFO_INI
16 V$DM_REP_SLAVE_INFO_INI
17 V$DM_REP_SLAVE_TAB_MAP_INI
18 V$DM_REP_SLAVE_SRC_COL_INFO_INI
19 V$DM_LLOG_INFO_INI
20 V$DM_LLOG_TAB_MAP_INI
21 V$DM_TIMER_INI
22 V$DM_INI
22 rows got
已用时间: 32.248(毫秒). 执行号:42.https://www.cndba.cn/semiter/article/4176