ORACLEMASTER 備忘録10(5/6)
続き
SQLチューニングアドバイザ委は次のソースに対して実行できる。
・SQLチューニングアドバイザを実行できるソース
トップアクティビティ:
過去一時間に実行された“最もリソースが集中していたSQL文”。最近のパフォーマンスの問題の原因となる可能性がある。
履歴SQL:
“AWRに記録されたSQL文”(AWRの保存期間内に実行された負荷の高いSQL文)。一連のSQL文が24時間単位で評価される。
SQLチューニングセット(STS):
指定した“一連のSQL文”と“関連するメタデータ”を一つのデータベースオブジェクトとしてグループ化したもの。STSはSWRのスナップショットによって取得されたSQL文、または任意のSQLワークロードから作成できる。
※OracleデータベースマニュアルではSELECT文はDMLに含まれるが、「SQLチューニングアドバイザではDMLは考慮されない」というように、SELECT文を除くデータ更新系(INSERT分、UPDATE分、DELETE文など)をDMLと解釈させる場合もある。
自動SQLチューニングアドバイザ
SQLチューニングアドバイザは、“Oracle Database 11g以降”、システムメンテナンス期間中のメンテナンスタスクとして自動的に実行されるようになった。これを「自動SQLチューニングアドバイザ」という。
自動実行中に、アドバイザは負荷の高いSQL問合せを選択し、それらの問合せの推奨チューニングを生成する。また、SQLプロファイルの推奨事項を自動的に実装するように構成できる。
SQLプロファイルとは、そのSQL文固有の“補助統計データ”である。これは、問合せオプティマイザが効率的な実行結果を生成できるようにするために用意されている。
SQLプロファイルの自動実装はデフォルトで無効だが、有効にすると、アドバイザやパフォーマンスが少なくとも3倍は向上するとみられるSQL文にのみ、SQLプロファイルを作成する。
その他の推薦事項(新しい索引の作成、オプティマイザ統計のリフレッシュ、SQLの再構築など)は、手動で実装する。自動SQLチューニングアドバイザでも、SELECT文のみ考慮され、DML文は考慮されない。
・SQLプロファイルを実装すると、問合せオプティマイザは通常のデータベース統計とともにSQLプロファイルに格納されている情報を使用し、実行計画を生成するので、パフォーマンス向上が見込める。