为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server x64 V8 (--03134284094-20231011-204277-20067 Pack2)
【问题描述】*:有一个dm数据库,高峰期执行查询特别慢,查看了该服务器的配置参数,发现BUFFER的设置相较于服务器内存设置较小,大概是10%左右,看了BUFFERPOOL视图,free几乎都是0,但是命中率又很高,这种情况应该把BUFFER调大吗?是不是只要时间长,free早晚是0,那么应该主要看哪个参数来调整BUFFER呢?
一般的,buffer,推荐建议设置服务器总内存的60%-70%左右,根据实际使用情况再调整。 数据库本身就是一个吃内存的软件,可以适当设置大一些。如果机器本身内存较小,建议增加内存。另外建议,数据库和应用分开放。
BUFFER命中率超99%就OK了,这里语句慢的话和BUFFER没联系,排除方向需要调整,可能是其它内存区不足。
所谓的高峰期慢,可以具体一些,低峰和高峰时候分别耗时多少?
执行计划是咋样
https://eco.dameng.com/document/dm/zh-cn/ops/instance-monitor
根据您第一sql 显示,buffer 设置可能有问题,根据您的物理内存情况. buffer 设置 60% - 80% .
参考资料:
https://eco.dameng.com/document/dm/zh-cn/ops/check-instance.html#3.1%20dm.ini%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6
建议: 高峰期,监控一下,资源使用情况. 如果高峰期,资源使用有瓶颈 ,应尽快确认,并增加资源.