SQLアクセス・アドバイザによるスキーマ設計の改善

目的

このチュートリアルでは、スキーマ設計を拡張するSQLアクセス・アドバイザの使用方法について説明します。

所要時間

約40分

トピック

このチュートリアルでは、以下のトピックについて説明します。

 概要
 前提条件
 SQLアクセス・アドバイザの使用
 まとめ

スクリーンショットの表示

 このアイコンの上にカーソルを置くと、 すべてのスクリーンショットがロードし、表示されます。 (警告: すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)

注: 各手順に関連したスクリーンショットのみをロードして表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

概要

SQL問合せを最適化する適切なアクセス構造の定義は、常にOracle DBAの懸案事項です。 その結果、これに対処するために開発された高性能なツールとともに多くの文書およびスクリプトが作成されました。 また、パーティション化およびマテリアライズド・ビュー・テクノロジの開発によって、アクセス構造の決定がさらに複雑になりました。 Oracle Database 10gおよびOracle Database 11gの管理性の改善の一部として、この非常に重要なニーズに対処するためにSQLアクセス・アドバイザが導入されました。

SQLアクセス・アドバイザは、索引、マテリアライズド・ビュー、マテリアライズド・ビュー・ログ、あるいは作成、削除、または保存するパーティションを推奨して、SQL文の実行に関連するパフォーマンスの問題を識別して解決します。 PL/SQLプロシージャの使用によって、Oracle Database Controlまたはコマンドラインから実行できます。

トピック・リストに戻る

前提条件

このチュートリアルを始める前に以下を確認してください。

1.

Oracle Database 11gがインストールされていること。

2.

作業ディレクトリ(wkdir)への sqlaccadv.zipファイルのダウンロードおよび解凍と、作業ディレクトリへの移動が実行されていること。

トピック・リストに戻る

SQLアクセス・アドバイザの使用

SQLアクセス・アドバイザは、入力として実際のワークロードを取得します。また、スキーマから仮想ワークロードを抽出できます。 次に、高速実行パスのアクセス構造を推奨します。 以下の利点があります。

  • 専門知識が必要ありません。
  • コストベース・オプティマイザの実際のルールに基づいて意思決定が行われます。
  • オプティマイザおよびOracleデータベース拡張機能と同期します。
  • SQLアクセス方法のあらゆる側面を対象とする単一アドバイザです。
  • 簡単で使いやすいGUIウィザードを提供します。
  • 推奨事項を実装するスクリプトを生成します。

次のシナリオは、SQLアクセス・アドバイザで実行できる推奨事項のタイプを示しています。 また、SQLアクセス・アドバイザの推奨事項が適切なことを証明するためにSQLパフォーマンス・アナライザを使用します。

以下の手順を実行して、SQLアクセス・アドバイザの使用方法について学習します。

1.

User Nameを oracleとして接続した端末セッションから、 sqlaccessadv_setup.sh スクリプトを実行します。 このスクリプトは、このOBE全体で使用するために必要なデータを生成します。 特に、分析するワークロードを表すために使用されるSQLチューニング・セットを生成します。

./sqlaccessadv_setup.sh

 

2.

User Nameを sh(パスワードはsh)としてOracle Enterprise Manager Database Controlに接続します。 HomeページのRelated Linksセクションで「 Advisor Central」リンクをクリックします。

 

3.

Advisor Centralページで「 SQL Advisors」リンクをクリックします。 SQL Advisorsページで「 SQL Access Advisor」リンクをクリックします。

 

4.

Initial Optionsページで、以前に保存したタスクまたはテンプレートから「 Inherit Options」を選択し、「 SQLACCESS_WAREHOUSE」テンプレートを選択します。 次に、「 Continue」をクリックします。

 

5.

Workload Sourceページで、「 Use an existing SQL Tuning Set」を選択して、SQL Tuning Setフィールドに SH.SQLSET_MY_SQLACCESS_WORKLOADと入力します。 このSQLチューニング・セットは、前に生成されたものです。 分析するウェアハウス・ワークロードを示しています。 次に、「 Next」をクリックします。

 

6.

Recommendation Optionsページで、可能なすべてのアクセス構造とComprehensiveが選択されていることを確認します。 次に、「 Next」をクリックします。

 

