在MySQL命令行界面中,当您执行查询时,它会在打印结果后告诉您查询执行花费的时间。
在Postgres命令行界面(psql)中不会显示执行时间。我知道如何配置日志以从日志中获取信息,但像MySQL一样将其打印到标准输出中会更方便。
这可行吗?
在Postgres命令行界面(psql)中不会显示执行时间。我知道如何配置日志以从日志中获取信息,但像MySQL一样将其打印到标准输出中会更方便。
这可行吗?
按照"如何使用psql计时SQL查询?"所述,使用\timing
。
另请参阅psql
手册。
如果您需要不包括传输结果到客户端的服务器端执行时间,则可以在配置中设置log_min_duration_statement = 0
,然后SET client_min_messages = log
,以便在控制台中获取日志信息。
您还可以使用EXPLAIN ANALYZE
来获取详细的执行时间。除非您使用EXPLAIN (ANALYZE TRUE, TIMING FALSE)
(仅适用于新版本),否则会有一些时间开销,它会禁用详细的定时来提供只有汇总执行时间的结果。
PgBadger与auto_explain
模块相结合,可以从日志分析中提供有用的汇总统计信息。
最后,pg_stat_statements
可以在运行中收集有用的汇总信息。
我认为EXPLAIN ANALYZE
对你可能有帮助
语法:
EXPLAIN ANALYZE query;
例子;
EXPLAIN ANALYZE
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"