[pgsql-jp: 41087] Re: Question about "Total runtime"

Tatsuo Ishii ishii @ sraoss.co.jp
2012年 4月 18日 (水) 00:59:12 JST


石井です。

> 小川と申します。お世話になっております。
> 
> EXPLAIN ANALYZEの"Total runtime"の解釈について、質問させてください。
> 
> 開発中のDBシステムの性能解析をしています。
> 
> ある検索のSQL(後述)で、EXPLAIN ANALYZEをかけたところ、
> 
> Total runtime: 3540.537 ms(2954 rows)
> 
> と出ました。
> 
> 一方、このSQLを呼び出しているJava側で開始前後の時間を図ると17秒かかっています。Java側ではSQL実行文の前後で時刻のログを出させています。
> #手入力でSQLを実行しても、感覚でこれくらいの時間かかっています。
> 
> 実際の実行時間とTotal runtimeのこの13.5秒差はどう理解したらいいのでしょうか?
> またこの13.5秒を短縮するためのアドバイスがありましたら、よろしくお願いいたします。

この差分は、EXPLAIN ANALYZEが、実行の各ステップでかかっている時間を計測
するためのオーバーヘッドです。たしか、gettimeofday()を使ってハードウェ
アクロックを読み出す時間に相当費やされているという話だったと記憶してい
ます。つまり、ハードウェアの性能によっても影響を受ける部分で、安価なデ
スクトップではオーバーヘッドが大きく、高性能なサーバではオバーヘッドが
少なくなると予想できます(自分では試していません)。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp


pgsql-jp メーリングリストの案内