自動SQLチューニングによるSQL文チューニングの改善

このチュートリアルでは、高負荷のSQL文を自動的に調整する自動SQLチューニング機能を活用する方法について説明します。

約20分

トピック

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

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

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

概要

Oracle Database 11gは、問題のあるSQL文の識別、SQLチューニング・アドバイザの実行、および結果のSQLプロファイルのリコメンデーションの実装により、SQLチューニング・プロセスをさらに自動化します。これにより、ユーザーが介入する必要なく文を調整します。

トピック・リストに戻る

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

1.

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

2.

作業ディレクトリへast.zipファイルをダウンロードして解凍していること。また、作業ディレクトリへ移動していること。

トピック・リストに戻る

自動SQLチューニングの使用

自動SQLチューニングは、デフォルトで毎晩実行される"自動SQLチューニング"と呼ばれる新しいタスクを通じて、AUTOTASKフレームワークを使用します。Oracle Database 11gの自動化されたSQLチューニング・プロセスを簡潔に説明します。

次のシナリオは、高負荷のSQL文を実行した後での自動SQLチューニング・タスクの強制実行による上記の動作を示しています。タスクの実行を夜まで待つ必要がない様にするため、単純に自動SQLチューニングを強制的に実行します。強制的に実行するには、このOracle by Example(OBE)を実行する時点でメンテナンス・ウィンドウを開くだけです。

以下の手順を実行して、自動SQLチューニングの使用方法について学習します。

1.

Oracle Enterprise Manager Database Controlで、User NameをSYSとして接続します。

 

2.

Homeページで「Server」タブをクリックします。Serverサブページで「Automated Maintenance Tasks」リンクをクリックします。

 

3.

Automated Maintenance Tasksページで「Configure」ボタンをクリックします。Automated Tasks Configurationページで、Automatic SQL Tuning行の「Configure」ボタンをクリックします。

 

4.

Automatic SQL Tuning SettingsページのAutomatic Implementation of SQL Profilesで「Yes」を選択します。Oracle Tuning Packのライセンスが必要なため、デフォルトのSQLプロファイルの自動実装は無効になっています。選択したら、「Apply」をクリックします。次に、「Automated Maintenance Tasks Configuration」ブレッドクラム、「Automated Maintenance Tasks」ブレッドクラムの順にクリックします。

 

5.

ターミナル・ウィンドウを開いて、User Nameをoracleとして接続します。ast.zipファイルを解凍したディレクトリへ移動します。ast_setup.shスクリプトを実行します。このスクリプトによって、このOBEで使用する新しいスキーマが作成されます。また、自動SQLチューニングの以前の実行をクリアします。

./ast_setup.sh

 

6.

同じターミナル・ウィンドウからrun_workload_stream.shスクリプトを実行します。このスクリプトは、任意で非効率になったSQL文を何度も実行します。実行を完了するまでにかかる時間に注意してください。

./run_workload_stream.sh

 

7.

同じターミナル・ウィンドウからrun_ast.shスクリプトを実行します。このスクリプトは、自動SQLチューニング・タスクを実行するメンテナンス・ウィンドウを強制的に開き、高負荷なSQL文を自動的に調整します。メンテナンス・ウィンドウが自動的に開くことを翌晩まで待機しないように、これを実行します。実際の環境では、メンテナンス・ウィンドウを強制的に開く必要はありません。

: このスクリプトは、実行に少なくとも数分かかります。

./run_ast.sh

 

8.

同じターミナル・ウィンドウからrun_workload_stream.shスクリプトを再実行します。このスクリプトは、任意で非効率になったSQL文を何度も実行します。実行を完了するまでにかかる時間に注意してください。 実行時間は、過去の実行と比較した場合、改善されています。自動SQLチューニングがこの特定の文を調整したためです。また、さらに優れた計画を提供するプロファイルが自動的に実装されました。

./run_workload_stream.sh

 

9.

ターミナル・セッションからSQL*Plusで、User Nameをast(パスワードはast)として接続し、次のコマンドを使用して、AWRスナップショットを強制的に作成します。

exec dbms_workload_repository.create_snapshot;

作成されたら、SQL*Plusセッションを終了します。

 

10.

Oracle Enterprise Manager Automated Maintenance Tasksページに戻って、「Automatic SQL Tuning」リンクをクリックします。

 

11.

Automatic SQL Tuning Results Summaryページが表示されます。このページでは、最後のセッション中に1つのSQL文だけが調整され、2つのリコメンデーションが検出されたことを確認できます。1つのSQLプロファイルが自動的に実装され、1つの索引の作成が推奨されました(実装はされていません)。このページは、Profile Effect Statisticsも報告します。推奨されたプロファイルは非常に有益なことがわかります。このページの「View Report」ボタンをクリックします。

 

12.

Automatic SQL Tuning Result Detailsページで、自動チューニングに考慮されたすべての文を確認できます。自動SQLプロファイルの実装が有効ではない場合でも、推奨されたSQLプロファイルの情報を取得できます。ここでは、プロファイルが自動的に実装されました。ASTスキーマに対応するSQL文を選択して、「View Recommendations」ボタンをクリックします。

 

13.

Recommendations for SQL IDページで、対応するSQL文のすべてのテキストを確認できます。SQLプロファイルに対応するリコメンデーションを選択し、関連するCompare Explain Plans欄のアイコンをクリックします。 生成された異なる計画(SQLプロファイル実装の前と後)を確認できます。 確認したら、ブラウザの「Back」ボタンをクリックし、Recommendationsページに戻ります。

 

14.

Recommendations For SQL IDページに戻り、調整された文に対応するSQLテキストをクリックします。

 

15.

SQL DetailsのSQL Tuning Historyサブページで、この文が自動SQLチューニング・タスクで調整されたことを確認できます。Plan Controlサブページで、SQLプロファイルが自動的に実装されたことを確認します。

 

16.

ただし、PL/SQLを使用して同じ情報を取得することも可能です。ターミナル・セッションから、get_task_report.shスクリプトを実行します。このスクリプトは、PL/SQLを使用して先の分析の結果を表示します。

./get_task_report.sh

 

トピック・リストに戻る

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

トピック・リストに戻る

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