コマンド ライン インターフェースでMySQL
クエリを実行すると、結果を出力した後、クエリの実行にかかった時間が表示されます。
Postgres コマンド ライン インターフェイス ( psql
) では、それはわかりません。ログから情報を取得できるようにログを構成する方法は知っていますが、 のように標準出力に出力する方が便利MySQL
です。
これはできますか?
コマンド ライン インターフェースでMySQL
クエリを実行すると、結果を出力した後、クエリの実行にかかった時間が表示されます。
Postgres コマンド ライン インターフェイス ( psql
) では、それはわかりません。ログから情報を取得できるようにログを構成する方法は知っていますが、 のように標準出力に出力する方が便利MySQL
です。
これはできますか?
「psql を使用して SQL クエリのタイミングを計るにはどうすればよいですか?」\timing
で説明されているように使用します。.
のマニュアルpsql
も参照してください。
結果をクライアントに転送する時間を含まないサーバー側の実行時間が必要な場合は、構成で設定できるためlog_min_duration_statement = 0
、SET client_min_messages = log
コンソールでログ情報を取得できます。
EXPLAIN ANALYZE
詳細な実行タイミングを取得するために使用することもできます。を使用しない限り、これにはいくらかのタイミング オーバーヘッドがありますEXPLAIN (ANALYZE TRUE, TIMING FALSE)
。これは、新しいバージョンにのみあり、詳細なタイミングを無効にして、代わりに集計実行時間のみを提供します。
PgBadgerは、特にモジュールと組み合わせると、auto_explain
ログ分析から有用な集計統計を提供できます。
最後にpg_stat_statements
、実行中のシステムに関する便利な集計情報を収集できる があります。
私はそれ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"