2013-07-15 2 views
15

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

В интерфейсе командной строки Postgres (psql) он не говорит вам. Я знаю, как настроить ведение журнала, чтобы я мог получить информацию из журналов, но было бы удобнее, если бы она печаталась на стандартный вывод, как в MySQL.

Можно ли это сделать?

+1

Это бессмысленно, когда многие хиты Google ответы говорят «с помощью Google» - о том, как полезно в качестве шоколада чайнике! – NickJ

+0

\ timing - это весело говорить – NickJ

+1

Это один из способов пары. Но все же, если вы попробовали, и это не сработает, опишите это в своем вопросе. –

ответ

42

Использовать \timing, как пояснил "How can I time SQL-queries using psql?".

См. Также the manual for psql.

Если вы хотите стороны сервера времени выполнения, которые не включают в себя время, чтобы передать результат клиенту, вы можете установить log_min_duration_statement = 0 в конфигурации, то SET client_min_messages = log так что вы получите информацию журнала в консоли.

Вы также можете использовать EXPLAIN ANALYZE, чтобы получить подробные сроки выполнения. Для этого есть некоторые временные накладные расходы, если вы не используете EXPLAIN (ANALYZE TRUE, TIMING FALSE), который находится только в более новых версиях, и отключает подробное время, чтобы вместо этого было указано только общее время выполнения.

PgBadger, особенно в сочетании с the auto_explain module, может предоставлять полезную статистику агрегатов из анализа журнала.

Наконец, есть pg_stat_statements, который может собирать удобную сводную информацию о запущенной системе.

+1

и как использовать \ timing – aName

+0

Используйте [manual] (https://www.postgresql.org/docs/current/static/app-psql.html) или [google] (https://www.google .com.au/поиск? д = PSQL + время). О, я заметил, что вы [просто отправили вопрос об этом] (http://stackoverflow.com/q/40593723/398670). Может быть, вы должны были с ним связать, поэтому я не тратил впустую свое время, отвечая на вас здесь. –

5

Я думаю, что EXPLAIN ANALYSE может быть полезным для вас

Синтаксис:

EXPLAIN ANALYSE query; 

Пример;

EXPLAIN ANALYSE 
SELECT * 
FROM demotable; 

Выход:

"Seq Scan on demotable (cost=0.00..12.10 rows=210 width=356) 
         (actual time=0.020..0.021 rows=8 loops=1)" 
"Planning time: 18.477 ms" 
"Execution time: 0.042 ms" 
Смежные вопросы