ヘッダーをスキップ

Oracle Database 2日でパフォーマンス・チューニング・ガイド
11g リリース1(11.1)

E05744-02
目次
目次
索引
索引

戻る 次へ

11 データ・アクセス・パスの最適化

データ集中型問合せで最適なパフォーマンスを実現するには、SQL文をチューニングするときに、マテリアライズド・ビューおよび索引が重要です。ただし、これらのオブジェクトの実装にはコストがかかります。これらのオブジェクトの作成およびメンテナンスには時間がかかり、多くの領域を必要とします。SQLアクセス・アドバイザにより推奨された、与えられたワークロードに対する適切なマテリアライズド・ビュー、ビュー・ログ、索引、SQLプロファイルおよびパーティションを使用すると、SQL問合せのデータ・アクセス・パスの最適化が可能です。

マテリアライズド・ビューにより問合せの結果を別々のスキーマ・オブジェクトに格納することで表データにアクセスできます。記憶領域を占有せず、データが含まれない通常のビューとは異なり、マテリアライズド・ビューには1つ以上の実表またはビューに対する問合せの結果生成される行が含まれます。マテリアライズド・ビュー・ログはマスター表のデータへの変更を記録するスキーマ・オブジェクトであり、これによりマスター表に定義されたマテリアライズド・ビューを増分的にリフレッシュできます。SQLアクセス・アドバイザはマテリアライズド・ビューを最適化する方法を推奨します。これにより、迅速なリフレッシュが可能となり、一般的なクエリー・リライトを使用できるようになります。マテリアライズド・ビューおよびマテリアライズド・ビュー・ログの詳細は、『Oracle Database概要』を参照してください。

SQLアクセス・アドバイザの推奨事項にはビットマップ索引、ファンクション・ベース索引およびBツリー索引も含まれます。ビットマップ索引では、他の索引の方法と比較すると、多くのタイプの非定型問合せでレスポンス時間を削減し、記憶域要件が減少します。ファンクション・ベース索引では、表データから索引が付けられた値を導出します。たとえば、大文字小文字混合の文字データを検索するには、ファンクション・ベース索引を使用し、すべてを大文字として値を検索できます。Bツリー索引では、一意キーまたはほぼ一意なキーの索引付けに最も使用されます。

SQLアクセス・アドバイザの使用には、次のタスクが含まれます。

SQLアクセス・アドバイザの実行

この項ではSQLワークロードの推奨事項を作成するSQLアクセス・アドバイザを実行する方法について説明します。

SQLアクセス・アドバイザの実行手順:
  1. 初期オプションを選択します(「SQLアクセス・アドバイザの実行: 初期オプション」を参照)。

  2. 分析に使用するワークロード・ソースを選択します(「SQLアクセス・アドバイザの実行: ワークロード・ソース」を参照)。

  3. フィルタ・オプションを定義します(「SQLアクセス・アドバイザの実行: フィルタ・オプション」を参照)。

  4. 推奨事項のタイプを選択します。(「SQLアクセス・アドバイザの実行: 推奨オプション」を参照)。

  5. SQLアクセス・アドバイザ・タスクをスケジュールします(「SQLアクセス・アドバイザの実行: スケジュール」を参照)。

SQLアクセス・アドバイザの実行: 初期オプション

SQLアクセス・アドバイザを実行するには、最初に「SQLアクセス・アドバイザ: 初期オプション」ページの初期オプションを選択します。

初期オプションの選択手順:
  1. データベースのホームページの「関連リンク」の下にある「セントラル・アドバイザ」をクリックします。

    「セントラル・アドバイザ」ページが表示されます。

  2. 「アドバイザ」で、「SQLアドバイザ」をクリックします。

    「SQLアドバイザ」ページが表示されます。

  3. 「SQLアクセス・アドバイザ」をクリックします。

    「SQLアクセス・アドバイザ: 初期オプション」ページが表示されます。

  4. 初期オプションを選択します。次のいずれかの操作を行います。

    • 「アクセス構造(索引、マテリアライズド・ビュー、パーティショニングなど)のみの使用の検証」を選択して既存の構造を検証します。

    • 「新規アクセス構造の推奨」を選択してOracle Enterprise Managerのデフォルトのテンプレートで定義された推奨オプションを使用します。

      このオプションを選択する場合は、オプションで次の追加の手順を完了します。

      • 「保存済のタスクまたはテンプレートからの継承オプション」を選択して既存のSQLアクセス・アドバイザ・タスクまたはその他のテンプレートで定義されたオプションを使用します。

      • 「タスクとテンプレート」で、使用するタスクまたはテンプレートを選択します。

    この例では、「新規アクセス構造の推奨」が選択されています。


    画像の説明

  5. 「続行」をクリックします。

    「SQLアクセス・アドバイザ: ワークロード・ソース」ページが表示されます。

  6. 次の手順に進みます(「SQLアクセス・アドバイザの実行: ワークロード・ソース」を参照)。

