如何解释stddev_time和hit_percent

时间:2019-03-13 09:57:36

标签: postgresql pg-stat-statements

我启动了以下命令,显示在本文档中: https://www.postgresql.org/docs/current/pgstatstatements.html

SELECT query, 
       calls, 
       total_time, 
       rows, 
       100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements 
ORDER BY total_time DESC 
LIMIT 5;

但是我不知道如何解释stddev_time(显然这可以显示引起问题的查询)

我不明白如何解释以下值:

100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent

接近0或100更好吗?

1 个答案:

答案 0 :(得分:0)

stddev_time显示此语句的执行时间standard deviation。如果该值接近零,则该语句每次运行时的执行时间都差不多。

大的stddev_time值意味着该语句的运行时间变化很大,这是因为运行时间根据常数值而变化很大,或者因为触摸了许多表或索引块,并且运行时间取决于它们是否碰巧被缓存。

此查询计算的hit_percent显示了在高速缓存中找到所需块的百分比。 100是最佳值,表明只需要缓存的块。