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