0

スクリーン ソケット内で実行される psql コマンドの実行時間を表示する必要があります。通常、私はコマンドを使用します:

psql -c 'select 1' -d my_db -U my_user -h localhost

このクエリの出力は次のようになります。

?column? - 1 row

実行時間を取得するにはどうすればよいですか? \timing で試してみましたが、結果はありません...

4

1 に答える 1

2

「実行時間」を定義します。ここにはさまざまなものがあります。

  • psqlバイナリの起動時間を含めますか、または除外しますか?
  • 接続に費やされた時間を含めますか、または除外しますか?
  • クエリを送信して結果を受信するためのネットワーク ラウンド トリップ時間とコンテキスト スイッチ時間を含めますか、除外しますか?
  • クエリを計画するサーバーで費やされた時間を含めますか、または除外しますか?
  • 計画されたクエリの実行にサーバーで費やされた時間を含めますか、または除外しますか?
  • 表示用に結果をフォーマットする時間を含めますか、それとも除外しますか?

最も簡単な方法timeとして、fedorqui が言うようにコマンドを使用します。time psql ....

時間を計る方法を説明するには、まず、実際に必要な時間を定義する必要があります。

その後、ノードごとの詳細なタイミング オーバーヘッド、サーバー設定、オプション、OS コマンドなどを使用せずにサーバー ランタイムを取得するために(おそらく別のexplain analyzeprepareを使用してexplain analyze execute)を使用して調べることができます。explain (analyze true, timing false)log_min_duration_statementpsql\timingtime

于 2013-06-25T13:14:07.357 に答える