SQL Performance Analyzerのアクティブ・レポート



SQL Performance Analyzer(SPA)は、Oracle Database 11gで導入されたOracle Real Application Testingオプションの主要機能です。この機能によって、データベースのアップグレード、新規索引の追加、データベース・パラメータの変更、オプティマイザ統計情報の収集といったシステム変更によって起こるSQLパフォーマンスの改善とリグレッションを予測し、定量化します。SQL Performance Analyzerは、本番システムまたはテスト・システムにおいて、変更の前と後で分けてSQL文を実行することで、変更がSQL実行計画および統計実行に及ぼす影響を詳細に分析します。 SPAは変更の前後でSQL実行結果を比較し、変更によるSQLワークロードの最終的なメリットをまとめたレポートと、回帰した一連のSQL文を生成します。 回帰したSQL文については、適切な実行計画の詳細とともに、推奨される修正方法が提供されます。

SQL Performance Analyzerのアクティブ・レポートは、Oracle Enterprise ManagerのUIテクノロジーを使用した新しいタイプのインタラクティブ・レポートであり、OTNにホストされています。 その他のアクティブ・レポートとして、SQL MonitorSQL Detailsも提供されています。


アクティブ・レポート
 

アクティブ・レポートの例

回帰したSQLと全体的な改善
回帰したSQLに対して計画ベースラインを使用した後のパフォーマンス改善
CPU時間に基づく比較レポート
エラー、タイムアウト、サポートされないSQLに関するシンプルなレポート

よくある質問

回答

SQL Performance Analyzer(SPA)のアクティブ・レポートを生成する方法を教えてください。

SPAのアクティブ・レポートは、SPA比較レポートを表示している間にOracle Enterprise ManagerのライブUIで直接生成できます。 ページ右上にあるsaveボタンまたはsend e-mailボタンを使用すると、SPA詳細ページをアクティブ・レポートとして保存したり、電子メールで送信したりすることができます。 または、PL/SQLプロシージャであるdbms_sqlpa.report_analysis_task()のレポート・タイプに"active"を指定して起動することで、コマンドラインから直接アクティブ・レポートを生成することもできます。 たとえば、次のSQL*Plusスクリプトは、SPAタスクのアクティブ・レポートの生成方法を示しています。

set trimspool on
set trim on
set pages 0
set linesize 1000
set long 1000000
set longchunksize 1000000
spool spa_active.html
select dbms_sqlpa.report_analysis_task(task_name => 'my_spa_task', 
type=>'active', section => 'all') from dual;
spool off

出力されたspa_active.htmlファイルからヘッダー(ファイルの1行目)と最終行(spool off)を削除すると、 結果のhtmlファイルを任意のブラウザで表示できます。 アクティブ・レポート・コードをロードするため、このブラウザからOTNへの接続を確保する必要があります。