DP300-MON#26
SQL Server で 統計情報 を最新化 + Plan Cache クリア + 再 コンパイル の 手順 を順序通りに並べてください。
- sys.stats + STATS_DATE 関数で 古い統計情報 特定
- UPDATE STATISTICS [table] WITH FULLSCAN で 最新 化
- sp_recompile [object_name] で対象 Procedure / Function の Plan 強制再コンパイル
- 次回実行 で 新 Plan 適用 + 性能 改善 確認
解説
【正しい順序】
- ステップ 1: sys.stats + STATS_DATE 関数で 古い統計情報 特定
- ステップ 2: UPDATE STATISTICS [table] WITH FULLSCAN で 最新 化
- ステップ 3: sp_recompile [object_name] で対象 Procedure / Function の Plan 強制再コンパイル
- ステップ 4: 次回実行 で 新 Plan 適用 + 性能 改善 確認
【各ステップの理由】
- ステップ 1 sys.stats + STATS_DATE 関数で 古い統計情報 特定: sys.stats と STATS_DATE 関数で 統計情報 最終 更新日 を確認 し 古い 統計 (例: 30 日以上 経過) を 特定 します。
- ステップ 2 UPDATE STATISTICS [table] WITH FULLSCAN で 最新 化: UPDATE STATISTICS [table] [stats_name] WITH FULLSCAN で 全 行 サンプル で 統計情報 を 最新 化 し Optimizer の 推定 精度 を 向上 します。
- ステップ 3 sp_recompile [object_name] で対象 Procedure / Function の Plan 強制再コンパイル: sp_recompile [object] で対象 SP / Function の Plan 強制再 コンパイル を 設定 し 次回 実行 時に 新 Plan が生成されます。
- ステップ 4 次回実行 で 新 Plan 適用 + 性能 改善 確認: 次回 実行 で 新統計 ベース の新 Plan が適用 され Query Performance Insight / Query Store で 改善 効果 を 確認 します。
【誤った順序の問題点】
- Plan Cache クリア → 統計 最新化: 統計が古い まま Plan Cache クリア しても 同じ 悪い Plan が再生成されます。
- 効果 確認 → 統計 更新: 統計 更新 + Recompile なし では 効果 確認 不可能 です。

コメント