• 検索結果がありません。

パフォーマンス・チューニングの 概要

この章では、パフォーマンス・チューニングの概要を説明します。この章に は、次の項があります。

パフォーマンス・チューニングの概要

パフォーマンス・チューニング機能およびツールの概要

パフォーマンス・チューニングの概要

このガイドは、Oracle Databaseのパフォーマンス・チューニングに関する情報を提供します。この 項には次の項目があります。

パフォーマンス計画

インスタンスのチューニング SQLチューニング

関連項目:

Oracle Enterprise Manager Cloud Control (Cloud Control)を使用してデータベースのパフォーマンスを チューニングする方法は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参 照してください

パフォーマンス計画

このドキュメントの他の部分に進む前に、「データベース・パフォーマンスの基本」を参照して ください。オラクル社では、長年にわたる設計およびパフォーマンス経験に基づき、パフォーマ ンスに関する方法論を設計しました。このトピックでは、システム・パフォーマンスを大幅に改 善できるアクティビティについて説明します。内容は次のとおりです。

投資の選択肢について スケーラビリティについて システム・アーキテクチャ アプリケーション設計の原則

ワークロードのテスト、モデル化および実装 新規アプリケーションのデプロイ

インスタンスのチューニング

「データベース・パフォーマンスの診断およびチューニング」では、Oracleデータベース・インス タンスのチューニングおよび最適化に関連のある要素について説明します。

インスタンスのチューニングを検討する場合、データベースの初期の設計で、パフォーマンスの 問題の原因となるボトルネックを回避するよう注意します。さらに、次の点も考慮する必要があ ります。

データベース構造体へのメモリーの割当て データベースの様々な部分のI/O要件の判断

データベースのパフォーマンスを最適化するためのオペレーティング・システムのチューニ ング

データベース・インスタンスをインストールおよび構成した後、パフォーマンス関連の問題をチ ェックするために動作しているデータベースを監視する必要があります。

パフォーマンスの原理

パフォーマンス・チューニングでは、システムの初期構成に対して異なる(ただし関連性がある)方 法を必要とします。システムの構成では、初期システムの構成が機能的なものになるように整理 された手順に従ってリソースを割り当てます。

チューニングを開始するには、最も影響のあるボトルネックを識別し、適切な変更を行ってその ボトルネックの影響を低減するかまたは排除します。チューニングは通常、システムが本番開始 前か、または稼働状態になった後で事後的に行われます。

ベースライン

チューニングでは、実証されたパフォーマンス・ベースラインを使用して、パフォーマンスの問 題が生じたときに比較するのが最も効果的な方法です。データベース管理者(DBA)の多くは、自分 のシステムを熟知し、ピークの使用期間を簡単に識別できます。たとえば、ピーク期間

は10.00amから12.00pmである場合、また1.30pmから3.00pmである場合もあります。これには、深 夜の12.00amから6.00amまでのバッチ・ウィンドウが含まれることがあります。

サイトでこのようなピーク時間帯を識別し、このような高負荷の時間帯のパフォーマンス・デー

タを収集するモニタリング・ツールをインストールすることが重要です。アプリケーション がQAサイクル中の初期のトライアル段階にある時点から、データ収集を構成することが最適で す。それ以外の場合は、システムが最初に稼働したときに、このデータ収集を構成する必要があ ります。

収集されたベースライン・データには、次の内容が含まれていることが理想的です。

アプリケーション統計(トランザクション・ボリューム、レスポンス時間) データベース統計

オペレーティング・システム統計 ディスクI/O統計

ネットワーク統計

自動ワークロード・リポジトリでは、ベースラインは将来比較するために保持されるスナップシ ョットの範囲により識別されます。「自動ワークロード・リポジトリ」を参照してください。

症状および問題点

パフォーマンス・チューニングの一般的な誤りは、ある問題の症状を現実の問題自体であると思 い違いをすることです。多くのパフォーマンス統計はこの症状を示すこと、およびこの症状を識 別することが修正を実施するために十分なデータではないことを認識することが重要です。次に 例を示します。

低速な物理I/O

一般に、この原因はディスクの構成が適切ではないことにあります。しかし、チューニング が適切ではないSQLから発行された、これらのディスク上の大量の不要な物理I/Oが原因にな っている可能性もあります。

ラッチの競合

インスタンスを再構成して、ラッチの競合をチューニングできることはほとんどありませ ん。むしろ、ラッチの競合は通常、アプリケーションの変更により解決されます。

過剰なCPU使用率

過剰なCPU使用率は通常、システム上にアイドル状態のCPUがほとんどないことを意味しま す。この原因として、システムのサイズ設定が不適切であること、SQL文がチューニングさ れていないこと、またはアプリケーション・プログラムが不十分である可能性があります。

チューニングの時期

チューニングには次の2種類があります。

プロアクティブな監視 ボトルネックの解消

プロアクティブな監視

