新米エンジニアの失敗再発防止メモ

自分そしてこの世界の皆が、同じ失敗をしないためのメモ

Twitterやってます!@rakuton_t
欲しいものリストのブタメンを送ってくれた方、ありがとうございます!

【SQL Server】SELECTやUPDATEが極端に重いときの対処

ずばりこれをやれば良い

EXEC sp_updatestats; --DB単位で実行

OR

UPDATE STATISTICS <テーブル名 or インデックス付きビュー名>; 

統計情報を更新

上記のクエリを流すことで、「統計情報」というものが更新されます。
これは、SQL Serverで内部的に保持している、どこでどんな値が出現するかをまとめた情報です。
ほっとくと古くなってしまってパフォーマンスが極端に落ちることがるようですね。

詳しくはこちらのサイトが分かりやすいかと思います。
www.atmarkit.co.jp

これ知ってないと分かりませんよね...

私の時は、結果件数が0件になるはずなのに、やけに時間がかかって原因が全く分かりませんでした。
会社のすごいおっちゃんに聞いてみたら参考サイトのURLだけくれました。
Oracleなど他のDBでも「統計情報」の概念はあるようなので、別の現場でも使える知識です。

すごいおっちゃんに感謝

私の記事が役に立ったら、どうぞ何か買ってください!→ Amazon欲しいものリスト