SQLアクセス・アドバイザの実行: ワークロード・ソース

初期オプションがSQLアクセス・アドバイザで指定された後、次の項の説明に従って、分析に使用するワークロード・ソースを選択します。

キャッシュからのSQL文の使用

ワークロード・ソースとしてキャッシュのSQL文を使用できます。ただし、SQLキャッシュ内には現在および最近のSQL文しか格納されていないため、このワークロード・ソースはデータベースのワークロード全体とは異なる場合があります。

キャッシュからのSQL文をワークロード・ソースとして使用する手順:
  1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「現在と最近のSQLアクティビティ」を選択します。

    この例では、「デフォルト・オプションを使用」が選択されています。


    画像の説明

  2. 次の手順に進みます(「SQLアクセス・アドバイザの実行: フィルタ・オプション」を参照)。

既存のSQLチューニング・セットの使用

SQLチューニング・セットをワークロード・ソースとして使用できます。SQLアクセス・アドバイザおよびSQLチューニング・アドバイザのワークロード・ソースとしてSQLチューニング・セットを繰り返し使用できるので、このオプションは便利です。

SQLチューニング・セットをワークロード・ソースとして使用する手順:
  1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「既存のSQLチューニング・セットを使用します。」を選択します。

  2. 「SQLチューニング・セット」検索アイコンをクリックして、既存のSQLチューニング・セットを使用します。

    「検索と選択: SQLチューニング・セット」ダイアログ・ボックスが表示されます。

  3. 「スキーマ」フィールドで、使用するSQLチューニング・セットを含むスキーマ名を入力し、「実行」をクリックします。

    選択したスキーマに含まれるSQLチューニング・セットのリストが表示されます。

  4. ワークロード・ソースに使用されるSQLチューニング・セットを選択して「選択」をクリックします。

    「検索と選択: SQLチューニング・セット」ダイアログ・ボックスが閉じ、選択したSQLチューニング・セットが「SQLチューニング・セット」フィールドに表示されます。

  5. 次の手順に進みます(「SQLアクセス・アドバイザの実行: フィルタ・オプション」を参照)。

    参照:

     

仮説ワークロードの使用

ディメンション表では、スター・スキーマまたはスノーフレーク・スキーマに、論理ディメンションのすべての値または一部の値を格納します。主キーまたは外部キー制約を含むディメンション表から仮説ワークロードを作成できます。これは、分析するワークロードが存在しない場合に役立ちます。この場合、SQLアクセス・アドバイザでは現行の論理的なスキーマ設計が調査され、表間で定義された関係に基づいて推奨事項が提供されます。

仮説ワークロードをワークロード・ソースとして使用する手順:
  1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「次のスキーマと表から仮想ワークロードを作成」を選択します。

  2. 「スキーマと表」を空のままにし、「追加」をクリックして表を検索します。

    「ワークロード・ソース: スキーマおよび表の検索と選択」ページが表示されます。

  3. 「表」セクションで、「スキーマ」フィールドにスキーマ名を入力して「検索」をクリックします。

    選択したスキーマの表のリストが表示されます。

  4. 仮想ワークロードの作成に使用する表を選択し、「表の追加」をクリックします。

    「スキーマと表」フィールドに選択した表が表示されます。

  5. 「OK」をクリックします。

    選択した表とともに「SQLアクセス・アドバイザ: ワークロード・ソース」ページが表示されます。

  6. 次の手順に進みます(「SQLアクセス・アドバイザの実行: フィルタ・オプション」を参照)。

SQLアクセス・アドバイザの実行: フィルタ・オプション

ワークロード・ソースを選択したら、フィルタを適用しワークロードで検出されたSQL文の範囲を削減できます。フィルタの使用はオプションですが、次の利点があります。

ワークロード・ソースへのフィルタの適用手順:
  1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページで、「フィルタ・オプション」をクリックします。

    「フィルタ・オプション」セクションを開きます。

  2. 「これらのオプションに基づいてワークロードをフィルタ処理します。」を選択します。

    「フィルタ・オプション」セクションを有効にします。

  3. 次の項の説明に従って、適用するフィルタを定義します。

  4. 「次へ」をクリックします。

    「推奨オプション」ページが表示されます。

  5. 次の手順に進みます(「SQLアクセス・アドバイザの実行: 推奨オプション」を参照)。