プロアクティブな監視は通常、定期的にスケジュールされた間隔で行われます。この場合、シス テム動作とリソースの使用量が変化したかどうかを識別するために複数のパフォーマンス統計が 調べられます。プロアクティブな監視は、プロアクティブなチューニングとも考えられます。

通常は、進行中の重大な問題が監視により明らかにならないかぎり、監視によりシステムの構成 が変化することはありません。状況によっては、経験豊富なパフォーマンス・エンジニアが統計 のみで潜在的な問題点を識別できますが、通常はパフォーマンスの低下を伴います。

明らかなパフォーマンスの低下がないときに、事前のアクションとしてシステムを試行したり微 調整することは危険なアクティビティであり、不必要にパフォーマンスを低下させる可能性があ ります。システムを微調整することは事後チューニングと考えられ、事後チューニングのステッ プに従う必要があります。

監視は通常、より大規模な容量計画の調査の一環です。容量計画ではリソース使用状況を調べ て、さらにアプリケーションが使用されている方法の変化、およびアプリケーションがデータベ ース・リソースとホスト・リソースを使用している方法の変化を調べます。

ボトルネックの解消

チューニングは通常、パフォーマンスの問題の修正を意味します。ただし、チューニングは、分 析、設計、コーディング、生産およびメンテナンスの各段階を通じて、アプリケーションのライ フサイクルの一部である必要があります。多くの場合、チューニング段階は、データベースが稼 働段階に入るまで残されます。この時点で、チューニングは事後対応処理になり、最も重要なボ トルネックを識別し、修正します。

チューニングの目的は通常、リソース使用量を減らしたり、操作を完了する経過時間を減らすこ とにあります。いずれの場合も、目標は特定のリソースの有効利用を向上することにあります。

一般に、パフォーマンスの問題は特定のリソースの過剰使用によって発生します。リソースの過 剰使用は、システムのボトルネックです。ボトルネックと潜在的な修正を識別するには、様々な 複数の段階があります。これらについては、これ以降の項で説明します。

競合の様々な形態は症状であり、次のいずれかを変更することで修正できることに注意してくだ さい。

アプリケーションまたはアプリケーションの使用方法の変更 Oracleの変更

ホスト・ハードウェア構成の変更

多くの場合、ボトルネックを解決する最も効果的な方法は、アプリケーションを変更することで す。

SQL チューニング

SQLでは、問合せを発行し、データが戻されるため、多くのアプリケーション・プログラマ はSQLをメッセージ言語として認識しています。しかし、クライアント・ツールでは非効率的 なSQL文が生成される場合がよくあります。したがって、データベースSQL処理エンジンについて 理解することは、最適なSQLを作成するために必要です。このことは特に、大量トランザクショ ン処理システムについて言えます。

通常、オンライン・トランザクション処理(OLTP)アプリケーションにより発行されたSQL文は、

比較的少数の行で一度に処理されます。索引が正確に必要な行を示す場合、正確な計画を作成し て、可能な最短のパスを使用して効率的に行にアクセスできます。意思決定支援システム(DSS)環 境では、表の行のほとんどにアクセスする場合が多いため、選択性は重要視されません。そのよ うな状況では、全表スキャンが一般的であり、索引は使用しません。このマニュアルは、主とし て、OLTPアプリケーションを中心に説明しています。

関連項目:

SQL文のチューニングおよび最適化のプロセスの詳細は、『Oracle Database SQLチューニン グ・ガイド』を参照してください

意思決定支援システム(DSS)および混合環境の詳細は、『Oracle Databaseデータ・ウェアハ ウス・ガイド』を参照してください

問合せオプティマイザおよび実行計画

OracleデータベースでSQL文を実行すると、問合せオプティマイザは、問合せに指定されたオブジ

ェクトの参照および条件に関連する様々な要素を考慮した後、最も効率的な実行計画を判断しま す。この判断は、SQL文の処理で重要なステップであり、実行時間が大きく変化します。

評価プロセスでは、問合せオプティマイザにより、システム上に収集された統計が確認され、最 適なデータ・アクセス・パスおよびその他の考慮事項が判断されます。問合せオプティマイザの 実行計画を、SQL文に挿入されたヒントで上書きできます。

パフォーマンス・チューニング機能およびツールの概要

効果的なデータの収集と解析は、パフォーマンスの問題を識別して修正するために不可欠で

す。Oracle Databaseには、パフォーマンス・エンジニアがデータベースのパフォーマンスに関する

情報の収集に使用できる様々なツールがあります。データの収集に加え、パフォーマンスの監 視、問題の診断およびアプリケーションのチューニングのためのツールもあります。

Oracle Databaseの収集および監視機能は、大部分が自動で動作し、Oracleバックグラウンド・プロ セスによって管理されます。自動統計収集機能と自動パフォーマンス機能を有効にするに

は、STATISTICS_LEVEL初期化パラメータをTYPICALまたはALLに設定する必要があります。収 集ツールおよびチューニング・ツールの出力は、Oracle Enterprise Manager Cloud Control (Cloud

Control)、またはAPIとビューを使用して管理および表示できます。使いやすく、様々な自動化さ