检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用逻辑复制工具复制数据 目前支持GaussDB逻辑复制的工具有SDR和DRS。复制工具从GaussDB抽取逻辑日志后到对端数据库回放。对于使用JDBC连接数据库的复制工具,具体代码请参考示例:逻辑复制代码示例。 父主题: 逻辑解码
使用逻辑复制工具复制数据 目前支持GaussDB逻辑复制的工具有SDR和DRS。复制工具从GaussDB抽取逻辑日志后到对端数据库回放。对于使用JDBC连接数据库的复制工具,具体代码请参考逻辑复制。 父主题: 逻辑解码
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
常用视图工具 视图类型 类型 功能描述 使用场景 函数名称 解析 全类型 用于解析指定表页面,并返回存放解析内容的路径。 查看页面信息。 查看元组(非用户数据)信息。 页面或者元组损坏。 元组可见性问题。 校验报错问题。 gs_parse_page_bypath 索引回收队列(URQ)
果,对子查询结果进行保存。对于需要重复多次扫描的子节点(特别是扫描结果每次都相同时)可以减少执行代价。 典型场景 当查询语句涉及子查询,需要多次查询同一批数据时,优化器会选择Materialize算子来缓存子查询的结果,从而大大减少扫描的执行时间。子查询常存在于关键字包括IN、ANY、ALL、EXISTS等子句中。
Bitmap 算子说明 Bitmap Index Scan,位图索引扫描,该算子的作用为用索引扫描的方式,将过滤出的符合条件的元组的tid形成一张位图并向上返回。多个表扫描出的多个结果位图之间可再做 BITMAPAND或者BITMAPOR操作,相比于Index Scan还需要对表
示例:逻辑复制代码示例 下面示例演示如何通过JDBC接口使用逻辑复制功能的过程。执行示例前,需要加载驱动,驱动的获取和加载方法请参见JDBC包、驱动类和环境类。 针对逻辑复制的配置选项,除了参考《特性指南》的“逻辑复制 > 逻辑解码”章节中的配置选项外,还有专门给JDBC等流式解码工具增加的配置项,如下所示:
Sample Scan 算子说明 Sample Scan是一种扫描表的方式,它可以在查询过程中随机地从表中抽取一部分数据进行查询,而不是扫描整个表。Sample Scan配合TABLESAMPLE关键字使用,使用方式为[ TABLESAMPLE sampling_method (
示例:逻辑复制代码示例 下面示例演示如何通过JDBC接口使用逻辑复制功能的过程。执行示例前,需要加载驱动,驱动的获取和加载方法请参考JDBC包、驱动类和环境类。 针对逻辑复制的配置选项,除了在逻辑解码章节中的配置选项外,还有专门给JDBC等流式解码工具增加的配置项,如下所示。 解码线程并行度
逻辑复制类PGReplicationStream为非线程安全类,并发调用可能导致数据异常。 代码运行的前提条件: 根据实际情况添加gaussdbjdbc.jar包(例如用户使用IDE执行代码,则需要在本地IDE添加gaussdbjdbc.jar包)。 添加JDBC用户机器IP到数据库白名单里,修改gs_hba
要访问表全量的数据(Full Table Scan),如果以日期为分区键重新设计该表,那么原有的全表扫描会被优化成为分区扫描。当表内的数据量很大同时具有很长的历史周期时,由于扫描数据缩减所带来的性能提升会有明显的效果,如图2所示。 图1 分区表示例图 图2 分区表剪枝示例图 父主题:
要访问表全量的数据(Full Table Scan),如果以日期为分区键重新设计该表,那么原有的全表扫描会被优化成为分区扫描。当表内的数据量很大同时具有很长的历史周期时,由于扫描数据缩减所带来的性能提升会有明显的效果,如图2所示。 图1 分区表示例图 图2 分区表剪枝示例图 父主题:
表设计 总体上讲,良好的表设计需要遵循以下原则: 减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 尽量减少随机I/O。通过聚簇可以实现热数据的连续存储,将随机I/O转换为连续I/O,从而减少扫描的I/O代价。 选择分区方案 当表中的数据量很大时,应当对表进行分区,一般需要遵循以下原则:
要访问表全量的数据(Full Table Scan),如果以日期为分区键重新设计该表,那么原有的全表扫描会被优化成为分区扫描,当表内的数据量很大同时具有很长的历史周期时,由于扫描数据缩减所带来的性能提升会有非常明显的效果,如图2所示。 图1 分区表示例图 图2 分区表剪枝示例图 父主题:
要访问表全量的数据(Full Table Scan),如果以日期为分区键重新设计该表,那么原有的全表扫描会被优化成为分区扫描,当表内的数据量很大同时具有很长的历史周期时,由于扫描数据缩减所带来的性能提升会有非常明显的效果,如图2所示。 图1 分区表示例图 图2 分区表剪枝示例图 父主题:
总体上讲,良好的表设计需要遵循以下原则: 【关注】减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 【关注】尽量减少随机I/O。通过聚簇/局部聚簇可以实现热数据的连续存储,将随机I/O转换为连续I/O,从而减少扫描的I/O代价。 选择存储方案 【建议】表的存储类型是
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。