リソース使用量のフィルタの定義

リソース使用量のフィルタでは、指定した数の高負荷SQL文のみが含まれるようにワークロードを制限します。

リソース使用量のフィルタの定義手順:
  1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページのユーザーのリソース使用量の下で、「文の数」フィールドに高負荷SQL文の数を入力します。

  2. 「ソート順」リストから、SQL文を順序付ける方法を1つ選択します。

ユーザーのフィルタの定義

ユーザー・フィルタで、指定したユーザーによって実行されたSQL文を含めるか除外してワークロードを制限します。

ユーザーのフィルタの定義手順:
  1. 「SQLアクセス・アドバイザ: ワークロード・ソース」ページの「ユーザー」の下で、「これらのユーザーによって実行されるSQL文のみを含める」または「これらのユーザーによって実行されるすべてのSQL文を除外する」を選択します。

  2. 使用可能なユーザーを検索するには、「ユーザー」検索アイコンをクリックします。

    「検索と選択: ユーザー」ダイアログ・ボックスが表示されます。

  3. ユーザーを選択し、「選択」をクリックします。選択したユーザーのSQL文が含まれるか除外されます。

    「検索と選択: ユーザー」ダイアログ・ボックスが閉じ、選択した表が「ユーザー」フィールドに表示されます。

    この例では、ユーザーSHが実行したSQL文のみを含むようにフィルタが定義されています。


    画像の説明

表のフィルタの定義

表のフィルタによって、指定する表のリストにアクセスするSQL文を含めたり除外したりするためにワークロードが制限されます。「仮説ワークロードの使用」に説明されているとおり、「次のスキーマと表から仮想ワークロードを作成」オプションを選択した場合は、表のフィルタは許可されません。

表のフィルタの定義手順:
  1. 表の特定のリストにアクセスするSQL文のみを含むようにするには、「次のいずれかの表にアクセスするSQL文のみを含める」フィールドに表名を入力します。

  2. 表の特定のリストにアクセスするすべてのSQL文を除外するには、「これらの表のいずれかにアクセスするすべてのSQL文を除外する」フィールドに表名を入力します。

  3. 使用可能な表を検索するには、「表」検索アイコンをクリックします。

    「検索と選択: スキーマと表」ダイアログ・ボックスが表示されます。

  4. 表を選択し、「選択」をクリックします。選択した表のSQL文が含まれるか除外されます。

    「検索と選択: スキーマと表」ダイアログ・ボックスが閉じ、選択した表が対応する「表」フィールドに表示されます。

SQLテキストのフィルタの定義

SQLテキスト・フィルタで、指定したSQLテキストのサブストリングのあるSQL文を含めるか除外してワークロードを制限します。

SQLテキストのフィルタの定義手順:
  1. 特定のSQLテキストが含まれているSQL文のみを含むようにするには、「これらのSQLテキスト・サブストリングを含むSQL文のみを含める」フィールドに挿入するSQLテキストを入力します。

  2. 特定のSQLテキストを含むすべてのSQL文を除外するには、除外するSQLテキストを「これらのSQLテキスト・サブストリングを含むすべてのSQL文を除外する」フィールドに入力します。

モジュールのフィルタの定義

指定したモジュールに関連するSQL文を含めるか除外するためにモジュールのフィルタによりワークロードが制限されます。

モジュールIDのフィルタの定義手順:
  1. ワークロード内の特定のモジュールIDに関連するSQL文のみを含めるには、「これらのモジュールに関連付けられたSQL文のみを含める」を選択します。

  2. ワークロードからの特定のモジュールIDに関連するすべてのSQL文を除外するには、「これらのモジュールに関連付けられているすべてのSQL文を除外する」を選択します。

  3. 「モジュール」フィールドに関連するSQL文が含まれるか除外されるモジュールの名前を入力します。

アクションのフィルタの定義

アクション・フィルタで、指定したアクションに関連するSQL文を含めるか除外してワークロードを制限します。

アクションのフィルタの定義手順:
  1. ワークロードの特定のアクションに関連するSQL文のみを含めるには、「これらのアクションに関連付けられているSQL文のみを含める」を選択します。

  2. ワークロードの特定のアクションに関連するすべてのSQL文を除外するには、「これらの操作に関連付けられているすべてのSQL文を除外する」を選択します。

  3. 「アクション」フィールドでアクションを入力します。このアクションに関連するSQL文が含まれるか除外されます。

