Oracle で SQL文の処理時間を測定する方法

2006/10/10

SQL のパフォーマンスチューニングをするために、SQL の処理時間や処理負荷を調べるのは非常に重要な作業となります。大抵はプログラム上にデバッグログを仕掛け、プログラム処理速度の観点も含めて検証しますが、根本的に SQL が悪いと判断に至った場合に限り、SQL だけを抜き出して確認を行います。

今回は SQL*Plus 上で SQL の処理に掛かった時間を測定する方法について説明します。

SQLの処理時間測定方法

流れは以下の通りです。

  1. 実行結果(クエリの結果)を表示させない。(※ 表示時間もカウントされてしまうため。)
  2. 経過時間を測定する設定を行う。
  3. SQL文を実行。

注目するのは SQL を発行してから処理が戻ってくるまでのレスポンス速度であるため、処理結果の表示については無視します。そこで select の結果を出力しないように AUTOTRACE を使用します。そして、経過時間を表示するために TIMING を使用します。

それでは実際に SQL*Plus を立ち上げて、対象のデータベースにログインしてから、これららのコマンドを発行しましょう。

  1. set autotrace traceonly
  2. set timing on
  3. select c_hoge from T_HOGE where ……

SQL処理時間の測定例

上記コマンドを設定した場合の出力例を以下に示します。

SQL> set autotrace traceonly
SQL> set timing on
SQL> select c_hoge from T_HOGE;

12行が選択されました。


経過: 00:00:00.08

実行計画
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=12 Bytes=972)
   1    0   TABLE ACCESS (FULL) OF 'T_HOGE' (TABLE) (Cost=3 Card=12 Bytes=972)


統計
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          8  consistent gets
          6  physical reads
          0  redo size
       2773  bytes sent via SQL*Net to client
        504  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         12  rows processed

AUTOTRACE を利用すると実行計画が出力されてしまいますが、SQL そのものの速度は、実行計画の処理前に出力されている経過時間となります。処理負荷を調べるには、実行計画を分析するのも1つの手段となりますので、セットで覚えておくと良いでしょう。

なお、この実行計画を確認することで処理速度アップの方法を見つけ出すこともできます。インデックスが有効になっていないことが分かり、インデックス作成により解消するケースが大半かもしれませんが、それだけ実行計画にはヒントが隠されているので、併せて確認されることをおすすめします。

以上、Oracle で SQL 文の処理時間を測定する方法の紹介でした。

最新の更新情報は、Twitter、Facebook、Freedly にてお届け!

NJ-CLUCKER RSS

このブログの運営者

NJ

気力・体力勝負なシステム業界のエンジニアを経て、個人事業主として独立。Web サイト運営、動画制作など活動の場を広げています。

このブログでは、困ってたどり着いた人に、分かりやすく答えを提供できるように心掛けています。更新情報は、Twitter や Facebook ページを参照ください。フォローお待ちしています。

Facebook ページ NJ-CLUCKER
このブログが役に立ったら
「いいね!」お願いします

サイト内検索

最近のエントリー

どうぶつの森ポケットキャンプのダウンロード方法とインストール手順【初期設定】

どうぶつの森ポケットキャンプの配信開始も通信エラーが頻発!原因はアクセス過多か?!

WordPress でプラグインを利用せずメールフォームを自作!画面遷移せず非同期処理で実装

安室奈美恵 Finally 再録曲は完コピを超えた!もはやベストアルバムではなくニューアルバムだ!

iTunes で再生回数や最後に再生した日が更新されない場合の対処法

AbemaTV(アベマTV)をテレビ画面で見る方法!基本的にネット環境は必須!

Nintendo Switch 初期不良による問い合わせから修理までの流れ

Windows 10 起動時に Chrome が勝手に起動する原因は?急に起動するようになったのは OS の仕様変更によるもの

JavaScript の数値チェックに isNaN を使ってはいけない理由

Nintendo Switch のセーブデータを保持したまま本体を初期化する!本体の調子が悪い時の対処法の1つです!