检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
步骤2:测试初始表结构下的系统性能并建立基线 在优化表结构前后,请测试和记录以下详细信息以对比系统性能差异: 数据加载时间。 表占用的存储空间大小。 查询性能。 本次实践中的示例基于使用8节点的dws.d2.xlarge集群。因为系统性能受到许多因素的影响,即使您使用相同的集群配置,结果也会有所不同。
错误的索引对列存的访问无任何性能帮助,反而可能影响查询性能。 方案建议: 创建索引时指定索引类型,避免使用默认的psort类型索引。 极端点查(海量数据中检索极少数据)场景,可使用btree类型索引。 范围查询性能要求高的场景,可以创建Partial Cluster Key(局部聚簇,简称PCK)
案例:设置cost_param对查询性能优化 cost_param参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。 场景一:优化前 cost_param的bit0(set
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS
PGXC_INSTANCE_TIME PGXC_INSTANCE_TIME视图显示集群中各节点上进程的运行时间信息及各执行阶段所消耗时间,除新增node_name(节点名称)字段外,其余字段内容和PV_INSTANCE_TIME视图相同。需要有系统管理员权限或预置角色gs_rol
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) 存储过程或函数名称。
UPDATE&DELETE操作规范 建议3.5 避免并发UPDATE/DELETE行存表的同一行 违反规范的影响: 并发UPDATE/DELETE行存表可能导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 按主键或分布列进行分组UPDATE/DELETE,组间并行,组内串行。
案例:调整GUC参数best_agg_plan 现象描述 t1的表定义为: 1 create table t1(a int, b int, c int) distribute by hash(a); 假设agg下层算子所输出结果集的分布列为setA,agg操作的group by
dbc</artifactId> <version>8.1.1.1</version> </dependency> 获取数据库连接。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 private
ment将替换相对应的占位符。要注意的是,bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象。如果存储过程需要通过声明参数传递数据库对象来构造动态SQL语句(常见于执行DDL语句时),建议采用连接运算符“||”拼接dynamic_select
如果要将该schema下未来创建的表的权限也赋予u1用户,则需使用ALTER DEFAULT PRIVILEGES更改默认权限。 处理方法 请使用具有schema权限的用户登录数据库,执行以下命令将schema中的表权限赋给指定的用户: 1 2 GRANT USAGE ON SCHEMA schema_name TO