我正在调试数据库性能问题。有一个线索是该问题是在一定部署后引入的,例如当数据库开始提供一些新查询时。
我正在寻求将部署时间与性能问题相关联,并希望找出导致此问题的查询。
到目前为止,pg_stat_statements
的使用非常方便。不幸的是,它不存储每个查询首次出现的时间戳。
我是否可以查看任何辅助表来查看首次出现查询的时间?
理想情况下,如果pg_stat_statements
中提供了此信息,我将进行如下查询:
select queryid from where date(first_run) = '2020-04-01';
另外,也很高兴看到last_run
,因此可以过滤掉一些不再执行但保留在pg_stat_statements
中的旧查询。不过,这是一件很必要的事情。
此信息不会存储在任何地方,并且确实不是很有用。如果问题声明是新的,则可以在应用程序代码中轻松识别它。如果它不是新语句,但是使查询速度变慢,则第一次执行查询将无济于事。
您的源代码不受版本控制吗?