详解GaussDB(DWS) explain分布式执行计划的示例_MsSql

来源:脚本之家  责任编辑:小易  

  你可能混淆了几个概念  一个是机械增压 一个是涡轮增压 这是两种增压方式  机械增压的能量输入来自飞轮或传动皮带,以此带动压气机工作对发动机进气进行增压  主要优点:瞬时工作,发动机一转动,压气机就开始加压  主要缺点:额外占用了发动机的输出功率,等于是牺牲了现在的功率,换取之后一个时间点上功率的爆发,在发动机稳定高效运转的情况下,反而会拖累发动机工作  涡轮增压的能量输入来自发动机废气,废气推动涡轮,从而带动叶轮对进气加压  主要优点:回收废气能量,所有的效果都是“白来的”  主要缺点:涡轮自重的惯性,会导致工作有滞后(也就是发动机低转速时废气“吹不动”涡轮)  针对特殊的发动机或特殊的需要,以及不同的规避缺点的设计 就有了双涡轮增压 和双增压的设置  双涡轮增压指使用两个涡轮增压器进行增压 一般常见在6缸以上发动机上 两个“一样”的涡轮增压器分别对一半数量的气缸进气进行增压 目的是使使用的增压器小型化——即两个较小的增压器来代替一个大型的,作用是避免单个增压器过大而造成本身惯性太大,使得涡轮滞后情况过于明显,影响正常的驾驶  ——比较有代表性的有 SAAB及VOLVO 的一系列6缸车型  双增压一般指同时使用机械增压和涡轮增压  涡轮增压作为主要增压手段 机械增压作为低速下的补充以解决涡轮滞后的问题  ——比较有代表性的是欧洲版大众的一系列TFSI车型 (国产的这些TSI的神马迈腾速腾CC途观 都是阉割了机械增压的版本)www.zgxue.com防采集请勿采集本网。

摘要:本文主要介绍如何详细解读GaussDB(DWS)产生的分布式执行计划,从计划中发现性能调优点。前言

FANUC 0i Mate TC系统车床编程详解http://wenku.baidu.com/view/bc692e687e21af45b307a82b.html

执行计划(又称解释计划)是数据库执行SQL语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等。如果 SQL 语句性能不够理想,我们首先应该查看它的执行计划。本文主要介绍如何详细解读GaussDB(DWS)产生的分布式执行计划,从计划中发现性能调优点。

1、执行算子介绍

肝 藏魂,属木。胆火寄于中。主血,主目,主筋,主呼,主怒。 本病∶诸风眩晕,僵仆强直,惊痫,两胁肿痛,胸肋满痛,呕血,小腹疝痛 瘕,女人经病。 标病∶寒热疟,头痛吐涎,目赤面青

要读懂执行计划,首先要知道数据库执行算子的概念:

BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(System.in)); 创建了一个BufferedReader对象, 名字是bufferedReader , 然后new, 传入了一个In

下面重点介绍下基于sharing nothing的分布式计划中最重要的一类算子——STREAM算子

我的理解。故事中的两人是知己,其中一人是君主,另一人是他的谋臣兼好友,我想他两个人的最初梦想是一样的,但在实施的其中,是君主的一方权欲熏心,只想统一天下,早已忘他

三种类型的stream算子

KDJ指标又叫随机指标 原理:就是用目前股价在近阶段股价分布中的相对位置来预测可能发生的趋势反转。它主要是利用价格波动的真实波幅来反映价格走势的强弱和超买超

1)Gather Stream(N:1) – 每个源结点都将其数据发送给目标结点

____ the temperature might drop, coal was prepared for warming. A. To consider B. Considered C. Considering D. To be considered …… …… …… …… …… 答案详解 1、

2)Redistribute Stream(N:N) – 每个源节点将其数据根据连接条件计算Hash值,根据重新计算的Hash值进行分布,发给对应的目标节点

你好: 那么我就一点一点的给你解答吧 从常用的开始 到偏门的一个一个来 1,虚弱:减目标40%移动速度,70%的攻击力,35%技能和物品的伤害,持续3秒 (保命技能 可以有效的

3)Broadcast Stream(1:N) – 由一个源节点将其数据发给N个目标节点

它肩上两个数的和 查过资料了,都是这么写的

其中1)主要用于CN与DN间的数据交换,2)与3)主要用于DN间的数据交换

2、EXPLAIN用法

