如何在postgreSQL中标记查询性能? CPU或TIME但每次运行都需要一致

问题描述 投票:1回答:1

如何在postgreSQL中标记SQL性能?我尝试使用Explain Analyze,但每当我重复相同的查询时,它会提供不同的执行时间。

我在我的查询中应用了一些调优技术,并试图查看我的调优技术是否正在改进查询性能。 Explain分析具有不同的执行时间,我无法进行比较。调整以毫秒为单位,因此我正在寻找可以给出固定值进行比较的bechmarch。

postgresql
1个回答
1
投票

语句完成所需的时间总是有变化:

  • 页面可以缓存在内存中或必须从磁盘读取。这通常是最大偏差的来源。
  • 并发进程可能需要CPU时间
  • 您必须等待内部短时锁(锁存器)才能访问数据结构

这些只是我想到的前三件事。

简而言之,执行时间总是会有很小的变化。

多次运行查询并获取执行时间的中位数。这很好。

如果它是一个执行很多的查询,那么调整毫秒才有意义。

此外,如果您有真实的测试数据,调整才有意义。当它必须执行数百万行时,不要错误地检查和调整只有少量测试数据的查询。

© www.soinside.com 2019 - 2024. All rights reserved.