检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
可以根据情况把可下推函数的函数改成CASE表达式。 避免对索引使用函数或表达式运算。 对索引使用函数或表达式运算会停止使用索引转而执行全表扫描。 尽量避免在where子句中使用!=或<>操作符、null值判断、or连接、参数隐式转换。 对复杂SQL语句进行拆分。 对于过于复杂并且
vacuum_freeze_table_age 参数说明:指定VACUUM扫描全表以冻结元组的时间。如果当前事务号与表pg_class.relfrozenxid64字段的差值已经大于参数指定的时间,则VACUUM会对全表进行扫描。 参数类型:整型 参数单位:无 取值范围:0~576460752303423487
ROACH模块数据的校验。 默认值:UPAGE:UBTREE:UNDO index_trace_level:控制开启索引追踪并控制打印级别,开启后在索引扫描的过程中,会根据不同的打印级别对符合条件的索引元组的信息进行打印 取值范围:字符串,取值见表格描述 默认值:NO 表3 index_trace_level取值含义说明
on表示备机catchup时用增量catchup方式,即从从备本地数据文件扫描获得主备差异数据文件列表,进行主备之间的catchup。 off表示备机catchup时用全量catchup方式,即从主机本地所有数据文件扫描获得主备差异数据文件列表,进行主备之间的catchup。 默认值:on
rows) 由于目标列中的相关子查询(select avg(c2) from t2 where t2.c2=t1.c2)无法提升的缘故,导致每扫描t1的一行数据,就会触发子查询的一次执行,效率低下。如果打开intargetlist参数会把子查询提升转为JOIN,从而提升查询的性能。 gaussdb=#
hint。 不包含全局二级索引的表使用gsi hint和gsitable hint。 通常只有在索引列上使用过滤条件才会生成相应的索引路径,全表扫描将不会使用索引,因此使用indexscan hint、index hint、indexonlyscan hint或gsi hint将不会使用。
oid 分区oid: 普通表:0。 分区表:分区 oid。 分区表扫描全分区:0。 输入参数 index_oid oid 索引oid: 普通索引:索引 oid。 全局索引:GPI oid。 local索引:主索引oid。 扫描全部索引:0。 输入参数 partindex_oid oid
可以根据情况把可下推函数的函数改成CASE表达式。 避免对索引使用函数或表达式运算。 对索引使用函数或表达式运算会停止使用索引转而执行全表扫描。 尽量避免在where子句中使用!=或<>操作符、null值判断、or连接、参数隐式转换。 对于高频数据变化的表,相关sql应该加hint,把计划给固定住。
oid 分区oid: 普通表:0。 分区表:分区 oid。 分区表扫描全分区:0。 输入参数 index_oid oid 索引oid: 普通索引:索引 oid。 全局索引:GPI oid。 local索引:主索引oid。 扫描全部索引:0。 输入参数 partindex_oid oid
表示同时关闭UPAGE,UBTREE,UNDO,REDO模块数据的校验 默认值:空字符串 index_trace_level:控制开启索引追踪并控制打印级别,开启后在索引扫描的过程中,会根据不同的打印级别对符合条件的索引元组的信息进行打印。 取值范围:字符串,取值下表格描述。 默认值:NO 表3 index_trace_level取值含义说明
表示该函数在给出同样的参数值时总是返回同样的结果。 STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,因此不会做任何优化。 函数易变性可以查询pg_proc的provolati
统计信息变更(default_statistics_target设置为–2)的计划如下: 经过对比,劣化的原因主要为lineitem和part表join时,扫描part表时的stream类型由BroadCast变更为Redistribute导致。可以对语句进行stream方式的hint来调整到之前的计划,例如:
那么使用它。否则,产生一个错误。 示例 示例1:阶乘操作符类型解析。在系统表中里只有一个阶乘操作符(后缀!),它以bigint作为参数。扫描器给下面查询表达式的参数赋予bigint的初始类型: 1 2 3 4 5 6 gaussdb=# SELECT 40 ! AS "40 factorial";
那么使用它。否则,产生一个错误。 示例 示例1:阶乘操作符类型解析。在系统表中里只有一个阶乘操作符(后缀!),它以bigint作为参数。扫描器给下面查询表达式的参数赋予bigint的初始类型: 1 2 3 4 5 6 gaussdb=# SELECT 40 ! AS "40 factorial";
i:“不可变的”(immutable)函数,对于相同的输入总是产生相同的结果。 s:“稳定的”(stable)函数,(对于固定输入)其结果在一次扫描里不变。 v:“易变”(volatile)函数,其结果可能在任何时候变化,也用于那些有副作用的函数,因此调用它们无法得到优化。 pronargs
rows) 由于目标列中的相关子查询(select avg(c2) from t2 where t2.c2=t1.c2)无法提升的缘故,导致每扫描t1的一行数据,就会触发子查询的一次执行,效率低下。如果打开intargetlist参数会把子查询提升转为JOIN,来提升查询的性能: openGauss=#
i:“不可变的”(immutable)函数,这样的函数对于相同的输入总是产生相同的结果。 s:“稳定的”(stable)函数,(对于固定输入)其结果在一次扫描里不变。 v:“易变”(volatile)函数,其结果可能在任何时候变化也用于那些有副作用的函数,因此调用它们无法得到优化。 pronargs
数据的校验。 默认值:UPAGE:UBTREE:UNDO index_trace_level:控制开启索引追踪并控制打印级别,开启后在索引扫描的过程中,会根据不同的打印级别对符合条件的索引元组的信息进行打印。 取值范围:字符串,取值下表格描述。 默认值:NO 表3 index_trace_level取值含义说明
描述:如果参数是一个表,则顺序扫描读取的行数目。如果参数是一个索引,则返回的索引行的数目。 返回值类型:bigint pg_stat_get_tuples_fetched(oid) 描述:如果参数是一个表,则位图扫描抓取的行数目。如果参数是一个索引,则用简单索引扫描抓取的行数目。 返回值类型:bigint
i:“不可变的”(immutable)函数,对于相同的输入总是产生相同的结果。 s:“稳定的”(stable)函数,(对于固定输入)其结果在一次扫描里不变。 v:“易变”(volatile)函数,其结果可能在任何时候变化v也用于那些有副作用的函数,因此调用它们无法得到优化。 pronargs