以下优化都会更改达梦数据库dm.ini 配置文件,重启数据库服务后生效
查询数据库当前参数:
--查询配置文件所有参数
SELECT * FROM V$DM_INI;
--指定参数名查询
SELECT * FROM V$DM_INI WHERE PARA_NAME = '实际的参数名';
DM数据库指定参数名查询dm.ini文件值:
第 20 章 问题跟踪和解决
P 173
20.5 调整配置参 调整配置参 数
在 DM 数据库中,很多参数都是动态的,会自动响应各种负载,但是 DBA 仍然可以调用
系统过程来改变 DM 实例的运行参数,从而获得更佳的性能体验。
DBA 可以在 DM 数据库运
行 过 程 中 执 行
SF_GET_PARA_VALUE 、
SF_GET_PARA_DOUBLE_VALUE 和
SF_GET_PARA_STRING_VALUE
这三个函数来获取系统的当前配置参数,
--------------------------------------------------------------------------
并且可以使用
SP_SET_PARA_VALUE 和
SP_SET_PARA_DOUBLE_VALUE 过程来修改静态/动态配置参数:
1. SF_GET_PARA_VALUE (scope int, paraname varchar(256))
配置参数的值类型为数值类型时使用该函数来获取当前值。
SCOPE 参数
为1 表示获取INI 文件中配置参数的值,
为 2 表示获取内存中配置参数的值。
2. SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187))
配置参数的值类型为浮点型时使用该函数来获取当前值。
SCOPE参数
为1表示获取INI文件中配置参数的值,
为 2 表示获取内存中配置参数的值。
3. SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187))
配置参数的值为字符串类型时用该系统函数来获取当前值。
SCOPE 参数
为 1 表示获取INI 文件中配置参数的值,
为 2 表示获取内存中配置参数的值。
4. SP_SET_PARA_VALUE (scope int, paraname varchar(256), value
int64)
该过程用于修改整型静态配置参数和动态配置参数。
SCOPE参数
为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。
为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。
当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息。
只有具有 DBA 角色的用户才有权限调用 SP_SET_PARA_VALUE。
5. SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187),alue double)
该过程用于修改浮点型静态配置参数和动态配置参数。
SCOPE
参数为 1 表示在内存和INI 文件中都修改参数值,此时只能修改动态的配置参数。
参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。
当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息。
只有具有 DBA 角色的用户才有权限调用SP_SET_PARA_DOUBLE_VALUE。
6. SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value
int64\double\varchar(256), deferred int, scope int64)
该过程用于修改系统整型、double、varchar 的静态配置参数或动态配置参数。
DEFERRED 参数,
为 0 表示当前 session 修改的参数立即生效,
为 1 表示当前 session 不生效,后续再生效,
默认为 0。
SCOPE
参数为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数。
参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。
只有具有 DBA 角色的用户才有权限调用
SF_SET_SYSTEM_PARA_VALUE。
DM 的动态 INI 参数分为系统级和会话级两种级别。会话级参数在服务器运行过程中被
修改时,之前创建的会话不受影响,只有新创建的会话使用新的参数值。
1. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), valuebigint)
设置某个会话级 INI 参数的值,设置的参数值只对本会话有效。
2. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187))
重置某个会话级INI参数的值,使得这个INI参数的值和系统INI参数的值保持一致。
3. SF_GET_SESSION_PARA_VALUE (paraname varchar(8187))
获得当前会话的某个会话级 INI 参数的值。
需要注意的是,在对参数进行调整前,DBA 应该深刻理解配置参数中每个参数的含义和
对系统的影响,避免由于错误的调整导致影响整个系统对外提供正常服务。对于一些关键业
务,在实际调整前,建议在测试系统上先进行试验,验证通过后再在生产系统上进行调整。
--查询参数
SELECT 'MAX_SESSIONS' AS 参数名, SF_GET_PARA_VALUE(1,'MAX_SESSIONS') AS 参数值 UNION ALL
SELECT 'MAX_OS_MEMORY',SF_GET_PARA_VALUE(1,'MAX_OS_MEMORY') UNION ALL
SELECT 'BUFFER',SF_GET_PARA_VALUE(1,'BUFFER') UNION ALL
SELECT 'BUFFER_POOLS',SF_GET_PARA_VALUE(1,'BUFFER_POOLS') UNION ALL
SELECT 'RECYCLE',SF_GET_PARA_VALUE(1,'RECYCLE') UNION ALL
SELECT 'RECYCLE_POOLS',SF_GET_PARA_VALUE(1,'RECYCLE_POOLS') UNION ALL
SELECT 'HJ_BUF_GLOBAL_SIZE',SF_GET_P