说得分明且宜手拱。 交易-成 婚姻-不合 求财-有 自身-谨防 家宅-欠利 六畜-莫养 田蚕-吉 寻人-难 行人-滞 六甲-险 山坟-安 讼词-宜和 疾病-难痊 失物-凶 移徒-延迁 详解:此签

SQL执行计划是一个节点数,显示执一条SQL语句执行时的详细步骤。每一个步骤是一个数据库运算符,也叫作一个执行算子。使用explain命令可以查看优化器为每个查询生成的具体执行计划。

这种事得看你自己 算命,姓名学和星座充其量只能算是一种统计学,不可尽信!历史上你看有几位算命学者的家里有出过伟人的吗?为什么没有呢?答案显然已是呼之欲出了! 万

1) EXPLAIN的语法

比如卡通,灵魂,同盟等等。 召唤条件:满足条件或者付出特别的COST(代价)才能召唤的怪物。例:神圣之魂,暗黑尼古罗夫亚 3 游戏王规则详解 表示形式: 盖伏守备表示:卡片

其中,option中COSTS与NODES的默认值为ON,其他参数默认为OFF。

星三角降压启动,就是以改变电动机绕组接法,来达到降压启动的目的。启动时,由主接触器将电源给三角形接法的电动机的三个首端,由星点接触器将三角形接法的电动机的三个

说明:

a) EXPLAIN + QUERY并不会真正执行,只会将计划打印出来,指定option中的ANALYZE可以进行实际执行

总攻:不论对象是谁,总是只攻不受的角色。 帝王攻(王样攻) :性格高高在上,像王者一般气场高不易低头的攻,强悍类攻。 鬼畜攻:SM系,多会使用道具,虐待对方的精神和身体,并让

b) PERFORMANCE 选项默认会将所有的选项置为ON,即显示所有的执行信息。

be +动词不定式(即be + to do sth.)的用法如下: 1.表示按计划或安排要做的事。例如: When are you to leave for home?你什么时候回家? She is to be married next month.她将

c) CPU/BUFFER/DETAIL 选项依赖于ANALYZE,只有ANALYZE置为ON的时候,才能使用这几个选项。

显卡的主要参数有核心频率,sp纹理单元,光栏数,显存带宽显存频率,显存容量。 其中sp纹理单元的数量和核心频率直接影响到了显卡的性能,顺便一提,a卡和n卡的sp单元的计

d) DETAIL选项用来控制输出,DETAIL 置为ON时,会显示各个DN上具体的执行信息;DATAIL 置为OFF时,显示所有DN的汇总信息,即最大最小值信息。

2) EXPLAIN显示格式

GaussDB中提供了两种显示格式(normal/pretty),通过设置参数explain_perf_mode进行控制。其中,normal格式为默认的显示格式。

normal格式如下:

pretty格式如下:

改进后的显示格式,层次清晰,计划包含了plan node id,性能分析会更加简单直接。

使用之前可以使用show explain_perf_mode;来查看当前数据库使用的显示风格。

同时可以使用set explain_perf_mode=pretty/normal;来设置输出的格式。

3、示例计划解读(每个算子资源消耗、耗时等等)

1) 四中常见类型计划

建表语句:

a) FQS计划,完全下推,下发query

两表JOIN,且其连接条件为各表的分布列,在关闭stream算子的情况下,CN会直接将该语句发送至各DN执行,最后结果在CN汇总。

b) 非FQS计划,部分语句下推

两表JOIN,且连接条件中包含非分布列,此时在关闭stream算子的情况下,CN会将基表扫描语句下发至各DN,然后在CN上进行JOIN。

c) Stream计划,DN之间无数据交换

两表JOIN,且连接条件为各表的分布列,因此各DN无需数据交换。CN生成stream计划后,将除Gather Stream的计划下发给DN执行,在各个DN上进行基表 扫描,并进行哈希连接后,发送给CN。

d) Stream计划,DN之间存在数据交换

两表JOIN,且连接条件包含非分布列,在开启stream算子的情况下,会生成stream计划,其DN间存在数据交换。此时对于tt02表,会在各DN进行基表扫描,扫描后会通过Redistribute Stream算子,按照JOIN条件中的tt02.c1进行哈希计算后重新发送给各DN,然后在各DN上做JOIN,最后汇总到CN。

2) explain performance详解

a) 执行计划

•id:执行算子节点编号。

•operation:具体的执行节点算子名称。

