В самой базе данных нет истории, если вы используете psql, вы можете использовать "\ s", чтобы просмотреть там историю ваших команд.
Вы можете получать будущие запросы или другие типы операций в файлы журнала, установив log_statement в файле postgresql.conf. Вместо этого вы, вероятно, захотите: log_min_duration_statement , который, если вы установите его в 0, будет регистрировать все запросы и их продолжительность в журналах. Это может быть полезно после запуска ваших приложений, если вы установите для этого значения более высокое значение, вы увидите только длительные запросы, которые могут быть полезны для оптимизации (вы можете запустить EXPLAIN ANALYZE для запросов, которые вы там найдете, чтобы выяснить, почему медленно).
Еще одна полезная вещь, которую нужно знать в этой области, это то, что если вы запустите psql и скажете ему «\ хронометраж», он покажет, сколько времени занимает каждое утверждение после этого. Так что если у вас есть файл sql, который выглядит так:
\timing
select 1;
Вы можете запустить его с правильными флагами и увидеть, как каждое утверждение чередуется с тем, сколько времени это заняло. Вот как и как выглядит результат:
$ psql -ef test.sql
Timing is on.
select 1;
?column?
----------
1
(1 row)
Time: 1.196 ms
Это удобно, потому что вам не нужно быть суперпользователем базы данных, чтобы использовать его, в отличие от изменения файла конфигурации, и его проще использовать, если вы разрабатываете новый код и хотите его протестировать.