您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQLServer内存用不上,执行计划不缓存,磁盘压力大

bubuko 2022/1/25 20:08:10 sqlserver 字数 940 阅读 1476 来源 http://www.bubuko.com/infolist-5-1.html

最近在项目中遇到这样一个问题,客户反馈卡顿,但是卡顿语句已经很难优化了,而且卡顿的地方也很多。此时数据库服务器性能指标:cpu40%,磁盘等待10,内存7G/64G。 明显感觉到服务器有性能没充分发挥,都说SQLServer是非常吃内存的,内存一但吃了就不会吐出来,但是这个项目的内存却还有这么多,显 ...

  最近在项目中遇到这样一个问题,客户反馈卡顿,但是卡顿语句已经很难优化了,而且卡顿的地方也很多。此时数据库服务器性能指标:cpu40%,磁盘等待10,内存7G/64G。

明显感觉到服务器有性能没充分发挥,都说SQLServer是非常吃内存的,内存一但吃了就不会吐出来,但是这个项目的内存却还有这么多,显然不对,我问了公司的一些老手,他们让我不用管内存,只要磁盘和CPU没爆就没问题。但是苦于内存不够,执行计划一直都没缓存,那么就无法通过一些执行计划有关的视图查询出消耗CPU、磁盘性能较多语句。后来经过几番百度,原来是因为配置的AWE分配内存没有开启,而且SQLServer是32位的,导致SQLServer最多使用服务器的4G内存。后来开启AWE配置,并且重启数据库服务后内存终于飙了上去。有了足够的内存之后,CPU和磁盘的压力也明显小了,因为查询就可以从内存读取数据了,可以更多的使用内存而不是tempdb了,cpu也因为执行计划的缓存而减少了使用。

 

总结: CPU和磁盘的压力可能来自于内存过低,就像木桶的短板决定木桶的容量,内存不能决定,但是能很大程度影响。

    内存不够导致执行计划无法缓存,一些系统视图 例如:sys.dm_exec_query_stats没有执行计划的数据

    内存使用上不去是因为在32位的SQLServer中没有开启AWE分配内存

 

SQLServer内存用不上,执行计划不缓存,磁盘压力大

原文:https://www.cnblogs.com/chenshiheng/p/12418329.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