•A-time:各DN相应算子执行时间,[]中左侧为最小值,右侧为最大值,包括下层算子执行时间。

•A-rows:相应算子输出的全局总行数。

•E-rows:每个算子估算的输出行数。

•Peak Memory:各DN相应算子消耗内存峰值,[]中左侧为最小值,右侧为最大值。

•E-memory:DN上每个算子估算的内存使用量,只有DN上执行的算子会显示。某些场景会在估算的内存使用量后使用括号显示该算子在内存源充足下可以自动扩展的内存上限。

•E-width:每个算子输出元组的估算宽度。

•E-costs:每个算子估算的执行代价。

b) 谓词过滤

显示对应执行算子节点的过滤条件

c) 内存使用

主要显示CN的最大内存用量、DN最大内存用量、各算子的最大内存用量、各算子预估内存用量、Stream线程的启动以及收发时间。

d) Targetlist Information

各个算子对应的输出目标列信息。

e) DN信息

各算子的执行时间、Buffer、CPU信息

f) 自定义信息

CN与DN之间的建连信息、DN与DN之间的建连信息。

g) 汇总信息

DN执行器开始时间,[min_node_name, max_node_name] : [min_time, max_time]DN执行器结束时间,[min_node_name, max_node_name] : [min_time, max_time]Remote query poll time:接收结果时用于poll等待的时间CN执行器开始、运行及结束时间网络流量,stream算子发送的数据量优化器执行期时间查询ID总执行时间

h) 执行时间介绍

每个算子的执行信息都包含三个部分:

其中:

dn_6001_6002/dn_6003_6004 表示具体执行的节点信息,括号中的信息是实际的执行信息actualtime=0.013..2290.971 表示实际的执行时间

第一个数字表示执行时进入当前算子到输出第一条数据所花费的时间

第二个数字为输出所有数据的总执行时间

注意:在整个计划中,除了叶子节点的执行时间是算子本身的执行时间,其余算子的执行时间均包含子节点的执行时间。

在该计划中,7号节点和9号节点为叶子节点,其余节点均为非叶子简介。1号节点时顶层节点,所以该节点的执行时间就可以作为整个查询的执行时间。

rows=2001550 表示当前算子输出数据为2001550行;loops=1 表示当前算子的只执行了一次,而对于分区表的扫描(7号节点)来说:

该层扫描算子的loops为7,对于分区表,每一个分区表的扫描就是一次完整的扫描操作,当切换到下一个分区的时候,又是一次新的查询操作,查询该表定义如下:

Inventory表有7个分区,所以就执行了7次表扫描操作,因此loops=7。

i) CPU信息介绍

每个算子执行的过程都有CPU信息,其中cyc代表的是CPU的周期数,ex cyc表示的是当前算子的周期数,不包含其子节点;inc cyc是包含子节点的周期数;ex row是当前算子输出的数据行数;ex c/r则是ex cyc/ex row得到的每条数据所用的平均周期数。

j) Buffer信息介绍

buffers显示缓冲区信息,包括共享块和临时块的读和写。

共享块包含表和索引,临时块在排序和物化中使用的磁盘块。上层节点显示出来的块数据包含了其所有子节点使用的块数。

Buffers涉及的参数有两种,分别为:shared和temp,及shared hit/read/dirtied/written以及temp read/write

Hit blocks:代表从磁盘里面读到的数据块数

Dirtied blocks:代表当前查询中被修改了的并且此前未被修改的数据块数

Written blocks:代表当前线程将shared bufer里被修改的数据写回到磁盘的块数

k) 执行内存

其中:

Peak Memory:5KB 表示当前算子实际执行时使用的峰值内存;

Estimate Memory:1024MB 表示预估的内存,为优化器给出的预估值。

l) 其他执行信息

(1)sort 算子,会显示排序信息

Sort Method代表排序的方法,包括quicksort(快排)和disksort(外排)。快排即内存够用时,所有的排序操作均在内存中完成,外排说明当前可用内存不足,需要下盘。

(2)hashjoin算子

Buckets:代表hash表中实际使用的桶的个数

Batches:代表hashjoin中实际分块的数量。如果Batches=1,则说明所有的数据全在内存中,没有下盘操作;反之则说明有下盘操作,Batches - 1代表临时文件的个数。

Memory Usage:就是hashjoin中内存的使用情况

(3)hashagg算子

如果发生数据下盘,会有File Num:512信息,显示临时文件的个数。

