性能診断(SQL Tuning Advisor)難易度 標準無料
特定の遅い SQL について、DBMS_SQLTUNE(SQL Tuning Advisor)でチューニングタスクを作成・実行し、レポートを確認した。
SQL> -- タスク作成~実行~レポート取得(概略)
SQL> SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('my_task') FROM dual;
SQL Tuning Advisor が返し得る推奨内容として最も適切なものを選べ。(単一選択)
- A統計の収集・SQL プロファイルの作成・索引の作成・SQL の書き換えなど複数種類の推奨を返し得る。ただし推奨は DBA が採用(accept)して初めて適用され、自動で本番の計画を差し替えはしない
- B推奨できるのは索引の作成のみで、統計や SQL プロファイルは対象外である
- C分析すると同時に、推奨(SQL プロファイル等)を自動的に本番へ適用し、以後の実行計画を強制的に置き換える
- DSQL Tuning Advisor はワークロード全体に対する索引・マテリアライズドビューの設計専用で、単一 SQL の分析はできない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
SQL Tuning Advisor(DBMS_SQLTUNE)は、単一の SQL 文を分析し、性能改善のための推奨を返す。返し得る推奨は複数種類ある。
- 統計の収集:欠落/失効した統計があれば、収集を推奨。
- SQL プロファイルの作成:オプティマイザに補助情報を与え、より良い計画を選ばせる(SQL 文自体は書き換えない)。
ACCEPT_SQL_PROFILEで適用する。 - 索引の作成:新しい索引が有効なら提案(詳細な索引設計は SQL Access Advisor 領域)。
- SQL の書き換え(再構成):より効率的な記述への変更を提案。
重要なのは、Advisor は推奨を出すだけで、DBA が採用(accept)して初めて適用される点(例:SQL プロファイルは ACCEPT_SQL_PROFILE)。自動で勝手に本番の計画を差し替えたりはしない。
- B索引だけではない。統計収集・SQL プロファイル・SQL 書き換えなども推奨する。索引/MV の網羅設計はむしろ SQL Access Advisor の守備範囲。
- CAdvisor は推奨を出すだけで自動適用はしない。SQL プロファイルは
ACCEPT_SQL_PROFILE等で明示採用が必要。 - Dそれは SQL Access Advisor の説明。SQL Tuning Advisor は単一 SQLの分析が主眼。両アドバイザを取り違えている。
ひっかけ: 「SQL Tuning Advisor=索引を作るだけのツール」という狭い理解。実際は統計・SQL プロファイル・索引・SQL 書き換えまで幅広く推奨する。
また「推奨が出たら自動適用される」という誤解も罠で、accept して初めて有効。索引/MV の網羅的設計はむしろ SQL Access Advisor の領域。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)