EXPLAIN (ANALYZE, BUFFERS) ...
是了解该DBMS特性的最喜欢的工具,那么我们的服务用于计划的可视化和分析的新的有用“芯片”说明了。tensor.ru在这个困难的任务中肯定会派上用场。
但是,让我立即提醒您,如果不对PostgreSQL数据库进行全面的全面监视,则仅使用计划分析是从5号贤者的位置开始!
[来源KDPV,“盲人与大象” ]
, 1940
, ,
.
,
,
, .
, —
.
,
:
—
!
,
,
, ,
.
,
,
,
.
盲人之间发生了争执,
并持续了整整一年。
然后,盲人终于
动了动手。
而且由于第五个强壮,
-他闭上了所有人的嘴。
现在,大象由
一条尾巴组成!
因此,今天在程序中:
- 将“人字形”更改为“肩带”
- 我们汇集了“大型”计划
- 我们保留个人档案
- 研究计划的谱系
- 凝视着“窗户”
没有单一的颜色!
从历史上看,在查看计划时,我们在值的左侧用垂直“ V形”标记“最热”节点-值越高,颜色越丰富。
但是在这样的模型中,人们很难感知值的比率-例如,只有训练有素的眼睛才能注意到深浅差异的30%偏差。因此,我们从水平的“肩带”制作了直方图。
“大型”计划的有用统计数据
许多人没有注意到该计划的“统计”标签,而是在右侧:
无论谁注意到,几乎都没有积极使用它。我们决定更正此遗漏,并使其真正对分析“大型”计划(100多个节点)有用。
分组节点
所有“相同”计划节点(即,具有相同节点类型,使用的表和索引的那些计划节点)都分组为一个表行。此外,它们的所有指标(执行时间,已读取和已丢弃记录的数量,通过的总数和已读取的数据量)都将相加。
为了清楚起见,每个节点类型都带有一个颜色标签:
- 红-读取数据
的节点Seq Scan
,Index Scan
,CTE Scan
和其他各种... Scan
- 黄色-数据处理
节点Sort
,Unique
,Aggregate
,Group
,Materialize
,... - 绿色-连接
节点Nested Loop
,Merge Join
,Hash Join
,...
按任何指标排序
例如,如果突然您需要的不是按总时间而是按节点类型进行分析,只需单击列标题即可,一切将如下:
上下文节点提示
要详细了解组中特定节点的贡献,请将鼠标悬停在其中的任何一个上,您会看到传统的提示,说明那里到底发生了什么:
计划个人档案
“无需注册和短信!”如果您积极使用我们的服务,现在可以更轻松地找到以前分析过的计划-只需切换到存档中的“我的”标签即可。无论普通存档中的出版物是什么,计划都属于此处,并且仅对您可见。
计划谱系
以前,在存档中很难找到特定的计划,现在很简单。它们可以被命名并分组为优化的“家谱”!
只需在添加计划时指定一个名称即可:
...或在现有计划上,可以对其进行设置,编辑或添加链接的计划:
然后您可以快速切换整个选项树以评估某些优化的效果:
并且如果突然链接到特定计划丢失后,可以通过个人档案中的名字轻松识别他:
我们窥视“窗户”
对Query Profiler的一个小而有用的增强,这是我之前写的-我们教它“观察窗口”并正确映射以计划节点:
-> WindowAgg ==> WINDOW / OVER
-> Sort ==> PARTITION BY / ORDER BY
...作为
WINDOW
单个查询中“ window”()的几个独立定义:
...并在没有显式定义的情况下在窗口函数中排序:
高兴地寻找各种低效率!