Oracle Database 2日でパフォーマンス・チューニング・ガイド 11g リリース1(11.1) E05744-02 |
|
データ集中型問合せで最適なパフォーマンスを実現するには、SQL文をチューニングするときに、マテリアライズド・ビューおよび索引が重要です。ただし、これらのオブジェクトの実装にはコストがかかります。これらのオブジェクトの作成およびメンテナンスには時間がかかり、多くの領域を必要とします。SQLアクセス・アドバイザにより推奨された、与えられたワークロードに対する適切なマテリアライズド・ビュー、ビュー・ログ、索引、SQLプロファイルおよびパーティションを使用すると、SQL問合せのデータ・アクセス・パスの最適化が可能です。
マテリアライズド・ビューにより問合せの結果を別々のスキーマ・オブジェクトに格納することで表データにアクセスできます。記憶領域を占有せず、データが含まれない通常のビューとは異なり、マテリアライズド・ビューには1つ以上の実表またはビューに対する問合せの結果生成される行が含まれます。マテリアライズド・ビュー・ログはマスター表のデータへの変更を記録するスキーマ・オブジェクトであり、これによりマスター表に定義されたマテリアライズド・ビューを増分的にリフレッシュできます。SQLアクセス・アドバイザはマテリアライズド・ビューを最適化する方法を推奨します。これにより、迅速なリフレッシュが可能となり、一般的なクエリー・リライトを使用できるようになります。マテリアライズド・ビューおよびマテリアライズド・ビュー・ログの詳細は、『Oracle Database概要』を参照してください。
SQLアクセス・アドバイザの推奨事項にはビットマップ索引、ファンクション・ベース索引およびBツリー索引も含まれます。ビットマップ索引では、他の索引の方法と比較すると、多くのタイプの非定型問合せでレスポンス時間を削減し、記憶域要件が減少します。ファンクション・ベース索引では、表データから索引が付けられた値を導出します。たとえば、大文字小文字混合の文字データを検索するには、ファンクション・ベース索引を使用し、すべてを大文字として値を検索できます。Bツリー索引では、一意キーまたはほぼ一意なキーの索引付けに最も使用されます。
SQLアクセス・アドバイザの使用には、次のタスクが含まれます。
この項ではSQLワークロードの推奨事項を作成するSQLアクセス・アドバイザを実行する方法について説明します。
SQLアクセス・アドバイザを実行するには、最初に「SQLアクセス・アドバイザ: 初期オプション」ページの初期オプションを選択します。
「セントラル・アドバイザ」ページが表示されます。
「SQLアドバイザ」ページが表示されます。
「SQLアクセス・アドバイザ: 初期オプション」ページが表示されます。
このオプションを選択する場合は、オプションで次の追加の手順を完了します。
この例では、「新規アクセス構造の推奨」が選択されています。
「SQLアクセス・アドバイザ: ワークロード・ソース」ページが表示されます。
初期オプションがSQLアクセス・アドバイザで指定された後、次の項の説明に従って、分析に使用するワークロード・ソースを選択します。
ワークロード・ソースとしてキャッシュのSQL文を使用できます。ただし、SQLキャッシュ内には現在および最近のSQL文しか格納されていないため、このワークロード・ソースはデータベースのワークロード全体とは異なる場合があります。
この例では、「デフォルト・オプションを使用」が選択されています。
SQLチューニング・セットをワークロード・ソースとして使用できます。SQLアクセス・アドバイザおよびSQLチューニング・アドバイザのワークロード・ソースとしてSQLチューニング・セットを繰り返し使用できるので、このオプションは便利です。
「検索と選択: SQLチューニング・セット」ダイアログ・ボックスが表示されます。
選択したスキーマに含まれるSQLチューニング・セットのリストが表示されます。
「検索と選択: SQLチューニング・セット」ダイアログ・ボックスが閉じ、選択したSQLチューニング・セットが「SQLチューニング・セット」フィールドに表示されます。
ディメンション表では、スター・スキーマまたはスノーフレーク・スキーマに、論理ディメンションのすべての値または一部の値を格納します。主キーまたは外部キー制約を含むディメンション表から仮説ワークロードを作成できます。これは、分析するワークロードが存在しない場合に役立ちます。この場合、SQLアクセス・アドバイザでは現行の論理的なスキーマ設計が調査され、表間で定義された関係に基づいて推奨事項が提供されます。
「ワークロード・ソース: スキーマおよび表の検索と選択」ページが表示されます。
選択したスキーマの表のリストが表示されます。
「スキーマと表」フィールドに選択した表が表示されます。
選択した表とともに「SQLアクセス・アドバイザ: ワークロード・ソース」ページが表示されます。
ワークロード・ソースを選択したら、フィルタを適用しワークロードで検出されたSQL文の範囲を削減できます。フィルタの使用はオプションですが、次の利点があります。
ワークロードのフィルタ・オプションを選択する前に、次の操作を行います。
ヒント:
「フィルタ・オプション」セクションを開きます。
「フィルタ・オプション」セクションを有効にします。
「推奨オプション」ページが表示されます。
リソース使用量のフィルタでは、指定した数の高負荷SQL文のみが含まれるようにワークロードを制限します。
ユーザー・フィルタで、指定したユーザーによって実行されたSQL文を含めるか除外してワークロードを制限します。
「検索と選択: ユーザー」ダイアログ・ボックスが表示されます。
「検索と選択: ユーザー」ダイアログ・ボックスが閉じ、選択した表が「ユーザー」フィールドに表示されます。
この例では、ユーザーSH
が実行したSQL文のみを含むようにフィルタが定義されています。
表のフィルタによって、指定する表のリストにアクセスするSQL文を含めたり除外したりするためにワークロードが制限されます。「仮説ワークロードの使用」に説明されているとおり、「次のスキーマと表から仮想ワークロードを作成」オプションを選択した場合は、表のフィルタは許可されません。
「検索と選択: スキーマと表」ダイアログ・ボックスが表示されます。
「検索と選択: スキーマと表」ダイアログ・ボックスが閉じ、選択した表が対応する「表」フィールドに表示されます。
SQLテキスト・フィルタで、指定したSQLテキストのサブストリングのあるSQL文を含めるか除外してワークロードを制限します。
指定したモジュールに関連するSQL文を含めるか除外するためにモジュールのフィルタによりワークロードが制限されます。
アクション・フィルタで、指定したアクションに関連するSQL文を含めるか除外してワークロードを制限します。
ワークロードに対してオプティマイザにより選択された基礎となるデータ・アクセス・メソッドを改善するために、SQLアクセス・アドバイザにより索引、マテリアライズド・ビューおよびパーティションに対する推奨事項が提供されます。これらのアクセス構造を使用すると、データベースからのデータの読取りに要する時間が削減され、ワークロードのパフォーマンスを大幅に改善できます。ただし、これらのアクセス構造を使用する利点とこれらを維持するコストのバランスを考慮する必要があります。
ヒント:
SQLアクセス・アドバイザの推奨オプションを選択する前に、次の操作を行います。
|
この例では、前述のすべてのアクセス・タイプが選択されています。
制限モードでは、SQLアクセス・アドバイザはワークロードで最もコストの高いSQL文に焦点を当てます。分析は早いですが、推奨事項は制限されます。
包括モードではSQLアクセス・アドバイザによりワークロードのすべてのSQL文が分析されます。分析には時間がかかりますが詳細な推奨事項が提示されます。
次の例では、「制限モード」が選択されています。
「拡張オプション」セクションを開きます。このセクションには次のサブセクションが含まれます。
このセクションでは、推奨事項が必要なワークロードのタイプを指定できます。次のカテゴリが使用可能です。
索引およびマテリアライズド・ビューにより領域を多く使用するパフォーマンスが増加します。次のいずれかの操作を行います。
このセクションにより、SQL文をチューニングする方法を指定できます。次の手順を完了します。
このセクションを使用してスキーマおよび表領域の場所が定義されたデフォルトの設定を上書きします。デフォルトでは、索引は参照する表のスキーマおよび表領域に置かれています。マテリアライズド・ビューは問合せで参照する最初の表のスキーマおよび表領域に置かれています。マテリアライズド・ビュー・ログは参照する表のスキーマのデフォルト表領域に置かれています。
「SQLアクセス・アドバイザ: スケジュール」ページが表示されます。
SQLアクセス・アドバイザをスケジュールするページを使用して、SQLアクセス・アドバイザ・タスクのスケジュール・パラメータを設定または変更します。
ヒント:
SQLアクセス・アドバイザ・タスクのスケジュールを設定する前に、次の操作を行います。
|
図11-1の例では、SQLACCESS9084523
が入力されています。
図11-1の例では、SQL Access Advisor
が入力されています。
ジャーナル・レベルにより、タスク実行時にSQLアクセス・アドバイザのジャーナルに記録される情報量が制御されます。タスクの結果を表示する場合、この情報は詳細サブページに表示されます。
図11-1の例では、「基本」が選択されています。
図11-1の例では、30
が入力されています。
このフィールドには、デフォルトのUNLIMITED
を使用するかわりに、時間を入力する必要があります。図11-1の例では、10
が入力されています。
このスケジュール・タイプにより、タスクの繰返し間隔および開始時間を選択できます。次の手順を実行します。
このスケジュール・タイプにより、既存のスケジュールを選択できます。次のいずれかの操作を行います。
このスケジュール・タイプにより、タスクの繰返し間隔および実行期間(ウィンドウ)を選択できます。次の手順を実行します。
SYSDATE+1
などのPL/SQLのスケジュール式を入力します。
このスケジュール・タイプにより、実行画面を選択できます。「ウィンドウを閉じる際の停止」を選択してウィンドウを閉じるときにジョブを停止します。次のいずれかの操作を行います。
次の手順を実行します。
次の手順を実行します。
図11-1の例では、スケジュール・タイプに「標準」を選択しています。このタスクは繰り返されず、すぐに開始するようにスケジュールされます。
「SQLアクセス・アドバイザ: 確認」ページが表示されます。
「オプション」で、SQLアクセス・アドバイザ・タスクの変更済のオプションのリストが表示されます。変更済および未変更の両方のオプションを表示するには、「すべてのオプションの表示」をクリックします。タスクのSQLテキストを表示するには、「SQL表示」をクリックします。
「セントラル・アドバイザ」ページが表示されます。メッセージでタスクが正常に作成されたことが通知されます。
SQLアクセス・アドバイザでは、推奨事項がグラフィカルに表示され、推奨事項による利点が得られるSQL文を迅速に確認できるようにハイパーリンクが提供されます。SQLアクセス・アドバイザによって作成された各推奨事項は、その利点を得るSQL文にリンクされます。
次の例では、「制限モード」が選択されています。
タスクが表示されない場合、画面をリフレッシュする必要がある場合があります。「タスクの結果」ページが表示されます。
「サマリー」サブページにはSQLアクセス・アドバイザによる分析の概要が表示されます。
次の例では、「制限モード」が選択されています。
「制約」サブページが表示されます。
次の例では、「制限モード」が選択されています。
この例では、推奨事項の実装によりワークロードのI/Oコストが877から867に削減されました。
このグラフには、ワークロード内で推奨事項の使用により実行時間が短縮されるSQL文の割合が表示されます。SQL文は反映される向上の係数によりグラフの横軸(1倍から10倍)に沿って分類されます。反映される向上の係数に対して、向上するSQL文の割合は縦軸(0%から100%)に沿って計算されます。
この例では、ワークロード内の約75%のSQL文では、実行時間のパフォーマンスは改善されませんが、残りの約25%では4倍以上の改善の可能性があります。
この例では、索引を1つ、マテリアライズド・ビューを4つ、マテリアライズド・ビュー・ログを6つ作成することを推奨しています。
この例では、「制限モード」が選択されています。
この例では、19のSELECT
文が分析されています。
この例では、「制限モード」が選択されています。
「推奨」サブページはコストの改善幅順によりSQLアクセス・アドバイザの推奨事項をランク付けします。各推奨事項の詳細も確認できます。
「推奨」サブページが表示されます。
「実装用の推奨の選択」で、実装ステータス、推奨事項ID、コスト改善、領域消費および各推奨事項の影響を受けたSQL文の数とともに各推奨事項がリストされます。上位推奨事項の実装により、ワークロードのパフォーマンス全体に最大限の利点が与えられます。
「推奨事項の詳細」ページが表示されます。
「推奨事項の詳細」ページには特定の推奨事項に対するすべてのアクションが表示されます。
「アクション」で、各アクションに対するスキーマ名、表領域名および記憶域句の変更を選択できます。アクションのSQLテキストを表示するには、指定されたアクションの「アクション」列のリンクをクリックします。
「推奨の影響を受けるSQL」で、SQL文のSQLテキストおよびコスト改善情報が表示されます。
「推奨」サブページが表示されます。
選択した推奨事項で「SQL表示」ページが表示されます。
「SQL文」サブページはコストの改善幅順によりワークロードにあるSQL文をランク付けします。このページを使用して、ワークロードで分析したSQL文の詳細を表示できます。
「SQL文」サブページが表示されます。
「改善するSQL文の選択」で、各SQL文が文ID、SQLテキスト、関連する推奨事項、コスト改善および実行数とともにリストされます。
上位SQL文に関連付けられた推奨事項を実装すると、ワークロードのパフォーマンス全体に最も大きな利点があります。この例では、IDが1の推奨事項の実装により、IDが2421
のSQL文のコストが57.14%改善されるという大きな利点を得られます。
選択した推奨事項で「SQL表示」ページが表示されます。
「詳細」サブページには、分析に使用されるすべてのワークロード・オプションおよびタスク・オプションのリストが表示されています。また、このサブページを使用すると、タスクが作成されたときに使用されるジャーナル・レベルに基づいて、タスクのジャーナル・エントリのリストを参照できます。
「詳細」サブページが表示されます。
「ワークロードおよびタスクのオプション」で、アドバイザのタスクが作成されたときに選択されたオプションのリストが表示されます。
「ジャーナル・エントリ」で、タスクが実行されている間にSQLアクセス・アドバイザのジャーナルに記録されたメッセージのリストが表示されます。
SQLアクセス・アドバイザの推奨事項は、簡単な提案から、一連の既存の実表をパーティション化し、一連のデータベース・オブジェクト(索引、マテリアライズド・ビュー、マテリアライズド・ビュー・ログ)を実装するといった複雑なソリューションにまで及びます。実装する推奨事項を選択し、ジョブの実行がいつ必要とされるかをスケジュールできます。
ヒント:
SQLアクセス・アドバイザの推奨事項を実装する前に、コスト面での利点を考慮して、どの推奨事項を実装するかを決定します。詳細は、「SQLアクセス・アドバイザ推奨事項の確認」を参照してください。 |
「推奨」サブページが表示されます。
この例では、IDの値が1
の推奨事項が選択されています。
「スケジュール実装」ページが表示されます。
このスケジュール・タイプにより、タスクの繰返し間隔および開始時間を選択できます。次の手順を実行します。
このスケジュール・タイプにより、既存のスケジュールを選択できます。次のいずれかの操作を行います。
このスケジュール・タイプにより、タスクの繰返し間隔および実行画面を選択できます。次の手順を実行します。
SYSDATE+1
などのPL/SQLのスケジュール式を入力します。
このスケジュール・タイプにより、実行画面を選択できます。「ウィンドウを閉じる際の停止」を選択してウィンドウを閉じるときにジョブを停止します。次のいずれかの操作を行います。
次の手順を実行します。
次の手順を実行します。
この例では、スケジュール・タイプに「標準」が選択されています。ジョブは繰り返されず、すぐに開始されるようにスケジュールされます。
ジョブがすぐに開始するようにスケジュールされている場合、SQLアクセス・アドバイザ・タスクの「タスクの結果」ページが、ジョブが正常に作成されたことの確認とともに表示されます。
「操作の詳細」ページが表示されます。
このページには、障害のトラブルシューティングに使用できる情報(開始日および開始時間、実行期間、使用されるCPU時間、およびセッションIDなど)が含まれます。
作成されるアクセス構造のタイプによって、「索引」ページ、「マテリアライズド・ビュー」ページまたは「マテリアライズド・ビュー・ログ」ページを使用してアクセス構造を表示できます。
この例では、マテリアライズド・ビューMV$$_00690000
がSH
スキーマに作成されています。
|
![]() Copyright © 2007, 2008 Oracle Corporation. All Rights Reserved. |
|