检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Scan是GaussDB中的一种查询优化技术,它可以通过只扫描索引而不需要访问表数据来提高查询性能。在执行查询时,如果查询条件只涉及到表的某个索引列,就可以使用Index Only Scan来优化查询。Index Only Scan会直接扫描索引,从而减少了I/O操作和CPU开销,提高了查询性能。
可以避免数据倾斜。 【关注】将表的扫描压力均匀分散在各个DN上。避免扫描压力集中在部分DN上,而导致性能瓶颈。例如,在事实表上使用等值过滤条件时,将会导致扫描压力不均匀。 【关注】减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 【关注】尽量减少随机I/O。通
适的分布列,可以避免数据倾斜。 将表的扫描压力均匀分散在各个DN上。避免扫描压力集中在部分DN上,而导致性能瓶颈。例如,在事实表上使用等值过滤条件时,将会导致扫描压力不均匀。 减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 尽量减少随机I/O。通过聚簇可以实
Index Scan 算子说明 在索引扫描中,数据库使用语句指定的索引列,通过遍历索引树来检索行。数据库为一个值扫描索引时,发生 n 次 I/O 就能找到其要查找的值,其中 n 即 B-tree索引的高度。Index Scan通常用于检索表数据,数据库以轮流方式先读取索引块,找到
适的分布列,可以避免数据倾斜。 将表的扫描压力均匀分散在各个DN上。避免扫描压力集中在部分DN上,而导致性能瓶颈。例如,在事实表上使用等值过滤条件时,将会导致扫描压力不均匀。 减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 尽量减少随机I/O。通过聚簇可以实
当需要的所有信息都包含在索引中时,仅索引扫描便可获取所有数据,不需要引用表。 Bitmap Heap Scan 从其他操作创建的位图中读取页面,过滤掉不符合条件的行。位图堆扫描可避免随机I/O,加快读取速度。 TID Scan 通过TupleID扫描表。 Index Ctid Scan
SQL执行计划示例 最底层节点是表扫描节点,它扫描表并返回原始数据行。不同的表访问模式有不同的扫描节点类型:顺序扫描、索引扫描等。最底层节点的扫描对象也可能是非表行数据(不是直接从表中读取的数据),如VALUES子句和返回行集的函数,它们有自己的扫描节点类型。 如果查询需要连接、聚
(9 rows) 最底层节点是表扫描节点,它扫描表并返回原始数据行。不同的表访问模式有不同的扫描节点类型:顺序扫描、索引扫描等。最底层节点的扫描对象也可能是非表行数据(不是直接从表中读取的数据),如VALUES子句和返回行集的函数,它们有自己的扫描节点类型。 如果查询需要连接、聚
(9 rows) 最底层节点是表扫描节点,它扫描表并返回原始数据行。不同的表访问模式有不同的扫描节点类型:顺序扫描、索引扫描等。最底层节点的扫描对象也可能是非表行数据(不是直接从表中读取的数据),如VALUES子句和返回行集的函数,它们有自己的扫描节点类型。 如果查询需要连接、聚
SQL执行计划示例 最底层节点是表扫描节点,它扫描表并返回原始数据行。不同的表访问模式有不同的扫描节点类型:顺序扫描、索引扫描等。最底层节点的扫描对象也可能是非表行数据(不是直接从表中读取的数据),如VALUES子句和返回行集的函数,它们有自己的扫描节点类型。 如果查询需要连接、聚
(5 rows) 最底层节点是表扫描节点,它扫描表并返回原始数据行。不同的表访问模式有不同的扫描节点类型:顺序扫描、索引扫描等。最底层节点的扫描对象也可能是非表行数据(不是直接从表中读取的数据),如VALUES子句和返回行集的函数,它们有自己的扫描节点类型。 如果查询需要连接、聚
(5 rows) 最底层节点是表扫描节点,它扫描表并返回原始数据行。不同的表访问模式有不同的扫描节点类型:顺序扫描、索引扫描等。最底层节点的扫描对象也可能是非表行数据(不是直接从表中读取的数据),如VALUES子句和返回行集的函数,它们有自己的扫描节点类型。 如果查询需要连接、聚
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
案例:使用全局二级索引加速查询 全局二级索引仅索引扫描 在对基表非分布列进行查询时,因无法进行DN下推查询或利用索引扫描,产生性能问题。 场景一:普通查询。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
OM运维账户密码加密落盘存储整改。 软件组件生命周期匹配产品生命周期 选用较新的下层软件组件(如:开源、第三方件、自研平台等),软件组件生命周期内及时更新下层软件组件以确保生命周期匹配,在产品版本生命周期内可及时修复安全漏洞。 ODBC商用化 支持分布式负载均衡。 支持集中式主备切换。 CM企业级能力提升
审视和修改表定义概述 好的表定义至少需要达到以下几个目标: 减少扫描数据量。通过分区的剪枝机制可以实现该点。 尽量减少随机I/O。通过聚簇可以实现该点。 表定义在数据库设计阶段创建,在SQL调优过程中进行审视和修改。 父主题: 审视和修改表定义
审视和修改表定义概述 好的表定义至少需要达到以下几个目标: 减少扫描数据量。通过分区的剪枝机制可以实现该点。 尽量减少随机I/O。通过聚簇/局部聚簇可以实现该点。 表定义在数据库设计阶段创建,在SQL调优过程中进行审视和修改。 父主题: 审视和修改表定义