性能問題の原因と対策
性能問題の原因と対策(データベース)
「性能問題の調査方法 その2(データベース調査)」や「性能問題の原因と対策(アーキテクチャ)」において、データベースに原因がある場合には、以下のデータベースチューニングをします。時間経過とともに当初想定していなかったデータベースの使用方法となっている可能性が多く、本来は定期的なチューニングが必要です。
①フラグメンテーション
データベースに対し、更新・追加・削除が頻繁に行われる場合に、フラグメンテーションが発生し性能劣化が発生します。このため、データベースの再作成(Rebuild)を行うことで性能が改善します。
②インデックス検索
インデックスが遅い理由には、インデックス列の偏りにより発生する場合があります。特定インデックスの偏りを無くすために、インデックス種別を変更し再作成します。また使用していないインデックスを削除します。
③オンラインREDOログファイル
大量更新処理によりREDOログファイル・UNDO表領域にI/Oが集中している場合は、ディスクを分散させます。またログスイッチでチェックポイントが発生している場合は、オンラインREDOログファイルのサイズ、またはオンラインREDOログファイルの個数を大きくします
④特定DISKにI/Oが多い
I/Oが集中するDISKを使用している表領域をパーティションニングし別DISKに分散させます。
⑤ロック
ロック時間が長い場合は、ロックしているSQLとロックされているSQLを特定し、そのロック範囲(行ロックと表ロック、DBロック)が適正か、SQLを見直します。
⑥無駄なSQL
本来一つのSQL発行で済む部分を複数回のSQLに分割して発行している場合は、アプリケーションのSQL発行を見直します。
次回は、「(8)性能問題の原因と対策(プログラム)」についてお話します。 (2008/06/06)