我想找出或至少估计单个查询(特定查询)在执行时会占用多少内存.在这里发布查询没有意义,因为我想在多个查询上执行此操作,并查看是否对不同的数据库进行了更改.有什么方法可以获得这些信息吗?
使用sql Server 2008 R2
谢谢
吉拉德.
解决方法
您可能需要查看DMV(动态管理视图),特别是
sys.dm_exec_query_memory_grants.请参阅此查询(取自
@L_301_1@):
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