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

kasaharatt @ nttdata.co.jp kasaharatt @ nttdata.co.jp
2012年 4月 17日 (火) 20:19:07 JST


こんにちは 笠原と申します。

> 実際の実行時間とTotal runtimeのこの13.5秒差はどう理解したらいいのでしょうか?
EXPLAIN ANALYZE 全文を出してもらえると、もうちょっと踏み込んだ回答が
できると思います。

EXPLAIN ANALYZEの"Total runtime"は、DBMS側でSQLを実施した際の、
純粋な総実行時間になります。そのため、
・実際の結果表示
・リモートへの結果転送
などの時間は含まれません。ただ、今回はLimit 1で切っているので、大量の結果
セットの転送や表示が実行時間乖離の理由ではなさそうです。

JavaからのSQL呼び出し、手入力での実施、EXPLAIN ANALYZEのそれぞれの
実施方法はどうなっていますか?
# Prepared Statementなどを使っているのでしょうか?

--
笠原 辰仁


> -----Original Message-----
> From: pgsql-jp-bounces @ ml.postgresql.jp
> [mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of Jun Ogawa
> Sent: Tuesday, April 17, 2012 12:11 PM
> To: pgsql-jp @ ml.postgresql.jp
> Subject: [pgsql-jp: 41081] Question about "Total runtime"
> 
> 小川と申します。お世話になっております。
> 
> 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秒を短縮するためのアドバイスがありましたら、よろしくお願い
> いたします。
> 
> SQL文:
> SELECT A.time FROM A, B  WHERE A.userid = 10 AND B.time  = A.time
> AND B.name = 'OGAWA' AND A.address = 'Yokohama' limit 1 ;
> 
> 環境:
> PostgreSQL : 8.3.3
> RedHat: 5.4
> 
> 以上です。
> 
> ---
> Jun Ogawa
> jogawa @ gmail.com


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