数据库sql性能参数调优
1、共享内存池,DM Server 的运行期间内存
MEMORY_POOL, 共享内存池大小,以兆为单位。共享内存池是由DM管理的内存
MEMORY_EXTENT_SIZE 指定了共享内存池每次扩展的大小
MEMORY_TARGET 则指定了共享内存池扩展到超过该值后,空闲时会收缩到的大小
MEMORY_N_POOLS 共享内存池个数
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
MEMORY_POOL 400 800 2000 2000 2000 2000
MEMORY_N_POOLS 2 2 11 11 59 59
MEMORY_TARGET 500 1000 2000 5000 7000 10000
2、数据缓存池
BUFFER NORMAL缓冲区大小M
BUFFER_POOLS NORMAL 缓冲区个数
RECYCLE RECYCLE缓冲区大小M 高并发或大量使用 with、临时表、排序等时,可以将值调大
RECYCLE_POOLS RECYCLE缓冲区个数 高并发或大量使用 with、临时表、排序等时,可以将值调大
FAST_POOL_PAGES FAST 快速缓冲区页数
FAST_ROLL_PAGES BUFFER中FAST POOL回滚页数量。取值范围0~9999999,最多不超过FAST_POOL_PAGES的75%
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
BUFFER 2000 5000 10000 20000 27000 37000
BUFFER_POOLS 11 17 37 67 101 101
RECYCLE 240 520 1000 2000 3000 4000
RECYCLE_POOLS 2 5 7 19 31 41
FAST_POOL_PAGES 3000 3000 9999 9999 99999 99999
FAST_ROLL_PAGES 1000 1000 1000 1000 9999 9999
3、日志缓冲区
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
RLOG_POOL_SIZE 256 256 1024 1024 2048 2048
4、字典缓冲区
DICT_BUF_SIZE 默认的配置大小为 50M,如果数据库中对象数量较多,或者存在大量分区表,可适当调大,对应缓存池DICT CACHE / CYT_CACHE
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
DICT_BUF_SIZE 128 128 512 512 1024 1024
5、SQL 缓冲区,很多应用当中都存在反复执行相同 SQL 语句的情况
同时设置参数 RS_CAN_CACHE=1 且 USE_PLN_POOL 非 0 时 DM 服务器才会缓存结果集
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
CACHE_POOL_SIZE 200 200 1024 1024 2048 2048
CLT_CACHE_TABLES 设置哪些表的结果集需要缓存
客户端结果集也可以缓存,但需要在配置文件 dm_svc.conf 中设置参数:
ENABLE_RS_CACHE = (1) //表示启用缓存;
RS_CACHE_SIZE = (100) //表示缓存区的大小为 100M, 可配置为 1-65535
RS_REFRESH_FREQ = (30) //表示每 30 秒检查缓存的有效性,如果失效,自动重查; 0 表示不检查。
6、排序缓冲区
SORT_FLAG 排序机制(0,1,2,3) 0:原排序机制
SORT_BLK_SIZE 排序的排序缓冲区分片大小,单位MB。取值范围1~512
SORT_BUF_SIZE 原排序机制下,排序缓存区最大值,单位MB。取值范围1~2048
SORT_BUF_GLOBAL_SIZE 新排序机制下,排序全局内存使用上限,单位MB。该值须大于SORT_BUF_SIZE的值,否则会在重启时被重置为SORT_BUF_SIZE两倍和100之间的最大值
TOP_ORDER_OPT_FLAG 优化带有 TOP 和 ORDER BY 子句的查询。 优化的效果是尽量使得 ORDER BY 的排序列所对应的基表可以使用包含排序列的索引,从而可以移除排序 SORT 操作符,减少排序操作。
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
SORT_FLAG 0 0 0 0 0 1
SORT_BLK_SIZE 1 1 1 1 1 1
SORT_BUF_SIZE 10 10 10 10 20 50
SORT_BUF_GLOBAL_SIZE 500 500 2000 2000 3000 10000
7、哈希缓存区
HJ_BUF_GLOBAL_SIZE HASH 连接操作符的数据总缓存大小,单位MB。取值范围10~500000。该值须大于HJ_BUF_SIZE的值
HJ_BUF_SIZE 单个HASH连接操作符的数据总缓存大小,单位MB。取值范围2~100000。该值须小于HJ_BUF_GLOBAL_SIZE的值
HAGR_BUF_GLOBAL_SIZE 分组、嵌套连接、集合运算、分析函数运算、统计信息、DISTINCT、临时表、TOP、ESEND操作符的数据总缓存大小,单位MB。取值范围10~1000000。该值须大于等于HAGR_BUF_SIZE
HAGR_BUF_SIZE 单个分组、嵌套连接、集合运算、分析函数运算、统计信息、DISTINCT、临时表、TOP、ESEND操作符的数据总缓存大小,单位MB。取值范围2~500000。该值须小于HAGR_BUF_GLOBAL_SIZE
4c8g 8c16g 16c32g 32c64g 48c96g 64c128g
HJ_BUF_GLOBAL_SIZE 500 800 2000 3000 8000 10000
HJ_BUF_SIZE 100 100 250 250 512 512
HAGR_BUF_GLOBAL_SIZE 500 800 2000 3000 5000 6000
HAGR_BUF_SIZE 100 100 250 250 512 512
8、
SESS_POOL_TARGET 会话缓冲区能扩充到的最大大小,单位KB,取值范围0~1010241024,0表示不限制
VM_POOL_TARGET 虚拟机内存池能扩充到的最大大小,单位KB,取值范围0~1010241024,0表示不限制
内存池 V$MEM_POOL 对应参数
SESSION SESS_POOL_TARGET(8192) 会话内存池总大小,用于存储每个会话的私有结构(游标、变量、执行上下文等)
VIRTUAL MACHINE VM_POOL_TARGET (8192) 虚拟机内存池,用于 SQL 执行过程中的临时内存(排序、哈希、临时表、物化视图等)
文章
阅读量
获赞
