57

コマンド ライン インターフェースでMySQLクエリを実行すると、結果を出力した後、クエリの実行にかかった時間が表示されます。

Postgres コマンド ライン インターフェイス ( psql) では、それはわかりません。ログから情報を取得できるようにログを構成する方法は知っていますが、 のように標準出力に出力する方が便利MySQLです。

これはできますか?

4

3 に答える 3

99

「psql を使用して SQL クエリのタイミングを計るにはどうすればよいですか?」\timingで説明されているように使用します。.

のマニュアルpsqlも参照してください。

結果をクライアントに転送する時間を含まないサーバー側の実行時間が必要な場合は、構成で設定できるためlog_min_duration_statement = 0SET client_min_messages = logコンソールでログ情報を取得できます。

EXPLAIN ANALYZE詳細な実行タイミングを取得するために使用することもできます。を使用しない限り、これにはいくらかのタイミング オーバーヘッドがありますEXPLAIN (ANALYZE TRUE, TIMING FALSE)。これは、新しいバージョンにのみあり、詳細なタイミングを無効にして、代わりに集計実行時間のみを提供します。

PgBadgerは、特にモジュールと組み合わせるとauto_explainログ分析から有用な集計統計を提供できます。

最後にpg_stat_statements、実行中のシステムに関する便利な集計情報を収集できる があります。

于 2013-07-15T13:45:32.797 に答える
42

私はそれ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"
于 2016-12-01T04:35:54.927 に答える