ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dm_exec_query_stats 每隔一段时间自动清空的原因

2021-09-12 09:02:37  阅读:528  来源: 互联网

标签:QS dm stats exec Sql time total


查询某个时间段内比较耗时的Sql语句

    SELECT TOP 10
           ST.text AS '执行的SQL语句',
           QS.execution_count AS '执行次数',
           QS.total_elapsed_time/1000 AS '耗时',--ms
           QS.last_worker_time/1000 AS '持续工作时间',
           QS.total_logical_reads AS '逻辑读取次数',
           QS.total_logical_writes AS '逻辑写入次数',
           QS.total_physical_reads AS '物理读取次数',       
           QS.creation_time AS '执行时间' ,  
           QS.*
    FROM   sys.dm_exec_query_stats QS
           CROSS APPLY 
    sys.dm_exec_sql_text(QS.sql_handle) ST
    WHERE  QS.creation_time BETWEEN '2021-09-11 12:50:00' AND '2021-09-11 18:10:00' 
ORDER BY  QS.total_elapsed_time DESC

在客户的数据库服务器以及公司内部的数据库服务器中,都能正常的执行。

但是自己的个人电脑(Win10, Sql Server 2017)上却只返回最近几秒执行过的Sql语句。

测试发现原来是dm_exec_query_stats会隔个几秒就清空一次。

1.猜测:QUERY_STORE没有开启的原因?

验证后,不是。

2.网上找到的可能原因1:AUTO_CLOSE开启了

查看后,并没有开启

3.网上找到的可能原因2:数据库服务的启动账号缺少 Lock Pages in memory(锁定内存页)权限。

有人遇到过相同问题,再加上这个,添加 Lock Pages in memory 权限的方法值得一试。

最终发现,确实是缺少了这个权限。

 

 

需要添加权限的账户是Sql Server配置管理器中的启动服务的用户,并需要重新启动服务。

 

标签:QS,dm,stats,exec,Sql,time,total
来源: https://www.cnblogs.com/simpleworldz/p/15257368.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有