获取在Postgresql中执行查询的详细信息



我是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

相关内容

  • 没有找到相关文章