如何解释 stddev_time 和 hit_percent

Adr*_*fie 3 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;
Run Code Online (Sandbox Code Playgroud)

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

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

100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
Run Code Online (Sandbox Code Playgroud)

接近 0 还是 100 比较好?

Lau*_*lbe 6

stddev_time显示该语句的执行时间的标准偏差。如果该值接近于零,则该语句每次运行时的执行时间都大致相同。

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

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