我有一个包含十亿行的表,我想确定几种形式的查询的平均时间和时间的标准差:

select * from mytable where col1 = '36e2ae77-43fa-4efa-aece-cd7b8b669043';
select * from mytable where col1 = '4b58c002-bea4-42c9-8f31-06a499cabc51';
select * from mytable where col1 = 'b97242ae-9f6c-4f36-ad12-baee9afae194';

....

我有col1的一千个随机值存储在另一个表中。

有什么方法可以将每个查询花费多长时间(以毫秒为单位)存储在单独的表中,以便我可以对它们进行一些统计?像这样:对我的随机表中的每个col1,执行查询,记录时间,然后将其存储在另一个表中。

只要我可以停留在PostgreSQL中(也就是我不想编写外部程序来执行此操作),则可以采用完全不同的方法。

最佳答案

您知道 EXPLAIN statement吗?

可以很容易地编写一个脚本,该脚本对表中的每个随机值在查询中执行EXPLAIN ANALYZE,然后将输出保存到文件/表/等中。

10-05 19:30
查看更多