www808888webcom最近做了一次对查询的优化之后199O8836661查看由EXPLAIN

最近做了一次对查询的优化之后,我发现了一种更好的方式来查看由EXPLAIN生成的查询计划。因此,我最终决定需要做些什么,结果就是Postgres EXPLAIN Visualizer工具(或者叫Pev):
Pev:Postgres的可视化工具

为什么创造Pev

我想要一款能让用户很轻松的就可以理解查询计划变工具,而且能让用户看上去很直观。说的再具体一点,就是我想要:

◾最小的视觉干扰
◾获取更多的信息
◾可定制化程度较高
◾在查询的上下文中执行计划

让我们看看Pev是如何实现这些要求的。我将使用下面插图中的查询语句生成的计划(作为对比结果,你可以在dellstore2 数据库执行这个查询语句):
Pev:Postgres的可视化工具
我注意到Pev只使用JSON格式的解释计划。使用以下代码就可以满足要求了:
Pev:Postgres的可视化工具

节点可视化
首先,Pev使用了经典的树状图从而将查询计划以可视化的方式展现出来。我发现这比PgAdmin使用的从左到右的树状图更容易查看。
Pev:Postgres的可视化工具
默认情况下,每个节点都显示其类型以及相关的详细信息(比如正在扫描的对象或连接条件)、持续时间和关键信息(比如该节点是否为某种类型的异常):
Pev:Postgres的可视化工具
说到客户获取的信息量,Pev目前正在计算以下两个因素:

◾异常值节点(最大、最慢、最昂贵)
◾有错误计划估计的节点(计划者可能会错过100个或更多)
www808888webcom最近做了一次对查询的优化之后199O8836661查看由EXPLAIN

Pev还允许进行各种定制,比如显示计划者的估算细节,用图表来展示行、持续时间或成本:
Pev:Postgres的可视化工具
如果用户想要看到所有Postgres节点的所有内容,只需单击标题获得扩展视图即可:
Pev:Postgres的可视化工具
使用这些定制化功能(在左边的设置菜单中可用),用户可以很容易地创建各种图形,比如下面这个图形就显示了每个节点的运行速度有多快:
Pev:Postgres的可视化工具

查询显示

我个人觉得很难将我所看到的这个计划映射到生成它的查询。通过在节点旁边显示查询,并在可能的地方突出显示相关部分,Pev可以帮助您实现这一点。只需单击该节点内的蓝色数据库图标:
Pev:Postgres的可视化工具
我必须承认,在这一点上,突出查询的相关部分是非常基本的,但我希望它在将来能够得到改进。

explain.depesz.com是一个非常优秀的网站,而且它对Pev产生了很重大的影响。我就是在使用该网站以及阅读该网站帮助文档的过程中学到了很多关于Postgres计划是如何工作的原理。

如果你正在使用Pev,请在twitter上面@alexTatiyants,让我知道你有多喜欢它。如果你想让它变得更好,代码就在GitHub上,你可以做一点贡献。

猜你喜欢

转载自blog.51cto.com/14069081/2315535