Oracle SQLチューニング講座(1)
パフォーマンス向上の最短コースを知る Page 1
株式会社アゲハ
加藤 猛
2004/6/21
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局)
主な内容 --Page 1--
--Page 2--
|
「パフォーマンス・チューニング」という言葉を聞いて、頭を抱えるデータベース管理者(以下、DBA)や開発者の方は多いのではないでしょうか。「難しそうで、あまり深い知識はない」あるいは「つらくて、大変な作業」というイメージを持っている方もいると思います。
しかし、一方では「特にパフォーマンス・チューニングを意識していない」という意見も聞かれます。これは、近年の目覚ましいハードウェア技術の進歩によるものが大きいといえます。今日のハードウェアの性能は、高性能なCPU、大量なキャッシュを積んだ大容量ストレージや大量のメモリなど、一昔前のスーパーコンピュータ並みとなってきています。その強大なマシンパワーによって、以前ほど処理効率を気にしなくともそこそこのパフォーマンスが得られるようになったためか、効率が悪い処理が存在していることに気付かずに運用しているシステムも多いようです。実際、パフォーマンスが問題となったシステムを調査してみると、効率の悪い処理が山ほど見つかるケースも少なくありません。
もちろん、多少処理効率が悪かろうと、現行のパフォーマンス要件を満たしており、今後も負荷が増加しないシステムであれば、まったく問題ないでしょう。しかし、多くのシステムは年々データ量、ユーザー数が増加していく傾向にあります。例えば、インターネット・ショッピングを考えてみてください。このようなシステムでは「8秒ルール」や「3秒ルール」といったレスポンス時間が常に求められます。
効率化されていない処理が多く潜んでいるシステムの場合、当初は問題がなくても、取り扱い商品、顧客数が増えるにつれ、パフォーマンス要件を満たせなくなる可能性が非常に高くなってきます。レスポンス時間の遅延は、多くのユーザーの不満につながり、最悪の場合大事な顧客を失うことになりかねません。このようなシステムでは、パフォーマンスの良しあしが非常に重要です(図1)。
図1 データベースのパフォーマンスはサービスに大きな影響を与える |
そこで本連載では、代表的なRDBMSであるOracleデータベースを使用して、パフォーマンス改善を最も期待できるSQLチューニング方法について、前提の知識や取得すべき情報とその解説とともに、遭遇する可能性の高いケース・スタディによる分析、対応手順を紹介していきます。
具体的なSQLチューニングの話を始める前に、何を目的にしてパフォーマンス・チューニングを行っていくべきかを考えてみます。
データベースのシステム環境の多くは、データの変更やデータ量の増加、利用者数の増加、新しい機能の追加などによって、データベースの状態や使用状況は常に同じということはありません。そのため、以前は問題のなかった処理が、ユーザー数やデータ量の増加によって、求められるパフォーマンスをまったく満たさなくなってしまうということがよくあります。
そして、このような問題は、ハードウェアの増強、例えば高性能のCPUに載せ換えたり、CPU数、メモリを増やすことだけでは改善できない場合が多いのです。例えば、パフォーマンスの劣化原因が、非常に大きな表へのアクセスで索引が使用されず余分なアクセスが大量に発生している場合や、多くの利用者が同じデータにアクセスしてしまうような競合が発生している場合などが、それに当たります。
これでは、せっかくハードウェアの増強を行っても、まったく問題を解決できず、無駄な費用だけが発生したことになってしまいます。実際にパフォーマンスが悪化しているケースでも、予算などの問題で容易にハードウェアの増強ができる環境は非常に少ないものです。そこでまず、現在のシステム構成でパフォーマンス・チューニングを行わなければならないことがほとんどでしょう。
このような状況下では、現状を分析することで問題点を整理し、効果が最も大きなパフォーマンス・チューニング手法を選択して実施することが、最善の手段として挙げられます。適切なパフォーマンス・チューニングを行うことができれば、新たなハードウェアの増強の必要もなく、もしくは最小限の増強のみで、パフォーマンスの多くの問題に対処することが可能になります(図2)。つまりパフォーマンス・チューニングは、新たな投資の必要なく問題を解決できる、投資対効果の非常に高い手段であることを意味しています。
そこで、最終的なデータベースのパフォーマンス・チューニングの目的は、「限られたシステム・リソースの中で、最大限のパフォーマンス効果を出すこと」となります。
図2 限られたシステム・リソースの中で最大限のパフォーマンスを出す |
それでは次ページで、パフォーマンス・チューニングにおけるSQLチューニングの位置付け、SQLチューニングの手順について、実践的な見地から検討してみましょう。(次ページへ続く)
1/2 |
Index | |
連載 Oracle SQLチューニング講座(1) パフォーマンス向上の最短コースを知る |
|
Page 1 ・パフォーマンス・チューニング概要 ・パフォーマンス・チューニングの目的とは? |
|
Page 2 ・パフォーマンス・チューニングにおけるSQLチューニング ・SQLチューニングの手順 |
連載 Oracle SQLチューニング講座 |
- マッシュアップしたいけどPHPでDOMはイヤ! (2007/11/22)
お天気情報やグルメマップなどWebサービスをマッシュアップするには、DOM+XPathよりXQueryの方が断然便利だ - DBの常識を覆すDB2 9.5“Viper 2”の仕掛け (2007/11/15)
pureXMLからTransactional pureXMLへ進化を遂げたというDB2 9.5。データ容量を半分に、スループットを2倍にするってホント? - Transact-SQLでストアドプロシージャを作成する (2007/10/29)
ストアドプロシージャは複数のSQLをまとめ、条件分岐や繰り返しといった制御を記述できる。まずは基本構文から学ぼう - なぜ彼はLAMPを捨てXML DBに走ったのか (2007/10/22)
Webサイト構築で仕様変更が多発するケースはよくある。そんなときはLAMPよりもXML DBが断然有利だ
|
|
スポンサーからのお知らせ
- - PR -
必見!深刻な電源容量不足問題を解決する 最新の省電力テクノロジーはこれだ! New! |
最先端の基幹システムはどう作られたか? “サーバ仮想化技術”最前線を事例で紹介 |
セキュリティ問題も早期発見! コーディング段階から多くのバグを発見 |
延べ6000万人が触れる“ブログ”から 企業はいま、何を読み取るべきか |
耳の痛い“顧客からの声”。そこには、 次に何が起こるか、のヒントが隠れている |
【マンガ連載2】“いぶき”がExcelで 分析を始めた。上司の態度は変わるのか? |
SQL Serverがミッションクリティカル領域で 急速にシェアを拡大している理由とは? |
サーバを効率よく管理できるツールとは? 実機を使用したセミナーも併設! |
お勧め求人情報
**先週の人気講座ランキング**
〜eラーニング編〜
◆ | New! 「待って! そのクリック本当に安全?」 閲覧サイトを“評価する”新技術が登場! |
◆ | New! 必見!深刻な電源容量不足問題を解決する 最新の省電力テクノロジーはこれだ! |
◆ | New! BPM実現にSOAを使う!! 人間系プロセスも含めた見える化・最適化 |
◆ | New! ITエンジニアとして“無限の可能性”を 手に入れる「きっかけ」とは? |
◆ | ■ボトルネックバスターズ 2■ 連載スタート 彼らが戻ってきた!今度はどんな問題が……? |
◆ | 最先端の基幹システムはどう作られたか? “サーバ仮想化技術”最前線を事例で紹介 |
◆ | 組織とビジネスをパワーアップする 2007 Office systemの賢い買い方&使い方 |
◆ | NGN時代を生き残るネットワークエンジニア とは? 〜エンジニア・キャリア進化論〜 |
◆ | そのコード、まったく問題がないという 自信ありますか?不安はこのツールで解決 |
◆ | 日本の消費者像をユニークな視点で考察 「死に神」に売れる商品はもう終わり…… |
◆ | 映画の中のトム・クルーズと同じ体験が できるようになる―分析革命へようこそ |
◆ | 「SOA」で開発したサービスを徹底管理! 企業が目指すべき「SOAシステム」とは |
◆ | 動的解析を凌ぐバグ検出力を持つ 静的解析ツールの実力とその魅力とは?? |
◆ | 内部統制強化が急ピッチで進むいま、 監査人が語る!ID管理の実情とは |
◆ | 【マンガ連載2】Excelでデータ分析を 始めた“いぶき”の熱意が上司を動かした |
◆ | 【罠】メールでユーザーを騙し、PCを操作 させ、マルウェアに感染させる方法 |
◆ | 巨大プロジェクトから見る マイクロソフトのDBコンサルタント |
◆ | OS?言語?技術知識だけじゃダメでしょ! 新人エンジニアの「考える力」を育てます |
◆ | ブラウザでアクセスするだけ! 無料&短時間で、SQL Serverを体験しよう |
◆ | 「管理ツール」で選ぶサーバとは 聞いて納得・見て納得!のセミナーも |
◆ | 年間のダウンタイム 約30秒!NTTドコモが 実現した高可用性へのアプローチとは? |
◆ | 情報漏えいによる損害賠償はどれくらい? 後悔しないための“予防対策”を考える |
◆ | 個人の「知力」「情報」「人脈」を広げる 企業向けSNS『知創空間』導入のススメ |
◆ | 本社100台、支社50台のクライアントPCを “見える化”で一括管理する方法とは? |