0
点赞
收藏
分享

微信扫一扫

使用 DMV 进行监视_识别内存授予等待性能问题(2)_针对 Azure SQL 数据库和 Azure SQL 托管实例进行手动性能优化

进击的铁雾 2022-02-26 阅读 60

识别内存消耗量较高的语句

使用以下查询来识别内存消耗量较高的语句:

SELECT IDENTITY(INT, 1, 1) rowId,
    CAST(query_plan AS XML) query_plan,
    p.query_id
INTO #tmp
FROM sys.query_store_plan AS p
    JOIN sys.query_store_runtime_stats AS r
        ON p.plan_id = r.plan_id
    JOIN sys.query_store_runtime_stats_interval AS i
        ON r.runtime_stats_interval_id = i.runtime_stats_interval_id
WHERE start_time > '2018-10-11 14:00:00.0000000'
      AND end_time < '2018-10-17 20:00:00.0000000';
GO
;WITH cte
AS (SELECT query_id,
        query_plan,
        m.c.value('@SerialDesiredMemory', 'INT') AS SerialDesiredMemory
    FROM #tmp AS t
        CROSS APPLY t.query_plan.nodes('//*:MemoryGrantInfo[@SerialDesiredMemory[. > 0]]') AS m(c) )
SELECT TOP 50
    cte.query_id,
    t.query_sql_text,
    cte.query_plan,
    CAST(SerialDesiredMemory / 1024. AS DECIMAL(10, 2)) SerialDesiredMemory_MB
FROM cte
    JOIN sys.query_store_query AS q
        ON cte.query_id = q.query_id
    JOIN sys.query_store_query_text AS t
        ON q.query_text_id = t.query_text_id
ORDER BY SerialDesiredMemory DESC;

主要参数说明 : 

1.  query_id:查询QUERY ID。

2.  query_sql_text:查询SQL文本。

3.  query_plan:执行计划XML文件。

4.  SerialDesiredMemory_MB:消耗内存量。

举报

相关推荐

0 条评论