データベース自体に履歴はありません。psqlを使用している場合は、「\s」を使用してコマンド履歴を表示できます。
log_statement postgresql.confファイル内。代わりにおそらく必要なのは、 log_min_duration_statement 、これを0に設定すると、すべてのクエリとその期間がログに記録されます。これは、アプリが公開されたら役立つ場合があります。これを高い値に設定すると、最適化に役立つ長時間実行クエリのみが表示されます(そこで見つかったクエリに対してEXPLAIN ANALYZEを実行して、その理由を理解できます)。遅いです。
この領域で知っておくと便利なもう1つの点は、psqlを実行して「\ timing」と指定すると、その後のすべてのステートメントにかかる時間が表示されることです。したがって、次のようなSQLファイルがある場合:
\timing
select 1;
適切なフラグを使用して実行し、各ステートメントが所要時間とインターリーブされていることを確認できます。結果は次のようになります。
$ psql -ef test.sql
Timing is on.
select 1;
?column?
----------
1
(1 row)
Time: 1.196 ms
これは、構成ファイルを変更する場合とは異なり、データベースのスーパーユーザーである必要がないため便利です。また、新しいコードを開発してテストしたい場合は、使いやすくなっています。