检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
经验总结:SQL语句改写规则 根据数据库的SQL执行机制以及大量的实践,总结发现:通过一定的规则调整SQL语句,在保证结果正确的基础上,能够提高SQL执行效率。如果遵守这些规则,常常能够大幅度提升业务查询效率。 使用union all代替union union在合并两个集合时会执行去重操作,而union
CLUSTER 功能描述 根据一个索引对表进行聚簇排序。 CLUSTER指定GaussDB通过索引名指定的索引聚簇由表名指定的表。表名上必须已经定义该索引。 当对一个表聚簇后,该表将基于索引信息进行物理存储。聚簇是一次性操作:当表被更新之后,更改的内容不会被聚簇。也就是说,系统不
CLUSTER 功能描述 根据一个索引对表进行聚簇排序。 CLUSTER指定GaussDB通过索引名指定的索引聚簇由表名指定的表。表名上必须已经定义该索引。 当对一个表聚簇后,该表将基于索引信息进行物理存储。聚簇是一次性操作:当表被更新之后,更改的内容不会被聚簇。也就是说,系统不
SHRINK_EXTENT:用户对段页式表执行shrink操作,在未对空置出的extent进行释放时,发生掉电等故障,造成该extent残留,无法被重新利用。 例如: select * from pg_stat_remain_segment_info(); space_id | db_id
考虑将表的主键作为分布键。 SELECT: 表查询时,WHERE条件应包含所有分布键字段等值查询条件。 避免在SELECT目标列中使用子查询,可能导致计划无法下推到DN执行,影响执行性能。 DML: 默认不支持跨节点事务,如果所执行的DML语句包含跨节点事务,会报错处理,具体分为两种场景: 如果
使用系统表pg_synonym中已存在的同义词对象。 不建议对临时表创建同义词。如果需要创建的话,需要指定同义词的目标临时表的模式名,否则无法正常使用该同义词,并且在当前会话结束前执行DROP SYNONYM命令。 删除原对象后,与之关联同义词不会被级联删除,继续访问该同义词会报
hint仅在需要重分布且指定的倾斜信息与查询执行过程中的重分布信息相匹配时才会被使用。 skew hint受GUC参数skew_option限制,如果参数处于关闭状态,则无法进行skew hint倾斜调优。 skew hint目前仅处理普通表和子查询类型的表关系,支持基表hint、子查询hint、with as
较上界。 <<、>>和-|-操作符当包含空范围时也会返回false;也就是,不认为空范围在其他范围之前或之后。 并集和差集操作符的执行结果无法包含两个不相交的子范围。 范围函数 如果范围是空或者需要的界限是无穷的,lower和upper函数将返回null。lower_inc、up
由于最后一层redistribute包含倾斜,所以时间较长。为了避免倾斜,需要将item表放在最后join,由于item表的join并不能使行数减少。修改hint如下并执行,计划如下,运行时间120s: 1 2 3 4 select avg(netpaid) from (select
用于表示实例的名称,同一租户下,同类型的实例名可重名。 取值范围:4~64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。 datastore 是 Object 数据库信息。 详情请参见表3。 ha 是 Object 实例部署形态。详情请参见表4。
较上界。 <<、>>和-|-操作符当包含空范围时也会返回false;也就是,不认为空范围在其他范围之前或之后。 并集和差集操作符的执行结果无法包含两个不相交的子范围。 范围函数 如果范围是空或者需要的界限是无穷的,lower和upper函数将返回null。lower_inc、up
<!ENTITY baidu "www.baidu.com">...... &Baidu;&writer将报错,因区分字母大小写,Baidu无法与baidu对应,而ORA数据库不报错。 与ORA数据库命名空间校验差异:解析未声明的命名空间标签正常执行,而ORA数据库会报错。 与OR
<!ENTITY baidu "www.baidu.com">...... &Baidu;&writer将报错,因区分字母大小写,Baidu无法与baidu对应,而ORA数据库不报错。 与ORA数据库命名空间校验差异:解析未声明的命名空间标签正常执行,而ORA数据库会报错。 与OR
hint仅在需要重分布且指定的倾斜信息与查询执行过程中的重分布信息相匹配时才会被使用。 skew hint受GUC参数skew_option限制,如果参数处于关闭状态,则无法进行skew hint倾斜调优。 skew hint目前仅处理普通表和子查询类型的表关系,支持基表hint、子查询hint、with as
MATERIALIZED对CTE进行修饰。 如果声明为MATERIALIZED,WITH查询将被物化,生成一个子查询结果集的拷贝,在引用处直接查询该拷贝,因此WITH子查询无法和主干SELECT语句进行联合优化(如谓词下推、等价类传递等),对于此类场景可以使用NOT MATERIALIZED进行修饰,如果WITH
t1.c2) (12 rows) 由于目标列中的相关子查询(select avg(c2) from t2 where t2.c2=t1.c2)无法提升的缘故,导致每扫描t1的一行数据,就会触发子查询的一次执行,效率低下。如果打开intargetlist参数会把子查询提升转为JOIN,来提升查询的性能:
较上界。 <<、>>和-|-操作符当包含空范围时也会返回false;也就是,不认为空范围在其他范围之前或之后。 并集和差集操作符的执行结果无法包含两个不相交的子范围。 范围函数 如果范围是空或者需要的界限是无穷的,lower和upper函数将返回null。lower_inc、up
较上界。 <<、>>和-|-操作符当包含空范围时也会返回false;也就是,不认为空范围在其他范围之前或之后。 并集和差集操作符的执行结果无法包含两个不相交的子范围。 范围函数 如果范围是空或者需要的界限是无穷的,lower和upper函数将返回null。lower_inc、up
MATERIALIZED对CTE进行修饰。 如果声明为MATERIALIZED,WITH查询将被物化,生成一个子查询结果集的拷贝,在引用处直接查询该拷贝,因此WITH子查询无法和主干SELECT语句进行联合优化(如谓词下推、等价类传递等),对于此类场景可以使用NOT MATERIALIZED进行修饰,如果WITH
只用于扩容的接口,表示扩容数据重分布时,表内插入并发度。 max_connections 最大连接数,用来限制资源池可使用的最大连接数。 所有资源池的最大连接数加起来不能超过整个gaussdb进程设置的guc参数max_connections指定的最大连接数。 max_dynamic_memory 最大动态