检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例:使用DN Gather减少计划中的Stream节点 DN Gather用来把分布式计划中的Stream节点去掉,把数据发送到一个节点进行计算,这样可以减少分布式计划执行时数据重分布的代价,从而提升单个查询效率以及系统整体的吞吐能力。不过DN Gather面向的是TP的小数据
GS_SPM_SQL_PARAM GS_SPM_SQL_PARAM是用于查看当前用户SQL参数信息的视图,普通用户以上权限均可以访问该视图。 表1 GS_SPM_SQL_PARAM字段 名称 类型 描述 sql_namespace oid Schema的OID。 sql_hash
LockRows 算子说明 LockRows算子用于锁定查询结果集中的行,以防止其他事务对这些行进行修改或删除。 典型场景 事务中使用SELECT ... FOR SHARE/UPDATE锁定行,防止其他事务对这些行进行修改或删除。 使用FOR SHARE锁定行时,当前事务和其他事务都无法修改或删除锁定行。
Index Scan 算子说明 在索引扫描中,数据库使用语句指定的索引列,通过遍历索引树来检索行。数据库为一个值扫描索引时,发生 n 次 I/O 就能找到其要查找的值,其中 n 即 B-tree索引的高度。Index Scan通常用于检索表数据,数据库以轮流方式先读取索引块,找到
Rownum 算子说明 Rownum算子会生成伪列,它返回一个数字,表示从查询中获取结果的行编号。第一行的Rownum为1。可以使用Rownum关键字对查询结果的行编号进行条件过滤。通常出现在Rownum子句里。 使用Rownum有一定的约束条件: Rownum不可作为别名,以免SQL语句出现歧义。
GS_SPM_EVOLUTION GS_SPM_EVOLUTION是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储计划演进结果的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1 GS_SPM_EVOLTOIN字段
GS_SPM_SQL_BASELINE GS_SPM_SQL_BASELINE是SPM计划管理特性下的一个系统视图,当前该特性在分布式下不支持。该视图用于查看当前用户的baseline信息,普通用户以上权限均可以访问该视图。 表1 GS_SPM_SQL_BASELINE字段 名称
Bitmap 算子说明 Bitmap Index Scan,位图索引扫描,该算子的作用为用索引扫描的方式,将过滤出的符合条件的元组的tid形成一张位图并向上返回。多个表扫描出的多个结果位图之间可再做 BITMAPAND或者BITMAPOR操作,相比于Index Scan还需要对表
Merge Join 算子说明 合并连接(Merge Join)是一种高效的连接方法,它依赖于排序操作。在进行合并连接时,GaussDB会对两个表的连接字段进行排序,然后同步扫描两个表,寻找匹配的行。 Merge Join的时间复杂度为O(n+m), 其中n和m分别代表两个表的行
Index Only Scan 算子说明 Index Only Scan是GaussDB中的一种查询优化技术,它可以通过只扫描索引而不需要访问表数据来提高查询性能。在执行查询时,如果查询条件只涉及到表的某个索引列,就可以使用Index Only Scan来优化查询。Index Only
GS_SPM_SQL_EVOLUTION GS_SPM_SQL_EVOLUTION是用于查看当前用户计划演进结果的视图,普通用户以上权限均可以访问该视图。 表1 GS_SPM_SQL_EVOLUTION字段 名称 类型 描述 sql_namespace oid Schema的oid。
SubQuery Scan 算子说明 当执行一个包含子查询的语句时,如果优化器RBO没有对它进行优化,它会先执行子查询的查询计划树,然后将子查询的结果传递给上层查询。 典型场景 当语句中包含子查询的时候,会生成SubQuery Scan算子从子查询中获取元组。 示例 示例:查询中带无法下推的子查询。
StartWith Operator 算子说明 层次查询算子,用于执行递归查询操作。层次查询的执行流程是: 由START WITH区域的条件选择初始的数据集,把初始的数据集设为工作集。 只要工作集不为空,会用工作集的数据作为输入,查询下一轮的数据,过滤条件由CONNECT BY区
MergeAppend 算子说明 MergeAppend用于多个有序关系集合的追加,操作类似于Append,只是通过归并的方式对有序关系的集合进行加速运算。MergeAppend以保留排序顺序的方式对子查询结果进行组合,可用于组合表分区中已排序的行。因此,与普通Append不同,
Nested Loop Join 算子说明 嵌套循环连接(Nested Loop Join)是最简单的连接方法,也是所有关系数据库系统中都会实现的连接操作。这种方法的基本思想是“把两个表中的数据两两比较,看是否满足连接条件”。 在GaussDB中,Nested Loop Join的工作原理是,对于外部表(Outer
GS_SPM_ID_HASH_JOIN GS_SPM_ID_HASH_JOIN是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储unique_sql_id和sql_hash关系的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。
Partition Iterator 算子说明 表分区技术(Table-Partitioning)通过将非常大的表或者索引从逻辑上切分为更小、更易管理的逻辑单元(分区),能够减小用户对表查询、变更等语句操作的影响范围;能够让用户通过分区键(Partition Key)快速定位到数
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,影响计划生成器估算执行该语句将花费多长的时间。
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。