[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 メーリングリストの案内