SQLアクセス・アドバイザの実行: 推奨オプション

ワークロードに対してオプティマイザにより選択された基礎となるデータ・アクセス・メソッドを改善するために、SQLアクセス・アドバイザにより索引、マテリアライズド・ビューおよびパーティションに対する推奨事項が提供されます。これらのアクセス構造を使用すると、データベースからのデータの読取りに要する時間が削減され、ワークロードのパフォーマンスを大幅に改善できます。ただし、これらのアクセス構造を使用する利点とこれらを維持するコストのバランスを考慮する必要があります。

ヒント:

SQLアクセス・アドバイザの推奨オプションを選択する前に、次の操作を行います。

 

推奨オプションの指定手順:
  1. 「SQLアクセス・アドバイザ: 推奨オプション」ページの「推奨するアクセス構造」の下で、SQLアクセス・アドバイザにより推奨されたアクセス構造のタイプを選択します。

    • 索引

    • マテリアライズド・ビュー

    • パーティション化

    この例では、前述のすべてのアクセス・タイプが選択されています。


    画像の説明

  2. 「有効範囲」で、SQLアクセス・アドバイザを実行するモードを選択します。次のいずれかの操作を行います。

    • 「制限モード」を選択します。

      制限モードでは、SQLアクセス・アドバイザはワークロードで最もコストの高いSQL文に焦点を当てます。分析は早いですが、推奨事項は制限されます。

    • 「包括モード」を選択します。

      包括モードではSQLアクセス・アドバイザによりワークロードのすべてのSQL文が分析されます。分析には時間がかかりますが詳細な推奨事項が提示されます。

    次の例では、「制限モード」が選択されています。


    画像の説明

  3. オプションで、「拡張オプション」をクリックします。

    「拡張オプション」セクションを開きます。このセクションには次のサブセクションが含まれます。

    • ワークロードの分類

      このセクションでは、推奨事項が必要なワークロードのタイプを指定できます。次のカテゴリが使用可能です。

      • ワークロードの不安定性

        データ・ウェアハウスのように、主に読取り専用操作がワークロードに含まれる場合は、「問合せのみを考慮」を選択します。不安定なデータは、INSERTUPDATEおよびDELETEの各操作のパフォーマンスが重要であるオンライン・トランザクション処理(OLTP)システムで役立ちます。

      • ワークロード有効範囲

        ワークロードがすべてのアクセス構造のユースケースを表す場合は、「未使用のアクセス構造の削除を推奨」を選択します。

    • 領域制限

      索引およびマテリアライズド・ビューにより領域を多く使用するパフォーマンスが増加します。次のいずれかの操作を行います。

      • 「いいえ、すべての推奨を表示してください(領域制限なし)」を選択して領域制限をなくします。領域制限のない状態でSQLアクセス・アドバイザが起動されると、最善の可能なパフォーマンス推奨事項が作成されます。

      • 「はい、追加領域を次の値に制限します」を選択し、次に領域制限をMB、GBまたはTB単位で入力します。領域制限のない状態でSQLアクセス・アドバイザが起動されると、指定された制限を超えない領域要件のある推奨事項のみが作成されます。

    • チューニングの優先度付け

      このセクションにより、SQL文をチューニングする方法を指定できます。次の手順を完了します。

      • 「SQL文のチューニングを優先させる条件」リストから、SQL文をチューニングする方法を選択し、「追加」をクリックします。

      • オプションで、「アドバイザが推奨を作成する際に作成コストを検討することを許可する」を選択し、頻度に対するアクセス構造の作成コストとSQL文の実行時間における改善の可能性を比較します。それ以外の場合は、作成コストは無視されます。頻繁に実行されるSQL文のために生成された特定の推奨事項が必要な場合は、このオプションを選択する必要があります。

    • デフォルトの記憶域の場所

      このセクションを使用してスキーマおよび表領域の場所が定義されたデフォルトの設定を上書きします。デフォルトでは、索引は参照する表のスキーマおよび表領域に置かれています。マテリアライズド・ビューは問合せで参照する最初の表のスキーマおよび表領域に置かれています。マテリアライズド・ビュー・ログは参照する表のスキーマのデフォルト表領域に置かれています。

  4. 「次へ」をクリックします。

    「SQLアクセス・アドバイザ: スケジュール」ページが表示されます。

  5. 次の手順に進みます(「SQLアクセス・アドバイザの実行: スケジュール」を参照)。

SQLアクセス・アドバイザの実行: スケジュール

SQLアクセス・アドバイザをスケジュールするページを使用して、SQLアクセス・アドバイザ・タスクのスケジュール・パラメータを設定または変更します。