(4)stream算子

stream算子的会统计当前算子处理数据的字节数,其从子线程获取数据的时间(poll time)以及处理数据的时间(Deserialize Time)。

stream算子的子节点会统计发送端的时间信息,如下:

发送时间Send time,排队时间Wait Quota time, OS发送时间以及数据处理的时间。

3) explain 调优示例

一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。

基表扫描时,对于点查或者范围扫描等过滤大量数据的查询,如果使用SeqScan全表扫描会比较耗时,可以在条件列上建立索引选择IndexScan进行索引扫描提升扫描效率。如下示例:

上述例子中,全表扫描返回3360条数据,过滤掉大量数据,在sssolddate_sk列上建立索引后,使用IndexScan扫描效率显著提高,从960毫秒提升到8毫秒。

结语:

在调优过程中,熟练使用explain并能分析各部分数据结果是非常重要的。本文中仅仅介绍了大多数字段的含义以及根据explain结果进行调优的一个小示例,还可以与plan hint结合使用找出执行的最佳路径,也可以定位倾斜程度等等。

到此这篇关于详解GaussDB(DWS) explain分布式执行计划的文章就介绍到这了,更多相关GaussDB(DWS)分布式执行计划内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:MySQL中通过EXPLAIN如何分析SQL的执行计划详解mysql之explain使用详解(分析索引)详解MySQL中EXPLAIN解释命令及用法讲解Mysql中explain作用详解

