MySQL
コマンドラインインターフェイスでは、クエリを実行すると、結果を出力した後にクエリが実行された時間が表示されます。Postgresクエリの実行時間
Postgresのコマンドラインインターフェイス(psql
)では、あなたには言いません。私はログから情報を得るためにログを設定する方法を知っていますが、MySQL
のように標準出力に印刷する方が便利です。
これはできますか?
MySQL
コマンドラインインターフェイスでは、クエリを実行すると、結果を出力した後にクエリが実行された時間が表示されます。Postgresクエリの実行時間
Postgresのコマンドラインインターフェイス(psql
)では、あなたには言いません。私はログから情報を得るためにログを設定する方法を知っていますが、MySQL
のように標準出力に印刷する方が便利です。
これはできますか?
"How can I time SQL-queries using psql?"で説明されているように\timing
を使用してください。
the manual for psql
も参照してください。あなたは結果をクライアントに転送する時間を含まないサーバー側実行時間が必要な場合
、あなたはSET client_min_messages = log
はそうあなたがコンソールでログ情報を取得、その後、設定でlog_min_duration_statement = 0
を設定することができます。
EXPLAIN ANALYZE
を使用して詳細な実行タイミングを取得することもできます。新しいバージョンでのみ使用するEXPLAIN (ANALYZE TRUE, TIMING FALSE)
を使用し、集約実行時間のみを与える詳細なタイミングを無効にしない限り、このためのタイミングオーバーヘッドがあります。
PgBadgerは、特にthe auto_explain
moduleと組み合わせると、ログ分析から有用な集計統計を提供することができる。
最後に、実行中のシステムで便利な集約情報を収集できるpg_stat_statements
があります。
と\ timingの使用方法 – aName
[手動](https://www.postgresql.org/docs/current/static/app-psql.html)または[google](https://www.google .com.au/search?q = psql + timing)。ああ、私はあなたに気付きました[ちょうどそれについての質問を投稿しました](http://stackoverflow.com/q/40593723/398670)。多分あなたはそれにリンクしているはずだったので、私はここであなたに答える時間を無駄にしませんでした。 –
私はEXPLAIN ANALYSE
構文
あなたに役立つかもしれないと思う:
EXPLAIN ANALYSE query;
例。
EXPLAIN ANALYSE
SELECT *
FROM demotable;
出力:
"Seq Scan on demotable (cost=0.00..12.10 rows=210 width=356)
(actual time=0.020..0.021 rows=8 loops=1)"
"Planning time: 18.477 ms"
"Execution time: 0.042 ms"
多くのGoogleのヒットは「グーグルを使う」と言って回答をしているとき、それは無意味だ - チョコレートティーポットと同じくらい便利! – NickJ
\ timing - 話すのは楽しいです – NickJ
これはカップルの方法です。しかし、それを試してもうまくいかない場合、あなたの質問にそれを記述してください。 –