図11-1    SQLアクセス・アドバイザ・タスクのスケジュール


画像の説明

ヒント:

SQLアクセス・アドバイザ・タスクのスケジュールを設定する前に、次の操作を行います。

 

SQLアクセス・アドバイザ・タスクのスケジュール手順:
  1. システムで生成されたタスク名を使用しない場合は、「SQLアクセス・アドバイザ: スケジュール」ページの「アドバイザ・タスク情報」で、「タスク名」フィールドに名前を入力します。

    図11-1の例では、SQLACCESS9084523が入力されています。

  2. 「タスクの説明」フィールドに、タスクの説明を入力します。

    図11-1の例では、SQL Access Advisorが入力されています。

  3. 「ジャーナル・レベル」リストで、タスクのジャーナル・レベルを選択します。

    ジャーナル・レベルにより、タスク実行時にSQLアクセス・アドバイザのジャーナルに記録される情報量が制御されます。タスクの結果を表示する場合、この情報は詳細サブページに表示されます。

    図11-1の例では、「基本」が選択されています。

  4. 「タスクの有効期限(日)」フィールドに、タスクを削除する前にデータベース内で保持する日数を入力します。

    図11-1の例では、30が入力されています。

  5. 「合計時間の制限(分)」フィールドに、ジョブの実行が許可される最大の分数を入力します。

    このフィールドには、デフォルトのUNLIMITEDを使用するかわりに、時間を入力する必要があります。図11-1の例では、10が入力されています。

  6. 「スケジュール・オプション」の下の「スケジュール・タイプ」リストで、タスクのスケジュール・タイプおよびタスクを実行するメンテナンス・ウィンドウを選択します。次のいずれかの操作を行います。

    • 「標準」をクリックします。

      このスケジュール・タイプにより、タスクの繰返し間隔および開始時間を選択できます。次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「繰返し」リストで、「繰返しなし」を選択してタスクを1回のみ実行するか、または時間の単位を選択して「間隔」フィールドに単位数を入力します。

      • 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

    • 「事前定義されたスケジュールの使用」をクリックします。

      このスケジュール・タイプにより、既存のスケジュールを選択できます。次のいずれかの操作を行います。

      • 「スケジュール」フィールドに、タスクに使用されるスケジュールの名前を入力します。

      • スケジュールを検索するには、検索のアイコンをクリックします。

        「検索と選択: スケジュール」ダイアログ・ボックスが表示されます。

        必要なスケジュールを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したスケジュールが表示されます。

    • 「繰返し間隔にPL/SQLを使用する標準」をクリックします。

      このスケジュール・タイプにより、タスクの繰返し間隔および実行期間(ウィンドウ)を選択できます。次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「開始可能時間」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

      • 「繰返し」リストで、「繰返しなし」を選択してタスクを1回のみ実行するか、または時間の単位を選択して「間隔」フィールドに単位数を入力します。

      • 「繰返し間隔」フィールドに、SYSDATE+1などのPL/SQLのスケジュール式を入力します。

      • 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

    • 「事前定義されたウィンドウの使用」をクリックします。

      このスケジュール・タイプにより、実行画面を選択できます。「ウィンドウを閉じる際の停止」を選択してウィンドウを閉じるときにジョブを停止します。次のいずれかの操作を行います。

      • 「ウィンドウ」フィールドに、タスクに使用されるウィンドウの名前を入力します。

      • ウィンドウを検索するには、検索のアイコンをクリックします。

        「検索と選択: ウィンドウとウィンドウ・グループ」ダイアログ・ボックスが表示されます。

        目的のウィンドウを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したウィンドウが表示されます。

    • 「イベント」をクリックします。

      次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「イベント・パラメータ」で、「キュー名」および「条件」に値を入力します。

      • 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

      • 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

    • 「カレンダ」をクリックします。

      次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「カレンダ式」に、カレンダ式を入力します。

      • 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

      • 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

    図11-1の例では、スケジュール・タイプに「標準」を選択しています。このタスクは繰り返されず、すぐに開始するようにスケジュールされます。

  7. 「次へ」をクリックします。

    「SQLアクセス・アドバイザ: 確認」ページが表示されます。


    画像の説明

    「オプション」で、SQLアクセス・アドバイザ・タスクの変更済のオプションのリストが表示されます。変更済および未変更の両方のオプションを表示するには、「すべてのオプションの表示」をクリックします。タスクのSQLテキストを表示するには、「SQL表示」をクリックします。

  8. 「発行」をクリックします。

    「セントラル・アドバイザ」ページが表示されます。メッセージでタスクが正常に作成されたことが通知されます。

SQLアクセス・アドバイザ推奨事項の確認

SQLアクセス・アドバイザでは、推奨事項がグラフィカルに表示され、推奨事項による利点が得られるSQL文を迅速に確認できるようにハイパーリンクが提供されます。SQLアクセス・アドバイザによって作成された各推奨事項は、その利点を得るSQL文にリンクされます。

ヒント:

SQLアクセス・アドバイザの推奨事項を確認する前に、「SQLアクセス・アドバイザの実行」の説明に従ってSQLアクセス・アドバイザを実行して推奨事項を提示します。 

SQLアクセス・アドバイザの推奨事項の確認手順:
  1. 「セントラル・アドバイザ」ページで確認するSQLアクセス・アドバイザ・タスクを選択し、「結果の表示」をクリックします。

    次の例では、「制限モード」が選択されています。


    画像の説明

    タスクが表示されない場合、画面をリフレッシュする必要がある場合があります。「タスクの結果」ページが表示されます。

  2. 「サマリー」サブページを確認します。このページには、SQLアクセス・アドバイザの分析結果の概要が表示されます(「SQLアクセス・アドバイザ推奨事項の確認: サマリー」を参照)。

  3. 「推奨」サブページを確認します。このページには、コスト改善の順に推奨事項が表示されます(「SQLアクセス・アドバイザ推奨事項の確認: 推奨事項」を参照)。

  4. ワークロードで分析されたSQL文を確認します(「SQLアクセス・アドバイザ推奨事項の確認: SQL文」を参照)。

  5. ワークロード、タスク・オプションおよびSQLアクセス・アドバイザ・タスクの詳細を確認します(「SQLアクセス・アドバイザ推奨事項の確認: 詳細」を参照)。

SQLアクセス・アドバイザ推奨事項の確認: サマリー

「サマリー」サブページにはSQLアクセス・アドバイザによる分析の概要が表示されます。

次の例では、「制限モード」が選択されています。

サマリーの詳細の確認手順:
  1. 「タスクの結果」ページで「サマリー」をクリックします。

    「制約」サブページが表示されます。

    次の例では、「制限モード」が選択されています。


    画像の説明

  2. 「ワークロードの全体的なパフォーマンス」で、推奨事項の実装における向上の可能性を評価します。

  3. 「ワークロードのI/Oコスト」グラフを使用して元のワークロードのI/Oコスト(赤)を新しいコスト(青)と比較します。

    この例では、推奨事項の実装によりワークロードのI/Oコストが877から867に削減されました。

  4. 「問合せ実行時間の向上」グラフを使用して問合せ実行時間の向上を比較します。

    このグラフには、ワークロード内で推奨事項の使用により実行時間が短縮されるSQL文の割合が表示されます。SQL文は反映される向上の係数によりグラフの横軸(1倍から10倍)に沿って分類されます。反映される向上の係数に対して、向上するSQL文の割合は縦軸(0%から100%)に沿って計算されます。

    この例では、ワークロード内の約75%のSQL文では、実行時間のパフォーマンスは改善されませんが、残りの約25%では4倍以上の改善の可能性があります。

  5. 「推奨」で、「推奨操作の数を表示」をクリックします。

    この例では、索引を1つ、マテリアライズド・ビューを4つ、マテリアライズド・ビュー・ログを6つ作成することを推奨しています。

    この例では、「制限モード」が選択されています。


    画像の説明

  6. 「SQL文」で、「文の数を表示」をクリックしてSQL文のタイプを表示します。

    この例では、19のSELECT文が分析されています。

    この例では、「制限モード」が選択されています。


    画像の説明

SQLアクセス・アドバイザ推奨事項の確認: 推奨事項

「推奨」サブページはコストの改善幅順によりSQLアクセス・アドバイザの推奨事項をランク付けします。各推奨事項の詳細も確認できます。

