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 |
SQL Server 2008ドキュメントは読み応え十分/
ボトルネック解消のヒント
CQIプロジェクトの中身、徹底検証の成果
CQIプロジェクトの3つのクオリティとその狙い
問題の切り分け、基本の方程式
ボトルネックはどこにある?
ポイントは「いかにリソースを最大限に働かせるか」
Database Watch |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|