[pgsql-jp: 41085] Re: Question about "Total runtime"
kasaharatt @ nttdata.co.jp
kasaharatt @ nttdata.co.jp
2012年 4月 17日 (火) 22:20:14 JST
笠原です。
> > このログ(実際にはrowsはTotal runtimeの次の行に出るはずですが)は、EXPLAIN
> > ANALYZEの結果(実行計画)が 2954 行あるいうことですよね?これはVERBOSEオプ
> > ションなどを指定していたとしても相当複雑なSQLです。
確かに。計画そのものの行数が多いですね・・・
> 問合わせ計画の作成時間を知る方法はあるでしょうか? -> みなさん
さくっと思いつくところで、手軽なのは
=# \timing
=# EXPLAIN <SQL文>
でしょうか。
あるいは
=# log_planner_stats TO 'on';
=# SQL文;
として出力されたログを確認するとかですかね。
(以下の★あたりを見てみる)
(例)
LOG: PLANNER STATISTICS
DETAIL: ! system usage stats:
! 0.000347 elapsed 0.000000 user 0.000000 system sec ★
! [0.000999 user 0.001999 sys total] ★
! 0/0 [0/0] filesystem blocks in/out
! 0/106 [0/935] page faults/reclaims, 0 [0] swaps
! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
! 0/0 [3/11] voluntary/involuntary context switches
! buffer usage stats:
! Shared blocks: 0 read, 0 written, buffer hit rate = 100.00%
! Local blocks: 0 read, 0 written, buffer hit rate = 0.00%
! Direct blocks: 0 read, 0 written
STATEMENT: SELECT * FROM t1, t2 WHERE t1.id=t2.id AND to_number(t1.name, '000') < 10;
--
笠原 辰仁
> -----Original Message-----
> From: pgsql-jp-bounces @ ml.postgresql.jp
> [mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of MauMau
> Sent: Tuesday, April 17, 2012 9:51 PM
> To: PostgreSQL Japanese Mailing List
> Subject: [pgsql-jp: 41084] Re: Question about "Total runtime"
>
> 小川さん
>
> MauMauといいます。
>
> From: "花田 茂" <hanada @ metrosystems.co.jp>
> > このログ(実際にはrowsはTotal runtimeの次の行に出るはずですが)は、
> EXPLAIN
> > ANALYZEの結果(実行計画)が 2954 行あるいうことですよね?これはVERBOSE
> オプ
> > ションなどを指定していたとしても相当複雑なSQLです。このことからする
> と、
>
> この花ださんのコメントを見て、SQL文の問合わせ計画の作成に時間がかかって
> いるのではないか、と思いました。
> マニュアルの次の部分をご覧ください。
>
> http://www.postgresql.jp/document/pg910doc/html/using-explain.html
>
> [抜粋]
> EXPLAIN ANALYZEで表示されるTotal runtime(総実行時間)にはエクゼキュー
> タの起動、停止時間も含まれますが、解析や書き換え、計画作成の時間は含ま
> れません。
>
>
> 問合わせ計画の作成時間を知る方法はあるでしょうか? -> みなさん
>
> 以上です。
>
pgsql-jp メーリングリストの案内