我是PostgreSQL的新手。 请帮我解决这个问题。
我有一张桌子
company (
id bigint primary key,
name text,
age integer,
address character(50),
salary real,
gender character(1))
然后我做简单的查询:
select * from company where address='texas' and salary=10000
select * from company where address='texas' and salary=15000
select * from company where address='houston' and salary=10000
select * from company where address='texas' and salary=85000
select * from company where address='norway' and salary=100
如何获取已执行查询的详细信息,例如查询,输入WHERE
的变量和总执行时间。所以我可以比较每个执行的查询,以了解长时间运行的输入类型。
谢谢,
答案 0 :(得分:1)
当我读到这个问题时,听起来你正在寻找查询执行计划和执行细节,对吗?
如果是这样,您希望查看EXPLAIN
的文档[1]并熟悉它们。
explain
提供了查询计划。它实际上并不运行查询。
explain analyze
为您提供预期与实际时间(请注意,它不会对输出数据进行解密,但这通常不是问题。它实际上会运行查询,因为只要您在选项中进行分析,它就会运行。
explain analyze verbose
为您提供了更多信息。
偶尔指定您想要缓冲区统计信息可能会有所帮助,但这是一个罕见的极端情况。从这三个开始。
另请注意,您可以配置PostgreSQL来记录慢速查询,这将包括参数或输入。两者的结合对解决这些问题通常很重要。
[1] https://www.postgresql.org/docs/9.3/static/sql-explain.html