原文:[POSTGRES QUERY PLAN VISUALIZATION](http://tatiyants.com/postgres-query-plan-visualization/
作者:ALEX TATIYANTS
翻译:Vincent

译者注:Postgres的EXPLAIN查看执行计划已经非常的直观、全面,不过有人更钟情于图形化的展示,本文作者就介绍了这样一个项目,以图形化的方式帮助用户查看查询计划。以下为译文。

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

为什么创造Pev

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

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

让我们看看Pev是如何实现这些要求的。我将使用下面插图中的查询语句生成的计划(作为对比结果,你可以在dellstore2 数据库执行这个查询语句):

我注意到Pev只使用JSON格式的解释计划。使用以下代码就可以满足要求了:

节点可视化

首先,Pev使用了经典的树状图从而将查询计划以可视化的方式展现出来。我发现这比PgAdmin使用的从左到右的树状图更容易查看。

默认情况下,每个节点都显示其类型以及相关的详细信息(比如正在扫描的对象或连接条件)、持续时间和关键信息(比如该节点是否为某种类型的异常):

说到客户获取的信息量,Pev目前正在计算以下两个因素:

  • 异常值节点(最大、最慢、最昂贵)
  • 有错误计划估计的节点(计划者可能会错过100个或更多)

Pev还允许进行各种定制,比如显示计划者的估算细节,用图表来展示行、持续时间或成本:

如果用户想要看到所有Postgres节点的所有内容,只需单击标题获得扩展视图即可:

使用这些定制化功能(在左边的设置菜单中可用),用户可以很容易地创建各种图形,比如下面这个图形就显示了每个节点的运行速度有多快:

查询显示

我个人觉得很难将我所看到的这个计划映射到生成它的查询。通过在节点旁边显示查询,并在可能的地方突出显示相关部分,Pev可以帮助您实现这一点。只需单击该节点内的蓝色数据库图标:

我必须承认,在这一点上,突出查询的相关部分是非常基本的,但我希望它在将来能够得到改进。

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

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

Pev:Postgres的可视化工具相关推荐

  1. cassandra可视化工具_一位数据科学家的私房工具清单

    作为一位万人敬仰的数据科学家,不但需要培育一棵参天技能树,私人武器库里没有一票玩得转的大火力工具也是没法在江湖中呼风唤雨的. 近日北卡来罗纳大学CTO,一位数据科学家Jefferson Heard分享 ...

  2. BERT可视化工具bertviz体验

    BERT可视化工具体验:bertviz是用于BERT模型注意力层的可视化页面. 1,bertviz的github地址:https://github.com/jessevig/bertviz 2,将be ...

  3. Cassandra 可视化工具

    2019独角兽企业重金招聘Python工程师标准>>> 最近开始接触Cassandra,这些天在cassandra的wiki发现了一些可视化工具的推荐.现在也把这个链接推荐给大家:h ...

  4. 帅气逼人的Redis可视化工具

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:https://www.toutiao.com/i6 ...

  5. 太厉害了!这应该是目前Redis可视化工具最全的横向评测

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 转自:一入码坑深似海 链接:www.jianshu.com/p/c ...

  6. 数据探索很麻烦?推荐一款强大的特征分析可视化工具:yellowbrick

    前言 玩过建模的朋友都知道,在建立模型之前有很长的一段特征工程工作要做,而在特征工程的过程中,探索性数据分析又是必不可少的一部分,因为如果我们要对各个特征进行细致的分析,那么必然会进行一些可视化以辅助 ...

  7. PyTorch下的可视化工具(网络结构/训练过程可视化)

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 锦恢@知乎 来源 | https://zhuanlan.z ...

  8. 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」

    视学算法报道 编辑:陈萍.魔王 转载自公众号:机器之心 深度学习模型的训练就像是「黑箱操作」,知道输入是什么.输出是什么,但中间过程就像个黑匣子,这使得研究人员可能花费大量时间找出模型运行不正常的原因 ...

  9. PyTorch深度学习训练可视化工具tensorboardX

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 之前笔者提到了PyTorch的专属可视化工具visdom,参看Py ...

最新文章

  1. js 宽窄屏切换效果代码优化
  2. 抱抱星英语Antony:不要用互联网思维做教育 | MCtalk教育访谈摘录
  3. 列表逆向排列的几种实现形式
  4. leetcode - Missing Ranges
  5. 在mysql中删除表正确的是什么_在MySQL中删除表的操作教程
  6. Android 自己定义View须要重写ondraw()等方法
  7. 【Flink】Flink 报错 Hash join exceeded Too many duplicate keys
  8. solidity之以太币支付
  9. [论文阅读] Cost-Effective REgion-based Active Learning for Semantic Segmentation
  10. grootJsAPI文档
  11. SQL Server 函数的使用(数学函数)
  12. php从入门到精通分享,PHP从入门到精通学习路线图分享
  13. 中文分词(上)——获取和Word2Vec模型构建
  14. Multithreading and Synchronization
  15. 如何用迅捷PDF转换器获取PDF文件中的图片
  16. [4G5G专题-58]:L2 PDCP子层-分组数据汇聚控制协议架构、PDCP包格式、鲁棒性头压缩RoHC
  17. kermit的安装、配置、使用 .
  18. 国税局发票查验中英文验证码识别,识别率95.2%
  19. 亚马逊测评自养号技能知识共享
  20. android电视投影ipad,【沙发管家】苹果手机, Ipad连接安卓智能电视投屏教程!

热门文章

  1. 均衡发展计算机室一机一册,义务教育均衡发展实验室标准.doc
  2. 功能:删除字符串 中的数字字符。 例如:输入字符串:48CTYP9E6,则输出: CTYPE。 林宇 #includestdio.h 22001 #include(6) //包含相应函数库 v...
  3. Echarts饼状图属性设置大全
  4. TensorRT 下不同 API 推理时间的对比实验
  5. 什么是Bitlocker?(收藏一)
  6. 弹窗悬浮一个新网页php代码,一个简单的图片悬浮窗,点击可关闭
  7. 机器学习算法优缺点整理
  8. 在webpack中使用vue的准备
  9. Python学习笔记:第九站 一串连一串
  10. Promise/Deferred模式