SQL
パターン1: RECOMPILE不要(主キー一発引き・プランキャッシュで十分)
出典: SQL Server で OPTION(RECOMPILE) を脳死で付けて遅くなった話 — 3パターンのコード比較(動作確認つき) / パターン1: RECOMPILE不要(主キー一発引き・プランキャッシュで十分)
SELECT OrderId, CustomerId, TotalAmount
FROM Orders
WHERE OrderId = @orderId;
▸ 実行ボタンで結果を表示
Source収録記事
この snippet は記事の「3パターンのコード比較(動作確認つき) / パターン1: RECOMPILE不要(主キー一発引き・プランキャッシュで十分)」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
3 件-- これは罠 SELECT * FROM Sessions WHERE SessionId = @sid OPTION (RECOMPILE); -- ↑ 1秒に100回叩かれる SELECT に付けると、コンパイル時間が積み重なって CPU が爆上がり
▶ 実行可
なぜ「とりあえずRECOMPILE」が逆効果になるのか
#6c4d462b81b8
SELECT OrderId, CustomerId, OrderDate FROM Orders WHERE Status = @status OPTION (RECOMPILE);
▶ 実行可
パターン2: RECOMPILEが効く(パラメータ依存性高)
#2118b549aaa7
SELECT SessionId, UserId, LastAccess FROM Sessions WHERE SessionId = @sid OPTION (RECOMPILE);
▶ 実行可
パターン3: RECOMPILE逆効果(高頻度+パラメータ依存なし)
#e99b05b9a5e5