MACD指标详解 1.当DIF由下向上突破DEA,形成黄金交叉,既白色的DIF上穿黄色的DEA形成的交叉。或者BAR(绿柱线)缩短,为买入信号。 2.当DIF由上向下突破DEA,形成死亡交叉,既白色的DIF下穿黄色的DEA形成的交叉。或者BAR(红柱线)缩短,为卖出信号。 3.顶背离:当股价指数逐波升高,而DIF及DEA不是同步上升,而是逐波下降,与股价走势形成顶背离。预示股价即将下跌。如果此时出现DIF两次由上向下穿过DEA,形成两次死亡交叉,则股价将大幅下跌。 4.底背离:当股价指数逐波下行,而DIF及DEA不是同步下降,而是逐波上升,与股价走势形成底背离,预示着股价即将上涨。如果此时出现DIF两次由下向上穿过DEA,形成两次黄金交叉,则股价即将大幅度上涨。 MACD指标主要用于对大势中长期的上涨或下跌趋势进行判断,当股价处于盘局或指数波动不明显时,MACD买卖信号较不明显。当股价在短时间内上下波动较大时,因MACD的移动相当缓慢,所以不会立即对股价的变动产生买卖信号。 MACD主要是利用长短期的二条平滑平均线,计算两者之间的差离值,作为研判行情买卖之依据。MACD指标是基于均线的构造原理,对价格收盘价进行平滑处理(求出算术平均值)后的一种趋向类指标。它主要由两部分组成,即正负差(DIF)、异同平均数(DEA),其中,正负差是核心,DEA是辅助。DIF是快速平滑移动平均线(EMA1)和慢速平滑移动平均线(EMA2)的差。 在现有的技术分析软件中,MACD常用参数是快速平滑移动平均线为12,慢速平滑移动平均线参数为26。此外,MACD还有一个辅助指标——柱状线(BAR)。在大多数技术分析软件中,柱状线是有颜色的,在低于0轴以下是绿色,高于0轴以上是红色,前者代表趋势较弱,后者代表趋势较强。 下面我们来说一下使用MACD指标所应当遵循的基本原则: 1.当DIF和DEA处于0轴以上时,属于多头市场,DIF线自下而上穿越DEA线时是买入信号。DIF线自上而下穿越DEA线时,如果两线值还处于0轴以上运行,仅仅只能视为一次短暂的回落,而不能确定趋势转折,此时是否卖出还需要借助其他指标来综合判断。 2.当DIF和DEA处于0轴以下时,属于空头市场。DIF线自上而下穿越DEA线时是卖出信号,DIF线自下而上穿越DEA线时,如果两线值还处于0轴以下运行,仅仅只能视为一次短暂的反弹,而不能确定趋势转折,此时是否买入还需要借助其他指标来综合判断。 3.柱状线收缩和放大。一般来说,柱状线的持续收缩表明趋势运行的强度正在逐渐减弱,当柱状线颜色发生改变时,趋势确定转折。但在一些时间周期不长的MACD指标使用过程中,这一观点并不能完全成立。 4.形态和背离情况。MACD指标也强调形态和背离现象。当形态上MACD指标的DIF线与MACD线形成高位看跌形态,如头肩顶、双头等,应当保持警惕;而当形态上MACD指标DIF线与MACD线形成低位看涨形态时,应考虑进行买入。在判断形态时以DIF线为主,MACD线为辅。当价格持续升高,而MACD指标走出一波比一波低的走势时,意味着顶背离出现,预示着价格将可能在不久之后出现转头下行,当价格持续降低,而MACD指标却走出一波高于一波的走势时,意味着底背离现象的出现,预示着价格将很快结束下跌,转头上涨。 5.牛皮市道中指标将失真。当价格并不是自上而下或者自下而上运行,而是保持水平方向的移动时,我们称之为牛皮市道,此时虚假信号将在MACD指标中产生,指标DIF线与MACD线的交叉将会十分频繁,同时柱状线的收放也将频频出现,颜色也会常常由绿转红或者由红转绿,此时MACD指标处于失真状态,使用价值相应降低。 用DIF的曲线形状进行分析,主要是利用指标相背离的原则。具体为:如果DIF的走向与股价走向相背离,则是采取具体行动的时间。但是,根据以上原则来指导实际操作,准确性并不能令人满意。经过实践、摸索和总结,综合运用5日、10日均价线,5日、10日均量线和MACD,其准确性大为提高内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • cont()与where().count()有时性能差别如此之大!
  • sql根据表名获取字段及对应说明
  • sql server2016里面的json功能浅析
  • sqlserver not in 语句使程充崩溃
  • sql获取分组排序后数据的脚本
  • sql server基础之行数据转换为列数据
  • 升级sql server 2014的四个要点要注意
  • sql server 开窗函数 over()代替游标的使用详解
  • sql server 提取数字、提取英文、提取中文的sql语句
  • sql 实现某时间段的统计业务
  • macd指标详解
  • 机械增压器和双涡轮增压哪个好 详解
  • 吃秋水仙碱的副作用详解
  • 高分求 本田雅阁八代 的中控按键功能详解,准备帮人雅阁8代,想...
  • 发那科FANUC 0i Mate TC系统车床编程详解 数控系统操作说明...
  • 五脏六腑的功能详解
  • 详解下java中的BufferedReader语句如何用
  • 故人叹歌词内容详解
  • 谁有KDJ指标详解啊?越详细越好~谢谢啦!!
  • 高考英语经典单选题(含答案详解)
  • lol召唤师技能详解
  • 杨辉三角出现在杨辉编著的《详解九章算法》一书中,此书还说...
  • 求观音签第六十三签详解
  • 免费八字排盘详解
  • 游戏王 规则详解 详解
  • 星三角降压启动的电路图及详解
  • 小攻和小受都有什么类型?(加详解)
  • be to do 的用法详解
  • 详解显卡各项参数
  • 林心如电影楼,求剧情详解
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mysql中通过explain如何分析sql的执行计划详解mysql之explain使用详解(分析索引)详解mysql中explain解释命令及用法讲解mysql中explain作用详解cont()与where().count()有时性能差别如此之大!sql根据表名获取字段及对应说明sql server2016里面的json功能浅析sqlserver not in 语句使程充崩溃sql获取分组排序后数据的脚本sql server基础之行数据转换为列数据升级sql server 2014的四个要点要注意sql server 开窗函数 over()代替游标的使用详解sql server 提取数字、提取英文、提取中文的sql语句sql 实现某时间段的统计业务sql server 2012 安装图解教程(附sql server数据库入门学习总结microsoft sql server 2012 数据win7系统安装sqlserver2000的详细sql重复记录查询的几种方法sqlserver中distinct的用法(不重sql server错误代码大全及解释(sql-order by 多字段排序(升序、sql将一个表中的数据插入到另一个用sql语句添加删除修改字段、一些sql多表连接查询实例分析(详细图文)浅谈sql server中统计对于查询的影响分析mybatis collection 多条件查询的实现方法sql server数据库高可用日志传送的方法sql server 2000管理单元初始化失败的解决详解sql server 中 json_modify 的使用sql语句练习实例之一——找出最近的两次晋sql触发器实例讲解sqlserver中求字符串中汉字的个数的sql语linux下apache、mysql、php安装配置详细笔
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved