0) { obj.className = "imgborder_on"; } } } function hideImage(obj) { if (obj.className.substr(0, 10) == "imgborder_") { obj.src = eyeglass.src; obj.className = "imgborder_off"; } } function showAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { showImage(imgs[i]); } } function hideAllImages() { imgs = document.images; for (i=0; i < imgs.length; i++) { hideImage(imgs[i]); } } //-->
自動SQLチューニングによるSQL文チューニングの改善
目的
このチュートリアルでは、高負荷のSQL文を自動的に調整する自動SQLチューニング機能を活用する方法について説明します。
所要時間
約20分
トピック
このチュートリアルでは、以下のトピックについて説明します。
スクリーンショットの表示
このアイコンの上にカーソルを置くと、
すべてのスクリーンショットがロードし、表示されます。
(警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)
注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。
概要
Oracle Database 11gは、問題のあるSQL文の識別、SQLチューニング・アドバイザの実行、および結果のSQLプロファイルのリコメンデーションの実装により、SQLチューニング・プロセスをさらに自動化します。これにより、ユーザーが介入する必要なく文を調整します。
トピック・リストに戻る
前提条件
このチュートリアルを始める前に以下を確認してください。
| 1.
|
Oracle Database 11gがインストールされていること。
|
| 2.
|
作業ディレクトリ(wkdir)へ
ast.zipファイルをダウンロードおよび解凍し、作業ディレクトリへ移動させること。
|
| |
ファイルが配置されたディレクトリをポイントするように、すべての
.shスクリプトのディレクトリを変更します。
|
トピック・リストに戻る
自動SQLチューニングの使用
自動SQLチューニングは、デフォルトで毎晩実行される"自動SQLチューニング"と呼ばれる新しいタスクを通じて、AUTOTASKフレームワークを使用します。 Oracle Database 11gの自動化されたSQLチューニング・プロセスを簡潔に説明します。
- 手順1:AWRの上位SQLの識別に基づいて、自動SQLチューニングは、自動チューニングのターゲットにします。
- 手順2および3:メンテナンス・ウィンドウで自動SQLチューニング・タスクを実行している一方で、SQLチューニング・アドバイザが起動することにより、以前に識別したSQL文が自動的に調整されます。 その結果、必要に応じてSQLプロファイルが作成されます。 ただし、決定の前に新しいプロファイルを慎重にテストします。
- 手順4:特定の時点で、これらの自動チューニング・アクティビティのレポートを要求できます。 その後、生成された自動SQLプロファイルを検証または削除するために、調整された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文を何度も実行します。 実行を完了するまでにかかる時間に注意してください。 この例では、スクリプトの実行に約5秒かかりました。 自動SQLチューニングがこの特定の文を調整したためです。また、さらに優れた計画を提供するプロファイルが自動的に実装されました。
./run_workload_stream.sh
|
| 9.
|
ターミナルセッションからSQL*Plusで、User Nameを
ast(パスワードはast)として接続し、AWRスナップショットを強制的に作成します。 作成されたら、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プロファイル実装の前と後)を確認できます。 確認したら、「
SQL ID」ブレッドクラム・リンクをクリックします。
|
| 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チューニング・アドバイザの使用方法を学習しました。
トピック・リストに戻る
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|