検索
連載

SQLチューニングの基盤となる統計情報Oracle SQLチューニング講座(5)(2/4 ページ)

本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

EVENT 10046でのSQLトレースの取得

 ドキュメントには記載されていませんが、EVENTと呼ばれるデバッグ用の機能により、SQLトレースで取得できる情報に加えて、より詳細な情報を取得することも可能です。EVENT 10046には表3のようなレベルがあり、通常のSQLトレースによって作成されるトレースファイルには含まれない、バインド変数の値や待機イベントを確認できます。通常のSQLトレースに比べ、非常に多くの情報がファイルに出力されるため、ディスクの空き容量に十分注意してください。

 なお、EVENTはOracleの内部動作変更や、デバッグなどに使用されるものであり、正式にサポートされるものではありません。使用する場合は、自己責任において使用してください

レベル 内容
LEVEL 1 SQL_TRACE機能と同等
LEVEL 4 LEVEL 1の情報に追加して、バインド変数情報が出力される
LEVEL 8 LEVEL 1の情報に追加して、待機イベント情報が出力される
LEVEL 12 LEVEL 1の情報に追加して、バインド変数情報、待機イベント情報が出力される
表3 EVENT 10046のレベル

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 デフォルトのSQLトレースには含まれないバインド変数の値を確認する場合、LEVEL 4もしくはLEVEL 12で取得したSQLトレースをTKPROFユーティリティで整形せずに、直接参照します。以下の例は、LEVEL4でバインド変数を確認した結果です。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 今回のSQLは、「CURSOR #2」で実行されていることから、バインド変数の値は、その直後にある「BINDS #2」になります。ここでは、「value=1」「value="Clerk#000000951"」が指定されていたことが確認できます。

別セッションのSQLトレース、EVENT 10046のSQLトレース取得手順

 先ほどは自セッションのSQLトレースを取得する方法を説明しましたが、アプリケーションを変更できない場合や、すでに実行中のアプリケーションのSQLトレースを取得したい場合も多いかと思います。そのような場合、ほかのセッションに対して、SQLトレースやEVENT10046をセットすることも可能です。

 ただし、取得できるのは、トレース取得開始時点以降の情報となります。そのため、すでに実行中であったSQLに関しては、読み取りブロック数などの値が不正確となりますので、注意してください。以下に別セッションのSQLトレースを取得する例を示します。

1. sysdba権限を持つユーザーでログインする

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


2. トレース取得対象セッションのSID、SERIAL#をV$SESSION動的パフォーマンスビューで確認するクリックすると別ウィンドウで表示します)

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 ここでは、SCOTTユーザーを指定しています。

3. SQLトレースを設定する

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 ここでは、SID、SERIAL#、TRUEを指定して、上記のプロシージャを実行します。

4. SQLトレースの設定を解除する

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 なおトレースファイルは、自セッションのSQLトレースを取得したときと同じディレクトリ下に作成されます。

 別セッションに対して、EVENT 10046のSQLトレースを設定する場合には、手順の3.と4.で以下のプロシージャを実行します。

3. EVENT 10046をLEVEL 12に設定する

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


4. EVENT 10046の設定を解除する

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る