推奨事項の詳細の確認手順:
  1. 「タスクの結果」ページで「推奨」をクリックします。

    「推奨」サブページが表示されます。


    画像の説明

  2. 「コスト改善順の推奨事項」グラフを使用してコストの改善幅順に推奨事項を表示します。

    「実装用の推奨の選択」で、実装ステータス、推奨事項ID、コスト改善、領域消費および各推奨事項の影響を受けたSQL文の数とともに各推奨事項がリストされます。上位推奨事項の実装により、ワークロードのパフォーマンス全体に最大限の利点が与えられます。

  3. 特定の推奨事項の詳細を表示するには、推奨事項を選択して「推奨事項の詳細」をクリックします。

    「推奨事項の詳細」ページが表示されます。


    画像の説明

    「推奨事項の詳細」ページには特定の推奨事項に対するすべてのアクションが表示されます。

    「アクション」で、各アクションに対するスキーマ名、表領域名および記憶域句の変更を選択できます。アクションのSQLテキストを表示するには、指定されたアクションの「アクション」列のリンクをクリックします。

    「推奨の影響を受けるSQL」で、SQL文のSQLテキストおよびコスト改善情報が表示されます。

  4. 「OK」をクリックします。

    「推奨」サブページが表示されます。

  5. 推奨事項のSQLテキストを表示するには、推奨事項を選択し「SQL表示」をクリックします。

    選択した推奨事項で「SQL表示」ページが表示されます。


    画像の説明

SQLアクセス・アドバイザ推奨事項の確認: SQL文

「SQL文」サブページはコストの改善幅順によりワークロードにあるSQL文をランク付けします。このページを使用して、ワークロードで分析したSQL文の詳細を表示できます。

SQL文の確認手順:
  1. 「タスクの結果」ページで「SQL文」をクリックします。

    「SQL文」サブページが表示されます。


    画像の説明

  2. 「コスト改善順のSQL文」グラフを使用してワークロード内のコストの改善幅順にSQL文を表示します。

    「改善するSQL文の選択」で、各SQL文が文ID、SQLテキスト、関連する推奨事項、コスト改善および実行数とともにリストされます。

    上位SQL文に関連付けられた推奨事項を実装すると、ワークロードのパフォーマンス全体に最も大きな利点があります。この例では、IDが1の推奨事項の実装により、IDが2421のSQL文のコストが57.14%改善されるという大きな利点を得られます。

  3. 推奨事項のSQLテキストを表示するには、推奨事項を選択し「SQL表示」をクリックします。

    選択した推奨事項で「SQL表示」ページが表示されます。

SQLアクセス・アドバイザ推奨事項の確認: 詳細

「詳細」サブページには、分析に使用されるすべてのワークロード・オプションおよびタスク・オプションのリストが表示されています。また、このサブページを使用すると、タスクが作成されたときに使用されるジャーナル・レベルに基づいて、タスクのジャーナル・エントリのリストを参照できます。

ワークロードおよびタスクの詳細の確認手順:

SQLアクセス・アドバイザ推奨事項の実装

SQLアクセス・アドバイザの推奨事項は、簡単な提案から、一連の既存の実表をパーティション化し、一連のデータベース・オブジェクト(索引、マテリアライズド・ビュー、マテリアライズド・ビュー・ログ)を実装するといった複雑なソリューションにまで及びます。実装する推奨事項を選択し、ジョブの実行がいつ必要とされるかをスケジュールできます。

ヒント:

SQLアクセス・アドバイザの推奨事項を実装する前に、コスト面での利点を考慮して、どの推奨事項を実装するかを決定します。詳細は、「SQLアクセス・アドバイザ推奨事項の確認」を参照してください。 

