我想找出或至少估计单个查询(特定查询)在执行时会占用多少内存.在这里发布查询没有意义,因为我想在多个查询上执行此操作,并查看是否对不同的数据库进行了更改.有什么方法可以获得这些信息吗?
使用sql Server 2008 R2
谢谢
吉拉德.
解决方法
您可能需要查看DMV(动态管理视图),特别是
sys.dm_exec_query_memory_grants.请参阅此查询(取自
here):
DECLARE @mgcounter INT SET @mgcounter = 1 WHILE @mgcounter <= 5 -- return data from dmv 5 times when there is data BEGIN IF (SELECT COUNT(*) FROM sys.dm_exec_query_memory_grants) > 0 BEGIN SELECT * FROM sys.dm_exec_query_memory_grants mg CROSS APPLY sys.dm_exec_sql_text(mg.sql_handle) -- shows query text -- WAITFOR DELAY '00:00:01' -- add a delay if you see the exact same query in results SET @mgcounter = @mgcounter + 1 END END
原文地址:https://www.jb51.cc/mssql/77172.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。