检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
动态调用存储过程 动态调用存储过程必须使用匿名的语句块将存储过程或语句块包在里面,使用EXECUTE IMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。 语法 语法请参见图1。 图1 call_procedure::= using_clause子句的语法参见图2。
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: GaussDB(DWS)对象设计规范
案例:改写SQL排除剪枝干扰 分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数。
GS_WORKLOAD_SQL_ELAPSE_TIME GS_WORKLOAD_SQL_ELAPSE_TIME视图显示当前节点上Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。
PG_AVAILABLE_EXTENSION_VERSIONS PG_AVAILABLE_EXTENSION_VERSIONS视图显示数据库中某些特性的扩展版本信息。 表1 PG_AVAILABLE_EXTENSION_VERSIONS字段 名称 类型 描述 name name 扩展名。
PG_STAT_XACT_USER_FUNCTIONS PG_STAT_XACT_USER_FUNCTIONS视图显示关于函数执行的统计信息。 表1 PG_STAT_XACT_USER_FUNCTIONS字段 名称 类型 描述 funcid oid 函数OID。 schemaname
PGXC_TABLE_CHANGE_STAT PGXC_TABLE_CHANGE_STAT视图提供集群所有CN节点上当前数据库所有表的变更情况。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_TABLE_CHANGE_STAT视图相同。 表1
案例:调整中间表存储方式 在GaussDB(DWS)中行存表使用行执行引擎,列存表使用列执行引擎。如果一个SQL语句涉及的表既有行存表又有列存表,系统会自动选择行执行引擎。由于列执行引擎的性能(除indexscan相关的算子)比行执行引擎性能要好很多,因此一般建议使用列存表。特别
动态调用匿名块 动态调用匿名块是指在动态语句中执行匿名块,使用EXECUTE IMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。 语法 语法请参见图1。 图1 call_anonymous_block::= using_clause子句的语法参见图2。 图2 using_clause-4
GLOBAL_WORKLOAD_SQL_COUNT GLOBAL_WORKLOAD_SQL_COUNT视图显示集群中所有Workload控制组内SQL语句执行次数的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的执行次数统计,以及DDL、DML、DCL类型语句的执行次数统计。
PG_LIFECYCLE_DATA_DISTRIBUTE PG_LIFECYCLE_DATA_DISTRIBUTE视图查询OBS多温表中冷热数据分布情况。 表1 PG_LIFECYCLE_DATA_DISTRIBUTE字段 名称 类型 描述 schemaname name 模式名。
PG_REPLICATION_SLOTS PG_REPLICATION_SLOTS视图查看复制节点的信息。 表1 PG_REPLICATION_SLOTS字段 名称 类型 描述 slot_name text 复制节点的名称。 plugin name 逻辑复制槽对应的输出插件名。 slot_type
PGXC_GTM_SNAPSHOT_STATUS PGXC_GTM_SNAPSHOT_STATUS视图用于查看当前GTM上事务信息。 表1 PGXC_GTM_SNAPSHOT_STATUS字段 名称 类型 描述 xmin xid 仍在运行的最小事务号。 xmax xid 已完成的事务号最大的事务的下一个事务号。
PV_FILE_STAT PV_FILE_STAT视图通过对数据文件IO的统计,反映数据的IO性能,用于发现IO操作异常等性能问题。 表1 PV_FILE_STAT字段 名称 类型 描述 filenum oid 文件标识。 dbid oid 数据库标识。 spcid oid 表空间标识。
PV_SESSION_MEMORY_DETAIL PV_SESSION_MEMORY_DETAIL统计线程的内存使用情况,以MemoryContext节点来统计。 其中内存上下文“TempSmallContextGroup”,记录当前线程中所有内存上下文字段“totalsize”
USER_PROCEDURES USER_PROCEDURES视图存储关于本模式下的存储过程或函数信息。 名称 类型 描述 owner character varying(64) 存储过程或函数的所有者。 object_name character varying(64) 存储过程或函数名称。
PGXC_COMM_QUERY_SPEED PGXC_COMM_QUERY_SPEED视图展示所有节点上所有query对应的流量信息。 表1 PGXC_COMM_QUERY_SPEED字段 名称 类型 描述 node_name text 节点名称。 query_id bigint
PGXC_TABLE_STAT PGXC_TABLE_STAT视图提供集群所有CN和DN节点上当前数据库所有表的统计信息。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_TABLE_STAT视图相同。 表1 PGXC_TABLE_STAT字段
REMOTE_TABLE_STAT REMOTE_TABLE_STAT视图提供集群所有DN节点上当前数据库所有表的统计信息。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_TABLE_STAT视图相同。 表1 REMOTE_TABLE_STAT字段
案例:选择合适的分布列 分布列用于将数据分布到不同的节点上,划分均衡可以避免数据倾斜。 在进行关联查询时,尽量选择查询中的关联条件作为分布键。当关联条件作为分布键时,相关数据都分布在DN本地,将减少DN之间的数据流动代价,提升查询速度。 优化前 将a作为t1和t2的分布列,表定义如下: