
各种可视化选项 将帮助我们:
缩小的文字检视
一个相当简单的计划的原始文本已经在分析中引起了问题:
因此,当将有关每个节点的执行时间和已用缓冲区的关键信息从左侧和右侧取出时,我们倾向于使用缩写形式,并且很容易注意到最大值:
饼形图
但是有时候,即使只是了解“最受伤害的地方”也不容易,尤其是当它包含数十个节点并且该计划的缩写形式需要2-3个屏幕时。
在这种情况下,通常可以使用饼图:从
另一方面,您可以立即看到每个节点消耗的资源的大致份额。当我们将鼠标悬停在其上方时,在文本视图的左侧,我们将看到所选节点的图标。
瓦
pie,饼图没有显示不同节点与“最热”点之间的关系。为此,“ tile”选项更适合:
执行图
但是,这两个选项均未显示服务节点附件的完整链
CTE/InitPlain/SubPlan-只能在实际执行图中看到:
需要更多指标!
如果将查询的实际执行计划记为
EXPLAIN (ANALYZE),则在那里只会看到经过的时间。但是,这常常不足以得出正确的结论!
例如,通过在“冷”高速缓存上执行查询,您将收到(但您看不到!)从媒体接收数据的时间,而不是查询本身的全部工作。
因此,有一些建议:
- 用看减去的数据页的容量。该值实际上不受服务器本身负载的影响,可以用作优化指标。
EXPLAIN (ANALYZE, BUFFERS) - 使用
track_io_timing来确切理解与载体一起工作需要多长时间。
并且,如果您的计划不仅包含time,还包含
buffers或i/o timings,那么在每个图表选项上,您都可以切换到这些指标的分析模式。例如,有时您可以立即看到,所有读数的一半以上落在单个问题节点上:
有关该主题的先前文章: