
Oracle初心者です。
あるテーブル(レコード数:100万件程度)に対してSelectするSQLの実行時間を、Oracleのset timing on, set autotrace onlyで計測しました。
結果は1000ms程度だったのですが、 同じSQL文を実行するプログラム(java)を作成し、pstmt.executequery()してresultsetからデータをgetするまでの時間をログに出力させたところ、400ms程度でした。
プログラムの性能目標として、set timing on の値を設定していたため、実際の結果(javaプログラムが出力した処理時間)の評価に困っています。
差がでる原因をご教示いただけませんでしょうか。
宜しくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
パッと思いつくのでは以下です。
・全く同等のSQLであれば、SQL解析時間
・結果がキャッシュされるため。
・実行計画の出力結果を生成する時間
キャッシュがクリアされるようにした上で再度実行したほうがいいでしょうね。
(あるのかどうかわかりませんがデータベースかインスタンスの再起動してみるといいかもしれません)
いずれにしても複数回(10回程度)実行して、平均値を取ったほうがいいでしょう。
一番大きい値と一番小さい値を除いた平均や
一番最初と一番最後を除いた平均も
用意しておくといいでしょうね。
最大値、最小値もそれはそれで評価します。
この回答への補足
さっそくのご回答ありがとうございます。
上記結果は、複数回実行した結果となります。
通常運用時の実行時間を評価対象としたかったため、キャッシュされている状態、解析を全て完了した状態で計測しようと思ってました。
気になっているのは、転送時間を含むか否かのような気がしています。(根拠はないのですが…)
javaプログラムの方は、転送と処理を並行してやっているのでは?と。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleで流したSQLのログを取得...
-
PL/SQLでログを確認したい。
-
ストアド・プロシージャをバッ...
-
3つのテーブルのレコードをCSV...
-
SQL*Plusで、コマンドの返答を...
-
pl/sqlでのautotraceについて
-
サービスの再起動を自動で
-
JavaでのOracle接続について(J...
-
ストアドプロシージャに渡され...
-
異なるDBの値比較方法
-
SQLplusからコマンドプロンプト...
-
ORA-00984のエラーが出ます
-
batファイルでのSQL(oracle)...
-
ORA-01013のエラーについて経験...
-
xy平面上の点P(x,y)に対し,点Q(...
-
CASE文のエラーについて
-
HAVING句でのBETWEEN演算子
-
ORA-01843: 指定した月が無効で...
-
PL/SQL PLS-00103エラーについて
-
PCC-S-02201エラーの対処を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleで流したSQLのログを取得...
-
SQL*Plusで、コマンドの返答を...
-
PL/SQLでログを確認したい。
-
トレースファイルの削除スクリプト
-
ORA-00984のエラーが出ます
-
ストアド・プロシージャをバッ...
-
SQL実行結果の出力を見やすくし...
-
ソート(大文字・小文字を区別...
-
batファイルでのSQL(oracle)...
-
Accessからoracleのストアドプ...
-
SQL実行結果取得
-
oracle11g listener.logの削除
-
サービスの再起動を自動で
-
pl/sqlでのautotraceについて
-
【spoolコマンドで追記】
-
JavaでのOracle接続について(J...
-
マテリアライズドビューログに...
-
シェル上でDBコマンドをループ...
-
SQL*Plusで以前に実行したコマ...
-
SQL*PLUSを終了させる方法
おすすめ情報