2

我启动了以下命令,显示在本文档中: 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 时会更好吗?

4

1 回答 1

4

stddev_time显示此语句的执行时间的标准偏差。如果该值接近于零,则无论何时运行该语句都具有大致相同的执行时间。

stddev_time的值意味着语句的运行时间变化很大,要么是因为运行时间根据常量值变化很大,要么是因为很多表或索引块被触及,而运行时间取决于它们是否恰好被缓存.

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

于 2019-03-13T10:16:36.557 回答