文档章节

一起来读Greenplum/Deepgreen执行计划

小虾米DYX
 小虾米DYX
发布于 2017/08/07 14:09
字数 638
阅读 19
收藏 0

点击查看全文

日常SQL优化过程中,最好用的手段就是通过执行计划。在Greenplum和Deepgreen中,运行 EXPLAIN 后产生的执行计划呈树状,这棵树的每一个分叉,都代表了一个单独的数据库操作,例如:表扫描、表连接、聚合、排序。

由于返回数据行数是从下向上传递的,所以我们在分析执行计划时,也应该自下而上。通常来说,最底下的是表扫描操作(索引、位图索引扫描)。如果查询中涉及到连接、聚合、排序操作,那么表扫描动作的上层就会有对应的这些操作。通常最顶上的部分是节点间数据移动(重分布、广播、聚集操作),在查询过程中,这些操作会涉及到在节点间移动数据。

EXPLAIN 执行计划中,每一个单独的步骤都会呈现在单独一行里,带有对应的动作类型及查询数据所耗费的时间(查询首行所用时间..查询全部所用时间):

1.cost

Cost以磁盘页读取为测量单位,1.0等同于一个顺序的磁盘页读取。第一个预估时间是起始消耗,即查询首行所消耗的时间,第二个预估值是总消耗,即查询全部行所用的时间。

2.rows

rows指的是执行计划某部分返回的总行数。这个数量通常少于实际的返回行数,反应的只是一个预估的数量。最顶层的返回的预估数量最接近实际查询、修改或删除影响的行数。

3.width

操作返回的所有数据所占用的字节数。

很重要的一点是,上层节点所花费的时间包括所以子节点占用时间,计划最顶层包含总执行花费的预估,这也是我们追求优化的部分。另外执行计划的消耗只与执行计划本身关心的步骤有关,与查询结果传输到客户端的消耗时间等因素无关。

 

 

 

点击查看全文

本文转载自:http://click.aliyun.com/m/27597/

共有 人打赏支持
小虾米DYX
粉丝 0
博文 113
码字总数 0
作品 0
海淀
私信 提问
Greenplum vs Deepgreen - gpfdist外部表和xdrive hdfs对比测试

今天给大家分享一篇关于Greenplum与Deepgreen外部数据加载的小测试。 首先必要的前提条件有: 1)Greenplum 4.3和Deepgreen 16.x安装完毕 2)已经搭建好xdrive环境和gpfdist环境 3)准备测试...

闻术苑
01/07
0
0
Greenplum和Deepgreen性能简单对比

之前做过一个Greenplum和Deepgreen在多个维度的性能对比,数据量比较少,分享给大家供参考~ 背景数据: 1.服务器数量:单台Dell R730,普通HDD; 2.数据量:大概有3000万,表大小为10GB左右...

闻术苑
01/04
0
0
Deepgreen与Greenplum TPC-H性能测试对比(使用VitesseData脚本)

前两天发了一篇基于德哥测试脚本的测试对比文章《Deepgreen与Greenplum TPC-H性能测试对比(使用德哥脚本)》,由于测试数据量少,两个数据库有几轮测试都是1秒持平,但是大多数测试Deepgre...

闻术苑
01/04
0
0
Greenplum小把戏 - select结果不带列名

在业务处理数据库数据时,通常我们已经固定好表的格式并在程序中写好了需要的列名,所以在数据处理时,我们不需要像在psql中查看的那样带有结果列名。 在Greenplum、Deepgreen等PG生态体系中...

闻术苑
01/05
0
0
数据库建模--PowerDesigner

PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。PowerDesigner 支...

匿名
2008/09/14
73.4K
5

没有更多内容

加载失败,请刷新页面

加载更多

Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
1
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部