SQLチューニング・アドバイザを使用したSQLの分析
SQLチューニング・アドバイザを使用して、SQL文の分析およびチューニングを行うことができます。
SQLチューニングは、データベース・システムのパフォーマンス・チューニングの重要な側面です。SQLチューニング・アドバイザは、パフォーマンスが最適でないSQL文に関する問題を解決するためのメカニズムです。入力として1つ以上のSQL文または1つのSQLチューニング・セット(STS)を取得し、自動チューニング・オプティマイザを起動して文を分析します。結果と推奨事項の形式で出力され、各推奨事項の論理的根拠および予想される利点が示されます。チューニングの推奨事項には次のものが含まれ、推奨事項を受け入れてSQL文のチューニングを完了するかどうかを選択できます。
- オブジェクト統計の収集
- 索引の作成
- SQL文のリライト
- SQLプロファイルの作成
- SQL計画ベースラインの作成
詳細は次の項を参照してください。
- SQLチューニング・アドバイザについては、『Oracle Database SQLチューニング・ガイド』のSQLチューニング・アドバイザに関する項を参照してください。
-
STSとその作成方法については、『Oracle Database SQLチューニング・ガイド』のSQLチューニング・セットでのワークロードの取得に関する項を参照してください。
データベース管理では、SQLチューニング・アドバイザを使用して、管理対象データベースのSQL文を分析できます。
SQLチューニング・アドバイザは、Oracle Database Enterprise Editionバージョン12.2以降でのみ使用でき、データベースに
COMPATIBLE
初期化パラメータが設定されている場合は、バージョン12.2.0以降と一致する必要があります。データベースの互換性の詳細は、『Oracle Databaseアップグレード・ガイド』のOracle Databaseの互換性の概要に関する項を参照してください。
ここでは、データベース管理でのSQLチューニング・アドバイザの使用に関連する主なステップを示します:
- 入力の選択およびSQLチューニング・アドバイザの実行: SQLチューニング・アドバイザの入力(SQL文またはSTS)は、次のいずれかのオプションを使用して選択し、SQLチューニング・タスクとして発行できます:
-
パフォーマンス・ハブに移動し、「ASH分析」タブで1つ以上のSQL IDを選択し、「SQLのチューニング」をクリックします。
-
「SQLチューニング・アドバイザのタスク」セクションの「SQLのチューニング」をクリックし、SQL文またはSTSを選択します。個々のSQL文を入力として選択できるようにするには、パフォーマンス・ハブの「ASH分析」タブで、先にSQL文を選択しておく必要があります。
-
データベースで自動SQLチューニングを有効にします。データベース管理では、SQLチューニング・アドバイザの自動構成はサポートされていませんが、データベースでSQLチューニング・アドバイザが自動的に実行されるように構成されている場合は、自動SQLチューニング・タスクと結果および推奨事項もデータベース管理に表示されます。SQLチューニング・アドバイザを自動タスクとして構成する方法の詳細は、Oracle Database SQLチューニング・ガイドの自動SQLチューニング・タスクの管理を参照してください。
-
- 結果の表示: SQLチューニング・アドバイザの結果は、「管理対象データベースの詳細」ページの「SQLチューニング・アドバイザのタスク」セクションに表示されます。
- 推奨事項の実装: SQLチューニング・アドバイザの結果および推奨事項は、「SQLチューニング・アドバイザのタスク詳細」ページに表示され、ユーザーはこの情報を確認して、推奨事項の実装を選択できます。
SQLチューニング・アドバイザを使用するために必要なロールおよび権限
SQLチューニング・アドバイザ・ワークフローのタスクを実行するには、Oracle Databaseの管理権限が必要です。さらに、次のロールおよび権限が割り当てられている必要があります:
GRANT SELECT_CATALOG_ROLE <following privileges> TO <admin user>
ADVISOR
CREATE JOB
CREATE SESSION
SELECT ANY DICTIONARY
INHERIT ANY PRIVILEGES
ADMINISTER SQL TUNING SET TO <SQLTUNEUSER>
Oracle Databaseのロールおよび権限の詳細は、『Oracle Databaseセキュリティ・ガイド』の権限およびロール認可の構成に関する項を参照してください。
SQLチューニング・アドバイザの実行
最初のステップとして、選択したSQL文またはSTSに対してSQLチューニング・アドバイザを実行する必要があります。
管理対象データベースの「管理対象データベースの詳細」ページで、次のいずれかのオプションを使用して、「SQLチューニング・アドバイザの実行」パネルにアクセスできます:
-
「パフォーマンス・ハブ」をクリックし、「ASH分析」タブで、待機クラス別SQL IDセクション(デフォルト・ビュー)にリストされているSQL IDまで下にスクロールし、SQL文を1つ以上選択して、「SQLのチューニング」をクリックします。
ノート
管理対象データベースのパフォーマンス・ハブは、Oracle Database Enterprise Editionのみをサポートしています。パフォーマンス・ハブ機能を使用できるかどうかはOracle Databaseのタイプおよびバージョンによって決まり、また特定の追加権限が必要です。管理対象データベースのパフォーマンス・ハブの使用に影響を与えるすべての条件の詳細は、My Oracle SupportのOCI: パフォーマンス・ハブの前提条件(ドキュメントID 2760305.1)を参照してください。 -
左ペインの「リソース」の下にある「SQLチューニング・アドバイザ」をクリックし、「SQLチューニング・アドバイザのタスク」セクションの「SQLのチューニング」をクリックします。
「SQLチューニング・アドバイザの実行」パネル:
SQLチューニング・アドバイザの結果の表示
SQLチューニング・アドバイザの実行時に、データベース管理でその結果および推奨事項を表示できます。
選択したSQL文またはSTSでSQLチューニング・アドバイザを実行すると、「SQLチューニング・アドバイザのタスク」セクションにSQLチューニング・タスクが表示されます。データベースでSQLチューニング・アドバイザが自動的に実行されるように構成されている場合は、自動SQLチューニング・タスクも表示されます。SQLチューニング・タスクごとに、「アクション」アイコン()をクリックし、「SQLチューニング・タスクの再実行」オプションをクリックすると、SQLチューニング・タスクを必要に応じて再実行できます。
SQLチューニング・タスクの名前をクリックして、SQLチューニング・アドバイザのタスク詳細ページに移動します。The SQL Tuning Advisor findings and recommendations are displayed on the following tabs on the SQL Tuning Advisor task details page:
- 「サマリー」タブ: SQLチューニング・アドバイザによって提供されたタスクおよび結果のサマリーがグラフィカルに表示されます:
- 調査された個別のSQL文: SQLチューニング・アドバイザによって調査されたSQL文は、「結果ありで調査されたSQL」、「エラーによりスキップされたSQL」および「結果なしで調査されたSQL」カテゴリにグループ化され、ドーナツ・チャートに表示されます。そのSQL文が複数回実行された場合、対象となるのは、分析期間中の1回(個別)の実行のみであることに注意してください。
- SQLプロファイルの推奨事項の利点: SQLプロファイルの推奨事項の利点(DB時間(秒))が棒グラフで表示されます。棒グラフには「前」および「後」の棒があり、それぞれ実際のDB時間と改善されたDB時間を示します。SQLプロファイルの推奨事項が提供されているが実装されていない場合は、単一の「潜在的」ベネフィット・チャートが表示され、SQLプロファイルの推奨事項が部分的に実装されている場合は、「潜在的」および「実装」ベネフィット・チャートが表示され、SQLプロファイルの推奨事項が完全に実装されている場合は、「実装」ベネフィット・チャートのみが表示されます。
- タイプ別推奨事項のある結果: SQLチューニング・アドバイザの結果と推奨事項がタイプ別に分類されて、棒グラフで表示されます。
- 「SQLの結果」タブ: 結果を表示し、SQLチューニング・アドバイザの推奨事項を実装します。SQL文のリストと、SQLチューニング・アドバイザにより実行された分析に基づく対応する情報が表示されます。これには、推定されるパフォーマンス上のベネフィット、結果および推奨事項が含まれます。1つのSQL文を選択すると、各結果の特定の推奨事項、論理的根拠、および推奨事項を実装した場合の予想されるベネフィットが表示されます。このタブでは、使用可能なオプションを使用して、すべてのSQLプロファイルの推奨事項の実装、1つの推奨事項の実装、および実行計画の比較を行うことができます。
- 「結果のないSQL」タブ: 結果や推奨事項がない、エラーがあった、またはタスクがタイムアウトしたためにスキップされたSQL文を表示します。
SQLチューニング・アドバイザの推奨事項の実装
SQLチューニング・アドバイザの推奨事項を実装するジョブを作成できます。
これを行うには、「SQLチューニング・アドバイザのタスク詳細」ページに移動し、「SQL結果」タブでSQLチューニング・アドバイザの分析結果および推奨事項を表示します。このタブでは、すべてのSQLプロファイルの推奨事項を実装するジョブを作成したり、1つのSQLプロファイル、索引または統計関連の推奨事項を実装したり、実行計画を比較したりできます。SQLの再構築、代替計画およびその他の結果も表示されますが、SQLの再構築および代替計画の推奨事項を実装するオプションは使用できません。SQLの再構築および代替計画の詳細は、『Oracle Database SQLチューニング・ガイド』のSQL構造分析および代替計画分析に関する項を参照してください。
すべてのSQLプロファイル推奨事項の実装
1つのSQLプロファイル推奨事項を実装するには、1つのSQL文を選択し、「SQL IDの推奨事項を1つ実装: <SQL ID>」セクションまで下にスクロールし、「SQLプロファイル」行の「アクション」アイコン()をクリックして、「推奨事項の実装」をクリックします。
SQLプロファイルの詳細は、『Oracle Database SQLチューニング・ガイド』のSQLプロファイルに関する項を参照してください。