Database Watch
Database Watch 2008年9月版


SQL Server 2008ドキュメントは読み応え十分/
ボトルネック解消のヒント


加山恵美
2008/9/19


Club DB2で見たパフォーマンスチューニングの極意

 次はパフォーマンスチューニングについて少し考えてみましょう。

 システムをある程度運用していると、「なんだかレスポンスが遅いみたいだ」という状況に直面することがあります。運用側としては「追加投資や大掛かりな構成変更をするよりは、設定やSQLの調整で問題解決できれば助かる」と考えることでしょう。コストやリスクが少なくて済みますから。

  ただし実際にパフォーマンスをチューニングするにはシステムやデータベースの広く深い知識と理解、および経験が必要と考えられています。「なんとなく具合が悪い」という患者の漠然とした問題提起から原因を特定して状況を改善するのですから、お医者さんのような役割に近いかもしれません。

 パフォーマンスに問題が見られたら、まずするべきことは原因究明です。難しいのは問題を切り分け原因を探る手順です。昨今ではデータベースの監視ツールも高性能化や自動化が進んでいますが、データベースエンジニアならパフォーマンスチューニングの基本的な流れを押さえておきたいところです。

 以前、IBM DB2のコミュニティClub DB2で「パフォーマンス・チューニング ステップ――事例に学ぶアプローチ方法――」と題したセミナーを開催したことがありました。筆者も参加していましたので、ここからエッセンスだけ抽出して紹介しましょう。ちなみに、Club DB2はDB2の勉強会ではありますが、データベースに対する基本的な考え方は共通していますから、ほかの製品を導入している環境の方でも参考になると思います。

 参加した際に聞いたいくつかのポイントをここでまとめておきます。

問題の切り分け、基本の方程式

 単に「レスポンスが遅い」という状況に直面したとしても、原因はいろいろと考えられます。原因はサーバのリソースかもしれませんし、データベースのシステムにあるかもしれません。何の処理が遅いのか、いつ遅くなるのか、いつから遅くなったのか、などを明確にして分析し、原因を探っていきます。

 まだ問題が特定できていないのなら、システム・アクティビティを確認します。もしCPU使用率が100%なら、CPU使用量の内訳を確認します。ページングが発生しているかもしれません。もしそうなら、どの処理でページングが発生しているのかを調べていきます。

 CPUに余裕がありそうなら、I/O待ちが発生していないかどうかを確認します。もしそうなら、I/Oやディスクまわりをチューニングします。もし原因がCPU、I/O、ディスクでないなら、CPUを使い切れない原因を探します。

ボトルネックはどこにある?

 そこで探っていくのは同時実行数、パッケージ・キャッシュの生成、ロック待ちやデッドロックの発生の有無などです。それでもまだ明確な原因が見つからなければ、次はチューニング効果の高いSQLを探します。遅いSQLはどれか? ということです。

 チューニング対象となるSQLが絞り込まれれば、そのSQLで何が問題になるか分析します。アクセスプランを確認していくことにもなるでしょう。INDEXは? JOIN方式は? 統計情報は? といった情報を精査していきます。

ポイントは「いかにリソースを最大限に働かせるか」

 講師の日本アイ・ビー・エム ソフトウェア事業 インフォメーション・マネジメント IODテクニカル・セールス ICP-ITA 岡口純子氏はパフォーマンスチューニングについて、「いかにサーバ(のリソース)を最大限に働かせるか」と述べていました。あらゆる無駄を省き、サーバを限度ぎりぎりまで稼働させるための調整がパフォーマンスチューニングといえるかもしれません。

  もしサーバリソースに無駄も余裕もなければ、もうパフォーマンスチューニングでは手に負えません。例えばCPUが100%稼働またはディスクが満杯の状態で、削るものや譲るものがないというような状況です。サーバを増強するとなると別の困難がありますが、パフォーマンス向上を確実に実現させるには確かな状況分析と適切な判断が重要なのですね。

◆◆◆

 ではまた来月、お会いしましょう。

前のページへ 2/2
 Index
Database Watch 2008年9月版
SQL Server 2008ドキュメントは読み応え十分/
ボトルネック解消のヒント
・SQL Server 2008の実証結果を一般公開
  CQIプロジェクトの中身、徹底検証の成果
  CQIプロジェクトの3つのクオリティとその狙い
→ Page 2
・Club DB2で見たパフォーマンスチューニングの極意
 問題の切り分け、基本の方程式
 ボトルネックはどこにある?
 ポイントは「いかにリソースを最大限に働かせるか」

Database Watch


Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間