我是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
的变量和总执行时间。因此,我可以比较每个执行的查询,以了解哪种类型的输入运行时间较长。
谢谢你,
当我读到这个问题时,听起来你正在寻找查询执行计划和执行细节,对吗?
如果是,您应该查看EXPLAIN
的文档[1]并熟悉它们。
不带选项的explain
表示执行计划。它实际上并不运行查询。
explain analyze
给出了预期时间和实际时间(注意它不会破坏输出数据,但这通常不是问题)。它实际上运行查询,就像任何时候在你的选项中有一个分析一样。
explain analyze verbose
给出了额外的信息。
还要注意,你可以配置PostgreSQL记录慢速查询,这将包括参数或输入。两者的结合对于解决这类问题通常很重要。
[1] https://www.postgresql.org/docs/9.3/static/sql-explain.html