检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS
invokes function-call/type-conversion Filter条件中存在表达式(year_mth + 1) > 202008,这种表达式一侧不是单纯的分区键、而是包含分区键的表达式的Filter条件是不能用来剪枝的,因而导致查询语句扫描了几乎整个分区表的数据
经过实际数据查证,customer_address的两个join列的不同值数目较少,使用其进行join容易出现数据倾斜,故把customer_address放到最后进行join。
PGXC_INSTANCE_TIME PGXC_INSTANCE_TIME视图显示集群中各节点上进程的运行时间信息及各执行阶段所消耗时间,除新增node_name(节点名称)字段外,其余字段内容和PV_INSTANCE_TIME视图相同。需要有系统管理员权限或预置角色gs_role_read_all_stats
案例:调整中间表存储方式 在GaussDB(DWS)中行存表使用行执行引擎,列存表使用列执行引擎。如果一个SQL语句涉及的表既有行存表又有列存表,系统会自动选择行执行引擎。由于列执行引擎的性能(除indexscan相关的算子)比行执行引擎性能要好很多,因此一般建议使用列存表。特别是对一些中间结果集转储的表
GLOBAL_REDO_STAT GLOBAL_REDO_STAT视图显示集群中所有节点上XLOG重做过程中的统计信息总和。除avgiotim(表示所有节点平均的重做写入时间)外,其余字段名称和PV_REDO_STAT视图相同,但其余字段含义为各节点上PV_REDO_STAT视图同名字段的数值之和
GLOBAL_WORKLOAD_SQL_COUNT GLOBAL_WORKLOAD_SQL_COUNT视图显示集群中所有Workload控制组内SQL语句执行次数的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的执行次数统计,以及DDL、DML、DCL类型语句的执行次数统计
PG_STAT_USER_FUNCTIONS PG_STAT_USER_FUNCTIONS视图显示命名空间中用户自定义函数(函数语言为非内部语言)的状态信息。 表1 PG_STAT_USER_FUNCTIONS字段 名称 类型 描述 funcid oid 函数OID。 schemaname
PG_STATIO_USER_TABLES PG_STATIO_USER_TABLES视图显示命名空间中所有用户关系表的IO状态信息。 表1 PG_STATIO_USER_TABLES字段 名称 类型 描述 relid oid 表OID。 schemaname name 表的模式名
PGXC_BULKLOAD_PROGRESS PGXC_BULKLOAD_PROGRESS显示导入业务的执行进度,仅支持GDS普通文件导入业务。需要有系统管理员权限才可以访问此视图 表1 PGXC_BULKLOAD_PROGRESS字段 名称 类型 描述 session_id bigint
PGXC_GTM_SNAPSHOT_STATUS PGXC_GTM_SNAPSHOT_STATUS视图用于查看当前GTM上事务信息。 表1 PGXC_GTM_SNAPSHOT_STATUS字段 名称 类型 描述 xmin xid 仍在运行的最小事务号。 xmax xid 已完成的事务号最大的事务的下一个事务号
PGXC_REDO_STAT 视图PGXC_REDO_STAT显示集群中各节点上XLOG重做过程中的统计信息,除新增node_name(节点名称)字段外,其余字段内容和PV_REDO_STAT视图相同。需要有系统管理员权限或预置角色gs_role_read_all_stats权限才可以访问此视图
PV_SESSION_MEMORY_DETAIL PV_SESSION_MEMORY_DETAIL统计线程的内存使用情况,以MemoryContext节点来统计。 其中内存上下文“TempSmallContextGroup”,记录当前线程中所有内存上下文字段“totalsize”小于
USER_PROCEDURES USER_PROCEDURES视图存储关于本模式下的存储过程或函数信息。 名称 类型 描述 owner character varying(64) 存储过程或函数的所有者。 object_name character varying(64) 存储过程或函数名称
案例:调整中间表存储方式 在GaussDB(DWS)中行存表使用行执行引擎,列存表使用列执行引擎。如果一个SQL语句涉及的表既有行存表又有列存表,系统会自动选择行执行引擎。由于列执行引擎的性能(除indexscan相关的算子)比行执行引擎性能要好很多,因此一般建议使用列存表。特别是对一些中间结果集转储的表
动态调用匿名块 动态调用匿名块是指在动态语句中执行匿名块,使用EXECUTE IMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。 语法 语法请参见图1。 图1 call_anonymous_block::= using_clause子句的语法参见图2。 图2 using_clause
要注意的是,bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象。如果存储过程需要通过声明参数传递数据库对象来构造动态SQL语句(常见于执行DDL语句时),建议采用连接运算符“||”拼接dynamic_select_clause。
经过实际数据查证,customer_address的两个join列的不同值数目较少,使用其进行join容易出现数据倾斜,故把customer_address放到最后进行join。
案例:设置cost_param对查询性能优化 cost_param参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。 场景一:优化前 cost_param的bit0(set cost_param
STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,因此不会做任何优化。