Oracle SQLキャッチから始めるSQLチューニング

 2017.08.15  株式会社システムインテグレータ

処理が遅い、パフォーマンスチューニングしたいけど沢山SQLが流れてて何が原因か分からない。とお嘆きの貴方にSI Object Browser for Oracleの「SQLキャッチ」をご紹介します。 

Oracle 版のSQLキャッチとは何か?

それはOracleSQLトレース機能を見やすい形で表示してくれる機能です。ユーザー権限や事前設定が必要ですので、前々回の「SQLキャッチから始めるSQLチューニング(SQL Server)」の注意点をご覧ください。

SQLキャッチを使うには

設定が済みましたら下記画像のアイコンボタンか、
メニューの「ツール」→「SQLキャッチ」で画面を表示します。

Oracle SQLキャッチから始めるSQLチューニング 1


初回はトレースファイルが出力されるフォルダを選択する必要があります。
DIAGNOSTIC_DEST初期化パラメータのパスを確認し、下記の場所を選択します。

 [DIAGNOSTIC_DEST]/diag/rdbms/[db_name]/[SID]/trace/

無い場合は事情を説明して管理者に教えてもらいましょう。

Oracle SQLキャッチから始めるSQLチューニング 2

 [開始]ボタンを押し、データベーストレース/セッショントレースの開始を行います。
(黒く塗りつぶされている箇所は私の名前が出ているので隠してあります。)

Oracle SQLキャッチから始めるSQLチューニング 3

リストからトレースしたいセッションを選択し、[開始]ボタンを押します。
(青字は自セッションです。)

Oracle SQLキャッチから始めるSQLチューニング 4

処理の重いSQLリストアップ

トレース開始後、ORACLE は SQL が実行される度にその内容をトレースファイルに書き出すようになります。[表示]ボタンを押すと、SI Object Browser は ORACLE が発行したトレースファイルの内容からSQL文のみを抽出し、整形結果を画面下段に表示します。

[ELAPSED]列が経過時間を示していますのでこれをソートすることで重いSQLがどれか調べることが出来ます。

Oracle SQLキャッチから始めるSQLチューニング 5

結果リストの各項目は次のような値となります。

SID

SQLを実行したセッションIDを表示します。
[
同一SQLの結果をまとめる]にチェックが入っている場合、
複数セッションで実行されたSQLには「*」が表示されます。

COUNT

SQLを実行した回数を表示します。

CPU

SQLの解析・実行・フェッチに費やした CPU 時間を表示します。
単位は秒でミリ秒までの値が表示されます。

ELAPSED

SQLの解析・実行・フェッチに費やした経過時間を表示します。
単位は秒でミリ秒までの値が表示されます。

DISK

SQLの解析・実行・フェッチにより物理読込みが発生した際の
読込みブロック数を表示します。

QUERY

SQLの解析・実行・フェッチにより一貫モードで読み出された
バッファ数を表示します。

CURRENT

SQLの解析・実行・フェッチにより現行モードで読み出された
バッファ数を表示します。

ROWS

SQLによって処理されたデータ行数を表示します。

SQL

SQL文を表示します。


実行計画画面でSQLを修正

気になるSQLが見つかりましたらリストを選択して、右クリックより実行計画画面へ遷移します。

Oracle SQLキャッチから始めるSQLチューニング 6

問題のあるSQLを修正し、パフォーマンスの向上を目指します。

Oracle SQLキャッチから始めるSQLチューニング 7

最後にトレースを終了する場合は、[停止]ボタンを押してトレースを終了します。

手順についてはトレースファイルが有効な間は何度でも実行できます。また、トレースファイル自体はトレース終了後にも残りますので、トレースを終了させた後でも情報の表示は可能です。 

いかがでしたか。
今後、複数のSQLで構成された重い処理があったら、是非活用してみてください。


RELATED POST関連記事


RECENT POST「【OBトコ】OBを便利に使おう」の最新記事


【OBトコ】OBを便利に使おう

【待望のMySQL対応!】SI Object Browser for MySQL リリース

【OBトコ】OBを便利に使おう

【Oracle 23aiに対応!】SI Object Browser for Oracle 24.1の新機能

【OBトコ】OBを便利に使おう

【生成AI連携の強化!】SI Object Browser for Oracle 24の新機能

【OBトコ】OBを便利に使おう

【ChatGPTでSQL整形!】SI Object Browser for Oracle 23.1の新機能

Oracle SQLキャッチから始めるSQLチューニング
新規CTA