分析するSQLワークロードをSQLチューニング・セットに取得したら、SQLパフォーマンス・アナライザを実行して、システム変更がSQLパフォーマンスに与える影響を分析できます。 SQLパフォーマンス・アナライザを実行するには、まずSQLパフォーマンス・アナライザのタスクを作成する必要があります。 タスクは、SQLパフォーマンス・アナライザの完全な分析に関するすべてのデータがカプセル化されているコンテナです。 SQLパフォーマンス・アナライザの分析は、2つ以上のSQL試行と1つの比較で構成されています。 SQL試行では、特定の環境条件下でのSQLチューニング・セットの実行パフォーマンスがカプセル化され、システム変更のテスト時にSQLパフォーマンス・アナライザによって実行される特定のテスト実行および実行計画操作が示されます。 SQLパフォーマンス・アナライザのタスクを作成する場合は、入力ソースとしてSQLチューニング・セットを選択する必要があります。 SQLチューニング・セットは、SQLパフォーマンス・アナライザで維持され、各SQL試行時に個別に実行されます。 このため、試行間のパフォーマンスの相違は、環境の相違が原因となります。 詳細は、「SQLパフォーマンス・アナライザのタスクの作成」を参照してください。
この章では、SQLパフォーマンス・アナライザのタスクの作成方法について説明します。内容は次のとおりです。
|
注意: SQLパフォーマンス・アナライザを実行するための主要なインタフェースは、Oracle Enterprise Managerです。 なんらかの理由でOracle Enterprise Managerを使用できない場合は、DBMS_SQLPA PL/SQLパッケージを使用してSQLパフォーマンス・アナライザを実行できます。 |
|
ヒント: SQLパフォーマンス・アナライザを実行する前に、パフォーマンスの分析に使用するSQLワークロードを本番システムのSQLチューニング・セットに取得して、パフォーマンスの分析を実行するテスト・システムに転送します。詳細は、「SQLワークロードの取得」を参照してください。 |
SQLパフォーマンス・アナライザを作成する場合にOracle Enterprise Managerで使用可能なワークフローは次の2種類です。
パラメータ変更ワークフロー
パラメータ変更ワークフローは、データベース初期化パラメータの変更によるSQLパフォーマンスへの影響を確認する場合に使用します。詳細は、「パラメータ変更ワークフローの使用」を参照してください。
ガイド付きワークフロー
ガイド付きワークフローは、データベース初期化パラメータの変更以外のすべてのタイプのシステム変更でのSQLパフォーマンスを比較する場合に使用します。詳細は、「ガイド付きワークフローの使用」を参照してください。
パラメータ変更ワークフローでは、1つの環境初期化パラメータの値を変更した場合のSQLワークロードへのパフォーマンスの影響をテストできます。 たとえば、ソート領域サイズが1MBから2MBに増加した場合のSQLパフォーマンスを比較できます。
SQLチューニング・セットおよび比較メトリックを選択すると、SQLパフォーマンス・アナライザによってタスクが作成され、初期化パラメータが元の値に設定された試行が実行されます。 タスクは、SQLリプレイ試行の結果用のコンテナです。 SQL試行で、特定の環境条件下でのSQLチューニング・セットの実行パフォーマンスが取得されます。 その後、SQLパフォーマンス・アナライザで、パラメータが変更された値に設定された2番目の試行が実行されます。 パフォーマンスの低下または変更は、システムによって生成されたSQLパフォーマンス・アナライザ・レポートに報告されます。
パラメータ変更ワークフローを使用してSQLパフォーマンス・アナライザのタスクを作成するには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「SQLパフォーマンス・アナライザ」をクリックします。
「SQLパフォーマンス・アナライザ」ページが表示されます。 既存のSQLパフォーマンス・アナライザのリストが表示されます。

「SQLパフォーマンス・アナライザ」ページで、「パラメータの変更」をクリックします。
「パラメータの変更」ページが表示されます。

「タスク名」フィールドに、タスクの名前を入力します。
「SQLチューニング・セット」フィールドに、分析するSQLワークロードが含まれているSQLチューニング・セットの名前を入力します。
または、検索アイコンをクリックして、「検索と選択: SQLチューニング・セット」ウィンドウでSQLチューニング・セットを検索します。
選択したSQLチューニング・セットが「SQLチューニング・セット」フィールドに表示されます。
「説明」フィールドに、オプションでタスクの説明を入力します。
「作成方法」リストで、次のいずれかのアクションを実行して、SQL試行の作成方法および生成されるコンテンツを確認します。
「SQLの実行」を選択します。
このSQL試行では、実際にSQL文を実行することによって、SQLチューニング・セット内の各SQL文に対して実行計画と実行統計の両方が生成されます。
「計画の生成」を選択します。
このSQL試行では、オプティマイザが起動され、実際にSQL文が実行されない場合にのみ実行計画が作成されます。
「SQL当たりの時間制限」リストで、次のいずれかのアクションを実行して、試行時のSQL実行の時間制限を決定します。
「無制限」を選択します。
この実行では、SQLチューニング・セット内の各SQL文が完了するまで実行され、パフォーマンス・データが収集されます。 実行統計を収集することによってパフォーマンス分析の精度は大幅に向上しますが、分析にかかる時間は長くなります。 1つのSQL文によってタスクが長時間停止状態になる場合があるため、この設定は使用しないことをお薦めします。
「カスタマイズ」を選択して、指定する秒数、分数、時間数を入力します。
「パラメータの変更」セクションで、次の手順を実行します。
「パラメータ名」フィールドに、変更する初期化パラメータの名前を入力するか、または検索アイコンをクリックして、「検索と選択: 初期化パラメータ」ウィンドウを使用して初期化パラメータを選択します。
「ベース値」フィールドに、初期化パラメータの現在の値を入力します。
「変更された値」フィールドに、初期化パラメータの新しい値を入力します。
「比較メトリック」リストで、分析に使用する比較メトリックを選択します。
手順6で「計画の生成」を選択した場合は、「オプティマイザ・コスト」を選択します。
手順6で「SQLの実行」を選択した場合は、次のいずれかのオプションを選択します。
「経過時間」
「CPU時間」
「バッファ読取り」
「ディスク読取り」
「ダイレクト書込み」
「オプティマイザ・コスト」
1つ以上の比較メトリックを使用して比較分析を実行するには、異なるメトリックを使用してこの手順を繰り返すことによって比較分析を別々に実行します。
「スケジュール」セクションで、次の手順を実行します。
「タイムゾーン」リストで、タイムゾーン・コードを選択します。
「即時」(即時にタスクを開始する場合)または、「後で」(「日付」および「時間」フィールドで指定した時間にタスクを開始するようスケジュールする場合)を選択します。
「発行」をクリックします。
確認メッセージが表示されます。
「SQLパフォーマンス・アナライザのタスク」セクションに、このタスクのステータスが表示されます。 ステータス・アイコンをリフレッシュするには、「リフレッシュ」をクリックします。 タスクが完了したら、「最終実行ステータス」アイコンがチェック・マークに変わります。

「SQLパフォーマンス・アナライザのタスク」セクションで、タスクを選択して「名前」列のリンクをクリックします。
「SQLパフォーマンス・アナライザのタスク」ページが表示されます。

このページには、次のセクションが含まれています。
「SQLチューニング・セット」
このセクションには、SQLチューニング・セットに関する情報(名前、所有者、説明、SQLチューニング・セットに含まれているSQL文の数など)の概要が表示されます。
「SQL試行」
このセクションには、SQLパフォーマンス・アナライザのタスクで使用されるSQL試行を示す表が含まれています。
「SQL試行比較」
このセクションには、ワークロード比較の結果を示す表が含まれています。
「比較レポート」列のアイコンをクリックします。
「SQLパフォーマンス・アナライザのタスク結果」ページが表示されます。
パフォーマンス分析の結果を確認します。詳細は、「Oracle Enterprise Managerを使用したSQLパフォーマンス・アナライザ・レポートの確認」を参照してください。
パフォーマンスの低下が特定された場合は、「SQLチューニング・レポート」列のアイコンをクリックしてSQLチューニング・レポートを表示します。
ガイド付きワークフローでは、任意のタイプのシステム変更によるSQLワークロードへのパフォーマンスの影響をテストできます。詳細は、「SQLパフォーマンス・アナライザ」を参照してください。
|
注意: 分析タスクを作成してデータベース初期化パラメータの変更をテストする場合は、簡略化されたパラメータ変更ワークフローをかわりに使用してください。詳細は、「パラメータ変更ワークフローの使用」を参照してください。 |
ガイド付きワークフローを使用してSQLパフォーマンス・アナライザのタスクを作成するには、次の手順を実行します。
「ソフトウェアとサポート」ページの「Real Application Testing」で、「SQLパフォーマンス・アナライザ」をクリックします。
「SQLパフォーマンス・アナライザ」ページが表示されます。 既存のSQLパフォーマンス・アナライザのリストが表示されます。
「SQLパフォーマンス・アナライザ」ページで、「ガイド付きワークフロー」をクリックします。
「ガイド付きワークフロー」ページが表示されます。
ガイド付きワークフローでは、任意のタイプのシステム変更を実行した場合のSQLワークロードへのパフォーマンスの影響をテストできます。詳細は、「SQLパフォーマンス・アナライザ」を参照してください。
このページには、SQLパフォーマンス・アナライザのタスクで必要な手順が順に表示されます。 各手順を順に完了してから、次の手順を開始する必要があります。

「ガイド付きワークフロー」ページで、手順1の「SQLチューニング・セットに基づくSQLパフォーマンス・アナライザのタスクの作成」の「実行」アイコンをクリックします。
「SQLパフォーマンス・アナライザのタスクの作成」ページが表示されます。

「名前」フィールドに、タスクの名前を入力します。
「説明」フィールドに、オプションでタスクの説明を入力します。
「SQLチューニング・セット」の下の「名前」フィールドに、分析するSQLワークロードが含まれているSQLチューニング・セットの名前を入力します。
または、検索アイコンをクリックして、「検索と選択: SQLチューニング・セット」ウィンドウでSQLチューニング・セットを選択します。
「作成」をクリックします。
「ガイド付きワークフロー」ページが表示されます。
この手順の「ステータス」アイコンがチェック・マークに変わり、次の手順の「実行」アイコンが有効になります。
分析タスクが作成されたら、SQLチューニング・セットに格納されているSQL文を実行して、変更前のパフォーマンス・データを構築できます。詳細は、第9章「変更前のSQL試行の作成」を参照してください。
この項では、DBMS_SQLPA.CREATE_ANALYSIS_TASKファンクションを使用してSQLパフォーマンス・アナライザの新しいタスクを作成する方法について説明します。 タスクは、SQLパフォーマンス・アナライザの実行時の入力および結果が格納されるデータベース・コンテナです。
|
ヒント: 操作を進める前に、パフォーマンスの分析に使用するSQLワークロードを本番システムのSQLチューニング・セットに取得して、パフォーマンスの分析を実行するテスト・システムに転送します。詳細は、「SQLワークロードの取得」を参照してください。 |
次のパラメータを使用して、SQLチューニング・セットの分析を準備するためにCREATE_ANALYSIS_TASKファンクションをコールします。
task_nameを設定して、SQLパフォーマンス・アナライザのタスクの任意の名前を指定します。
sqlset_nameをSQLチューニング・セットの名前に設定します。
sqlset_ownerをSQLチューニング・セットの所有者に設定します。 デフォルトは現在のスキーマ所有者です。
basic_filterを、SQLチューニング・セットからSQLを除外するために使用するSQL述語に設定します。
order_byを設定して、SQL文が実行される順番を指定します。
このパラメータを使用すると、時間制限に達しても、より重要なSQL文が処理され、スキップされないようにすることができます。
top_sqlを設定して、除外およびランク付け後にSQL文の上位の番号のみが考慮されるようにします。
次の例は、ファンクション・コールを示しています。
VARIABLE t_name VARCHAR2(100);
EXEC :t_name := DBMS_SQLPA.CREATE_ANALYSIS_TASK(sqlset_name => 'my_sts', -
task_name => 'my_spa_task');
分析タスクが作成されたら、SQLチューニング・セットに格納されているSQL文を実行して、変更前のパフォーマンス・データを構築できます。詳細は、第9章「変更前のSQL試行の作成」を参照してください。
|
参照: DBMS_SQLPA.CREATE_ANALYSIS_TASKファンクションの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 |