前のプロジェクトで、2、3年の間に起きたDB性能問題の代表的なものを書き残しときます。
文字起こしver
1. indexが効いていなかった
1-1. キー項目の条件指定が不足していた。または、キー項目の条件指定が上から順に指定されていなかった(歯抜け)。
1-2. オプティマイザがデータ数によってどのindexを使うか毎回、判断を変えていた
1-3. 統計情報が正しくなくてオプティマイザが判断を誤っていた
1-4. テーブル定義の変更やらなんやらでindexが壊れていた
2. SQLがシンプルでも、アプリからSQLを発行する回数が多くてI/Oに時間がかかってた
3. プロセスの多重並列化でサーバのリソース食いつくしてた
4. 件数の多いデータに対して1件ごとにカーソルオープンやコミットをしていた