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