7.

ScheduleページのTask Nameフィールドに MY_SQLACCESS_TASKと入力します。 提供されたリストから最初のタイムゾーンを選択します(懐中電灯アイコンをクリックします)。 次に「 Next」をクリックします。

 

8.

Reviewページで「 Submit」をクリックします。

 

9.

Advisor Centralページに戻って、「 Refresh」をクリックします。 次に、Results表の「 MY_SQLACCESS_TASK」リンクをクリックします。 タスクがCOMPLETEDステータスになっています。

 

10.

Resultsページが表示されます。 このページから、ワークロードにSQLアクセス・アドバイザの推奨事項を実装することの潜在的な利点を確認できます。 「 Recommendation」サブタブをクリックします。

 

11.

Recommendationsサブページには、推奨事項の高水準の概要が表示されます。 基本的に、可能なすべてのタイプの推奨事項がこのワークロード用に生成されました。 すべての推奨事項が選択されていることを確認して、「 Recommendation Details」ボタンをクリックします。 各推奨事項の詳細と、それらの推奨事項によって影響を受けるワークロードの対応するSQL文が確認できるDetailsページが表示されます。 「 OK」をクリックします。

 

12.

Recommendationsサブページに戻って、「 Schedule Implementation」ボタンをクリックします。

 

13.

Schedule Implementationページで、管理者の詳細な確認が必要な、非常に重要な変更のある推奨事項をウィザードが実装しないように警告が表示されます。 このため、「 Show SQL」ボタンをクリックして、すべての推奨事項の実装に使用できるスクリプトを確認します。 このスクリプトは既に作成されており、後で使用します。 スクリプトを確認した後に「 Done」をクリックします。 Schedule Implementationページに戻って、「 Cancel」をクリックします。

 

14.

右上隅の「 Database」タブ、「 Software and Support」タブの順にクリックします。 Software and Supportページで「 SQL Performance Analyzer」リンクをクリックします。 次に、推奨事項の実装が有益であることを証明します。

 

15.

SQL Performance Analyzerページで、「 Guided Workflow」リンクをクリックします。

 

16.

Guided Workflowページで、Step1の「 Execute」アイコンをクリックします。 Create SQL Performance Analyzer TaskのSQL Performance Analyzer Task Nameフィールドに MY_SPA_TASKと入力します。 SQL Tuning Set Nameフィールドに SH.SQLSET_MY_SQLACCESS_WORKLOADと入力します。 次に、「 Create」をクリックします。

 

17.

Guided Workflowページに戻って、Step2の「 Execute」アイコンをクリックします。 Create Replay Trialページで、Replay Trial Nameフィールドに MY_SQL_REPLAY_BEFOREと入力して、 Trial environment establishedチェック・ボックスが選択されていることを確認します。 次に、「 Submit」をクリックします。

 

18.

端末セッションから、SQL*PlusのUser Nameは sh(パスワードはsh)として接続します。 SQL*Plusセッションで、 implement.sql スクリプトを実行します。 このスクリプトは、SQLアクセス・アドバイザ・セッションで以前に生成した推奨事項に対応する事前作成スクリプトです。

@ implement.sql

 

19.

Guided Workflowページに戻って、Step3の「 Execute」アイコンをクリックします。 Create Replay TrialページのReplay Trial Name フィールドに MY_SQL_REPLAY_AFTERと入力します。 Trial environment establishedチェック・ボックスが選択されていることを確認して、「 Submit」をクリックします。

 

20.

Guided Workflowページに戻って、Step4の「 Execute」アイコンをクリックします。 Run Replay Trial Comparisonページで、MY_SQL_REPLAY_BEFOREとMY_SQL_REPLAY_AFTERを比較していることを確認します。 「 Submit」をクリックします。

 

21.

Guided Workflowページに戻って、Step5の「 Execute」アイコンをクリックします。 SQL Performance Analyzer Task Resultページで、2回目のトライアルが最初のトライアルよりもはるかに高速なことを確認できます。

 

トピック・リストに戻る

まとめ

このチュートリアルでは、SQLアクセス・アドバイザの使用方法を学習しました。

トピック・リストに戻る

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。