SQLアクセス・アドバイザの推奨事項の実装手順:
  1. 「タスクの結果」ページで「推奨」をクリックします。

    「推奨」サブページが表示されます。

  2. 「実装用の推奨の選択」で、実装する推奨事項を選択して「スケジュール実装」をクリックします。

    この例では、IDの値が1の推奨事項が選択されています。


    画像の説明

    「スケジュール実装」ページが表示されます。

  3. システムで生成されたジョブ名を使用しない場合は、「ジョブ名」フィールドにジョブ名を入力します。

  4. エラーが発生した場合は、実装ジョブを停止する必要があるかどうかを判断します。次のいずれかの操作を行います。

    • エラーが発生した場合に処理を停止するには、「エラー時に停止」を選択します。

    • エラーが発生した場合に処理を続行するには、「エラー時に停止」の選択を解除します。

  5. 「スケジュール・オプション」の下の「スケジュール・タイプ」リストで、タスクのスケジュール・タイプおよびタスクを実行するメンテナンス・ウィンドウを選択します。次のいずれかの操作を行います。

    • 「標準」をクリックします。

      このスケジュール・タイプにより、タスクの繰返し間隔および開始時間を選択できます。次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「繰返し」リストで、「繰返しなし」を選択してタスクを1回のみ実行するか、または時間の単位を選択して「間隔」フィールドに単位数を入力します。

      • 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

    • 「事前定義されたスケジュールの使用」をクリックします。

      このスケジュール・タイプにより、既存のスケジュールを選択できます。次のいずれかの操作を行います。

      • 「スケジュール」フィールドに、タスクに使用されるスケジュールの名前を入力します。

      • スケジュールを検索するには、検索のアイコンをクリックします。

        「検索と選択: スケジュール」ダイアログ・ボックスが表示されます。

        必要なスケジュールを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したスケジュールが表示されます。

    • 「繰返し間隔にPL/SQLを使用する標準」をクリックします。

      このスケジュール・タイプにより、タスクの繰返し間隔および実行画面を選択できます。次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「開始可能時間」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

      • 「繰返し」リストで、「繰返しなし」を選択してタスクを1回のみ実行するか、または時間の単位を選択して「間隔」フィールドに単位数を入力します。

      • 「繰返し間隔」フィールドに、SYSDATE+1などのPL/SQLのスケジュール式を入力します。

      • 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

    • 「事前定義されたウィンドウの使用」をクリックします。

      このスケジュール・タイプにより、実行画面を選択できます。「ウィンドウを閉じる際の停止」を選択してウィンドウを閉じるときにジョブを停止します。次のいずれかの操作を行います。

      • 「ウィンドウ」フィールドに、タスクに使用されるウィンドウの名前を入力します。

      • ウィンドウを検索するには、検索のアイコンをクリックします。

        「検索と選択: ウィンドウとウィンドウ・グループ」ダイアログ・ボックスが表示されます。

        目的のウィンドウを選択し、「選択」をクリックします。「スケジュール」フィールドに選択したウィンドウが表示されます。

    • 「イベント」をクリックします。

      次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「イベント・パラメータ」で、「キュー名」および「条件」に値を入力します。

      • 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

      • 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

    • 「カレンダ」をクリックします。

      次の手順を実行します。

      • 「タイムゾーン」フィールドにタイムゾーンのコードを入力するか、または検索アイコンをクリックしてコードを領域に移動します。

      • 「カレンダ式」に、カレンダ式を入力します。

      • 「開始」の下にある「即時」を選択してすぐにタスクを開始するか、または「後で」を選択して「日付」および「時間」のフィールドを使用して指定した時刻に開始するタスクをスケジュールします。

      • 実行画面の終了日がないことを示す場合は、「終了期限」で「終了日指定なし」を選択するか、または「終了日指定」を選択して「日付」および「時間」のフィールドを使用して終了日を指定します。

    この例では、スケジュール・タイプに「標準」が選択されています。ジョブは繰り返されず、すぐに開始されるようにスケジュールされます。


    画像の説明

  6. オプションで、「SQL表示」をクリックしてジョブのSQLテキストを表示します。

  7. ジョブを送信するには、「発行」をクリックします。

    ジョブがすぐに開始するようにスケジュールされている場合、SQLアクセス・アドバイザ・タスクの「タスクの結果」ページが、ジョブが正常に作成されたことの確認とともに表示されます。


    画像の説明

  8. ジョブがすぐに開始するようにスケジュールされているか、または後で開始するようにスケジュールされているかによって、次のいずれかの操作を行います。

    • ジョブをすぐに送信した場合、および「タスクの結果」ページが表示される場合は、「スケジューラのジョブ」フィールドのリンクをクリックして「ジョブの表示」ページを表示します。手順10に進みます。

    • ジョブが後で実行するようにスケジュールされている場合は、手順9に進みます。

  9. 次の手順を実行します。

    1. 「サーバー」ページの「Oracle Scheduler」の下で、「ジョブ」をクリックします。

      「スケジューラのジョブ」ページが表示されます。

    2. 実装ジョブを選択し、「ジョブ定義の表示」をクリックします。

      選択したジョブに対する「ジョブの表示」ページが表示されます。

  10. 「ジョブの表示」ページの「操作の詳細」の下で、操作のステータスを確認します。


    画像の説明

  11. オプションで、操作を選択して「表示」をクリックします。

    「操作の詳細」ページが表示されます。

    このページには、障害のトラブルシューティングに使用できる情報(開始日および開始時間、実行期間、使用されるCPU時間、およびセッションIDなど)が含まれます。

  12. 「スキーマ」サブページで、SQLアクセス・アドバイザが推奨するアクセス構造が作成されていることを確認します。

    作成されるアクセス構造のタイプによって、「索引」ページ、「マテリアライズド・ビュー」ページまたは「マテリアライズド・ビュー・ログ」ページを使用してアクセス構造を表示できます。

    この例では、マテリアライズド・ビューMV$$_00690000SHスキーマに作成されています。


    画像の説明


戻る 次へ
Oracle
Copyright © 2007, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引