Действительно ли возможно получить историю запросов, сделанных в пост-ГРЭС

При использовании SQL Server 2008, этому встроили это теперь, посмотрите это в книги онлайн

CAST(GETDATE() AS date)

53
задан Chiwai Chan 5 October 2009 в 17:05
поделиться

2 ответа

В самой базе данных нет истории, если вы ' При использовании psql вы можете использовать "\ s", чтобы увидеть там историю своих команд.

Вы можете получить будущие запросы или другие типы операций в файлах журнала, установив log_statement в файле postgresql.conf. Вместо этого вы, вероятно, захотите log_min_duration_statement , который, если вы установите его в 0, будет регистрировать все запросы и их продолжительность в журналах. Это может быть полезно, когда ваши приложения будут запущены. Если вы установите более высокое значение, вы увидите только долго выполняющиеся запросы, которые могут быть полезны для оптимизации (вы можете запустить EXPLAIN ANALYZE для запросов, которые вы найдете там, чтобы выяснить, почему они медленные).

Еще одна полезная вещь, которую нужно знать в этой области, заключается в том, что если вы запустите psql и укажете ему "\ timer", он покажет, сколько времени займет каждая следующая инструкция. Итак, если у вас есть файл sql, который выглядит так:

\timing
select 1;

Вы можете запустить его с правильными флагами и увидеть, как каждый оператор чередуется с тем, сколько времени это заняло. Вот как и как выглядит результат:

$ psql -ef test.sql 
Timing is on.
select 1;
 ?column? 
----------
        1
(1 row)

Time: 1.196 ms

Это удобно, потому что вам не нужно быть суперпользователем базы данных, чтобы использовать его, в отличие от изменения файла конфигурации, и его проще использовать, если вы разрабатываете новый код и хотите проверить это.

\timing
select 1;

Вы можете запустить его с правильными флагами и увидеть, как каждый оператор чередуется с тем, сколько времени это заняло. Вот как и как выглядит результат:

$ psql -ef test.sql 
Timing is on.
select 1;
 ?column? 
----------
        1
(1 row)

Time: 1.196 ms

Это удобно, потому что вам не нужно быть суперпользователем базы данных, чтобы использовать его, в отличие от изменения файла конфигурации, и его проще использовать, если вы разрабатываете новый код и хотите проверить это.

\timing
select 1;

Вы можете запустить его с правильными флагами и увидеть, как каждый оператор чередуется с тем, сколько времени это заняло. Вот как и как выглядит результат:

$ psql -ef test.sql 
Timing is on.
select 1;
 ?column? 
----------
        1
(1 row)

Time: 1.196 ms

Это удобно, потому что вам не нужно быть суперпользователем базы данных, чтобы использовать его, в отличие от изменения файла конфигурации, и его проще использовать, если вы разрабатываете новый код и хотите проверить это.

66
ответ дан 7 November 2019 в 08:49
поделиться

If you want to identify slow queries, than the method is to use log_min_duration_statement setting (in postgresql.conf or set per-database with ALTER DATABASE SET).

When you logged the data, you can then use grep or some specialized tools - like pgFouine or my own analyzer - which lacks proper docs, but despite this - runs quite well.

3
ответ дан 7 November 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: