psqlを使用してSQLクエリの時間を計測するにはどうすればよいですか?


回答:


321

次のように入力して、タイミングをオンにします。

\timing


1
out bashから、「-c」オプションはpsqlこの設定を許可しません。次のような方法でこれを行うことができます psql --o /dev/null <<EOF \timing select 1 EOF
。– 3manuek

6
または行うpsql -c '\timing' -c 'select 1'
cdmckay


12

\timingリモートサーバーに接続している場合、返される時間にはネットワーク遅延も含まれます。

それが望ましくなく、クエリ出力も必要ない場合は、を使用することをお勧めしますEXPLAIN ANALYZE。これにより、プランナの推定値と実際の実行時間を含むクエリプランが出力されます。

例えば、 EXPLAIN ANALYZE SELECT foo from bar ;


1
...唯一の問題は、通常のクエリ出力を受け取れないことです。
dezso

2
を使用explain analyzeすると、約2倍のイールドタイムを使用できます\timing。これは、ネットワーク遅延に関するここでのコメントに基づいて予想されるものの反対です。通常の実行ではオーバーヘッドが発生analyzeし、クエリ時間が増えると思われます。ドキュメントに基づいて、EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM barより有益なタイミング情報が得られると思います。参照してくださいpostgresql.org/docs/9.6/static/sql-explain.html詳細については。
ラースク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.