我有一个包含十亿行的表,我想确定几种形式的查询的平均时间和时间的标准差:
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
,然后将输出保存到文件/表/等中。