我启动了以下命令,显示在本文档中: 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更好吗?
答案 0 :(得分:0)
stddev_time
显示此语句的执行时间standard deviation。如果该值接近零,则该语句每次运行时的执行时间都差不多。
大的stddev_time
值意味着该语句的运行时间变化很大,这是因为运行时间根据常数值而变化很大,或者因为触摸了许多表或索引块,并且运行时间取决于它们是否碰巧被缓存。
此查询计算的hit_percent
显示了在高速缓存中找到所需块的百分比。 100是最佳值,表明只需要缓存的块。