14.1.3 注意事项
EXPLAIN ANALYZE预估的运行时间与实际运行时间明显不同的原因,最重要的有两个。一是预估成本不包含到客户端的网络传输成本和I/O转换成本;二是,EXPLAIN ANALYZE所增加的测量开销可能很大,尤其是在gettimeofday()操作系统调用缓慢的计算机上。可以使用pg_test_timing工具来测量系统计时的开销。
不能以EXPLAIN的结果推测另一个完全不同环境下的执行计划行为。一个极端的情形是,如果一个表仅占用一个磁盘页,那么无论是否有索引,执行计划均会走顺序扫描。
有些场景下,实际值和预估值不一样,这是正常的。比如计划节点因LIMIT或类似的操作导致执行很快就结束。例如:
EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2
> 9000 LIMIT 2;
QUERY
PLAN
------------------------------------------------------------------------------------
Limit (cost=0.29..14.71 rows=2 width=244) (actual time=0.177..0.249 rows=2 loops=1)-> Index Scan using tenk1_unique2 on tenk1 (cost=0.29..72.42 rows=10 width=244) (actual time=0.174..0.244 rows=2 loops=1)Index Cond: (unique2 > 9000)Filter: (unique1 < 100)Rows Removed by Filter: 287
Planning time: 0.096 ms
Execution time: 0.336 ms
本文发布于:2024-02-02 12:47:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170684924843899.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |