SQL
SQL Server 2012 SP3 以降なら dm_exec_query_stats も使える
出典: SQL Server tempdb スピルを業務 SE が本番で踏む 3 箇所 — 検知と回避の判断軸 — 罠①: メモリ grant 不足の検知 (DMV クエリ) / SQL Server 2012 SP3 以降なら dm_exec_query_stats も使える
-- 過去 grant が大きかった TOP 10 クエリ (2012 SP3 / 2014 SP2 / 2016+)
SELECT TOP 10
qs.execution_count,
qs.max_grant_kb / 1024 AS max_grant_mb,
qs.min_grant_kb / 1024 AS min_grant_mb,
qs.max_used_grant_kb / 1024 AS max_used_grant_mb,
qs.max_ideal_grant_kb / 1024 AS max_ideal_grant_mb,
SUBSTRING(qt.text, 1, 120) AS query_head
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
WHERE qs.max_grant_kb > 0
ORDER BY qs.max_grant_kb DESC;
▸ 実行ボタンで結果を表示
Source収録記事
この snippet は記事の「罠①: メモリ grant 不足の検知 (DMV クエリ) / SQL Server 2012 SP3 以降なら dm_exec_query_stats も使える」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
3 件-- 今この瞬間メモリ grant を持ってる / 待ってるクエリ SELECT mg.session_id, mg.request_time,
▶ 実行可
罠①: メモリ grant 不足の検知 (DMV クエリ)
#f191b89fd23c
-- Resource Semaphore のキュー俯瞰 SELECT resource_semaphore_id, target_memory_kb / 1024 AS target_mb,
▶ 実行可
罠①: メモリ grant 不足の検知 (DMV クエリ)
#825167296635
-- tempdb のファイル構成と autogrowth 設定 SELECT name, physical_name,
▶ 実行可
罠③: tempdb ファイル分割と autogrowth 設定の現状確認
#5e1f9e18ce2b
