| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 炫“库”行动—人大金仓有奖征文——金仓分析型数据库系统执行计划生成和查看 -> 正文阅读 |
|
[大数据]炫“库”行动—人大金仓有奖征文——金仓分析型数据库系统执行计划生成和查看 |
【本文正在参与炫“库”行动—人大金仓有奖征文】 人大金仓有奖征文 (csdn.net)https://bss.csdn.net/m/topic/kingbase 一、执行计划生成? ? ? ??EXPLAIN和EXPLAIN ANALYZE是金仓分析型数据库系统优化性能的工具。EXPLAIN会为查询显示其查询计划和估算的代价,但是不执行该查询。EXPLAIN ANALYZE除了显示查询的查询计划之外,还会执行该查询。EXPLAIN ANALYZE会忽略任何来自SELECT语句的输出,但是该语句中的其他操作会被执行(例如INSERT、UPDATE或者DELETE)。要在 DM L 语句上使用EXPLAIN ANALYZE却不让该命令影响数据,建议把EXPLAIN ANALYZE用在一个事务中。 二、执行计划构成? ? ? ??执行计划是数据库中将要执行的查询产生的一组操作树,计划中的每个节点代表数据库的一个操作,例如表扫描,连接,分组聚集,排序以及并行处理需要数据移动节点等。查询计划应该按照从下向上的顺序来读和执行。 2.1、操作节点? ?
2.2、排序 ? ? ? ??排序(ORDER BY) 操作的作用是根据指定属性对整个查询的结果进行排序。KingbaseAnalyticsDB排序使用了查询下推优化技术极大提升了排序性能。 2.3、数据移动
二、执行计划查看2.1、EXPLAIN ? ? ? ??EXPLAIN 命令输出查询计划,一个查询计划是一棵节点的树。计划中的每个节点表示一个操作,例如表扫描、连接、聚集或者排序。应该从底向上阅读计划:每个节点会把记录交给直接在它上面的节点。一个计划中的底层节点通常是表扫描操作:顺序的、索引的或者位图索引扫描。如果该查询要求那些行上的连接、聚集、排序或者其他操作,就会有额外的节点在扫描节点上面负责执行这些操作。最顶层的计划节点通常是 KingbaseAnalyticsDB数据库的移动节点:重新分布、广播或者收集移动。这些操作在 KingbaseAnalyticsDB实例之间移动行。 ? ? ? ??计划树节点类型和执行代价估计:
? ? ? ? 下面的例子描述了如何阅读一个查询的 EXPLAIN 查询代价:
? ? ? ??从底向上阅读这个计划。一开始,查询优化器顺序地扫描 names 表。注意 WHERE 子句被应用为一个 filter 条件。这意味着扫描操作会对它扫描的每个行检查该条件并且只输出满足该条件的行。扫描操作的结果被传递给一个收集操作。在 KingbaseAnalyticsDB 数据库中,收集是实例何时把记录发送给管理实例。在这个例子中,我们有两个实例会向一个管理实例发送。这个操作工作在并行执行计划的 slice1 上。查询计划会被划分成切片,这样实例可以并行工作。为这个计划估计的启动代价是 0.00(没有代价)而总代价是 20.88 次磁盘页面获取。优化器估计这个查询将返回一条记录。 2.2、EXPLAIN ANALYZE ? ? ? ??EXPLAIN ANALYZE 规划并且运行语句。EXPLAIN ANALYZE 计划会把实际执行代价和优化器的估计一起显示。这允许用户查看优化器的估计是否接近于实际。EXPLAIN A NALYZE也展示下列信息: ? ? ? ?EXPLAIN A NALYZE展示下列信息:?
? ? ? ? 下面例子用同一个查询描述了如何阅读一个 EXPLAIN ANALYZE 查询计划。这个计划展示了每一个计划节点的实际计时和返回行,以及整个查询的内存和时间统计信息。?
? ? ? ??从底向上阅读这个查询。运行这个查询花掉的总时间是 22.548 毫秒。seq?scan 操作只有一个返回记录的实例(seg0),并且它只返回 1 行。它用了 0. 255 毫秒找到第一行且用了 0.486 毫秒来扫描所有的行。这个结果接近于优化器的估计:查询优化器估计这个查询将会返回一行。收集接收到 1 条记录。这个操作的总消耗时间是 0.537 毫秒。 【本文正在参与炫“库”行动—人大金仓有奖征文】 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:05:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |