检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例:改写SQL排除剪枝干扰 分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数。
步骤4:创建新表并加载数据 为每张表选择了存储方式、压缩级别、分布方式和分布列后,使用这些属性创建表并重新加载数据。以便对比表设计前后的系统性能。 执行CREATE TABLE创建表前,删除前面创建的表。 1 2 3 4 5 6 7 8 9 10 11 12 13
PGXC_ROW_TABLE_IO_STAT PGXC_ROW_TABLE_IO_STAT视图提供集群所有CN和DN节点上当前数据库所有行存表的IO统计数据。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_ROW_TABLE_IO_STAT视图相同,具体的字段请参考表1。
案例:调整GUC参数best_agg_plan 现象描述 t1的表定义为: 1 create table t1(a int, b int, c int) distribute by hash(a); 假设agg下层算子所输出结果集的分布列为setA,agg操作的group by
GS_WLM_OPERATOR_INFO GS_WLM_OPERATOR_INFO系统表显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_OPERATOR_HI
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示。
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
执行动态查询语句 介绍执行动态查询语句。GaussDB(DWS)提供两种方式:使用EXECUTE IMMEDIATE、OPEN FOR实现动态查询。前者通过动态执行SELECT语句,后者结合了游标的使用。当需要将查询的结果保存在一个数据集用于提取时,可使用OPEN FOR实现动态查询。
GS_WLM_OPERATOR_INFO GS_WLM_OPERATOR_INFO系统表显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_OPERATOR_HI
PGXC_REPLICATION_SLOTS PGXC_REPLICATION_SLOTS视图显示集群中DN上的复制信息,除增加表示节点名称的node_name字段外,其余字段内容和PG_REPLICATION_SLOTS视图相同。需要有系统管理员权限才可以访问此视图。 表1 P
PGXC_ROW_TABLE_IO_STAT PGXC_ROW_TABLE_IO_STAT视图提供集群所有CN和DN节点上当前数据库所有行存表的IO统计数据。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_ROW_TABLE_IO_STAT视图相同,具体的字段请参考表1。
GLOBAL_ROW_TABLE_IO_STAT GLOBAL_ROW_TABLE_IO_STAT视图提供当前数据库所有行存表的IO统计数据。其字段的名称、类型和顺序与GS_ROW_TABLE_IO_STAT视图相同,具体的字段请参考表1。各统计字段为所有节点对应字段之和。 表1
PGXC_RESPOOL_RESOURCE_INFO PGXC_RESPOOL_RESOURCE_INFO视图显示所有实例上资源池实时监控信息。 DN上仅显示当前DN所属逻辑集群的资源池监控信息。 从8.2.0集群版本开始,新增了内存负反馈机制功能,CCN节点会根据DN节点的实际
USER对象设计规范 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如管理员用户,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务
将Schema中的表的查询权限赋给其他用户,赋权后仍无法查询Schema中的表 问题现象 有权限的用户使用“GRANT SELECT ON all tables in schema schema_name TO u1”命令给u1用户赋予schema下表的权限后,u1用户仍然无法访问该schema下的表。
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
执行动态非查询语句 语法 语法请参见图1。 图1 noselect::= using_clause子句的语法参见图2。 图2 using_clause-2 对以上语法格式的解释如下: USING IN bind_argument用于指定存放传递给动态SQL值的变量,在dynami
GS_NODE_STAT_RESET_TIME GS_NODE_STAT_RESET_TIME视图提供当前节点的统计信息重置时间,返回带时区的时间戳。 详细含义参考get_node_stat_reset_time()函数。 实例正常运行过程中,内存中的各类统计数值会逐渐累加,以下情况会导致内存中的统计数值被重置为0:
GS_TOTAL_NODEGROUP_MEMORY_DETAIL GS_TOTAL_NODEGROUP_MEMORY_DETAIL视图统计当前数据库逻辑集群使用内存的信息,单位为MB。 表1 GS_TOTAL_NODEGROUP_MEMORY_DETAIL字段 名称 类型 描述 ngname
PGXC_NODE_STAT_RESET_TIME PGXC_NODE_STAT_RESET_TIME视图显示集群中各节点的统计信息重置时间,除新增node_name(节点名称)字段外,其余字段内容和GS_NODE_STAT_RESET_TIME视图相同。需要有系统管理员权限才可以访问此视图。