SQL Server 查询超时问题排查
  8NMXQYmb1MJi 2024年08月06日 39 0

生产环境单表查询超时,表数据500万+,这点数据按道理不加不加索引都不应该超时。
排查业务数据,发现业务数据每天插入25万+。初步怀疑并发导致数据处理不及时,进一步排查每分钟都有300的左右实时数据插入到业务表,锅应该不在这里
排查数据服务器,发现CPU占用不高,512G的内存占用高达96%。但sql server使用了1.7G,还有5、6个进程内存占用在100M以上,剩余进行都在100M以下,内存不应该使用到96%
排查资源监视器,sqlserver.exe提交内存485G,专用内存1.7G,应该是sql server的提交内存过大导致系统内存不足,示例如下图

 

处理:
修改sqlserver中最大服务器内存为400G(示例如下图),资源监视器中sqlserver.exe提交内存降到了400G左右,任务管理器中内存使用降到了80%

 

再次测试查询,20多毫秒得到查询结果

 

分析:
sql server 提交内存过大,专用内存不大,问题应该是sql server不主动释放内存,系统可用内存减少,在到达一定比例后系统开启了磁盘交换空间,导致sqlserver处理数据变慢

由于sql server的专用内存才1.7G,所以后续未对sql脚本占用内存等问题进行排查

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月06日 0

暂无评论

推荐阅读
  QNciO4k8wlAw   2024年08月07日   43   0   0 SQL Server
  IYkkJ2eDW1ug   2024年08月07日   52   0   0 SQL Server