检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: GaussDB(DWS)对象设计规范
案例:改写SQL排除剪枝干扰 分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数。
PGXC_TABLE_CHANGE_STAT PGXC_TABLE_CHANGE_STAT视图提供集群所有CN节点上当前数据库所有表的变更情况。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_TABLE_CHANGE_STAT视图相同。 表1
子查询调优 子查询背景介绍 应用程序通过SQL语句来操作数据库时会使用大量的子查询,这种写法比直接对两个表做连接操作在结构上和思路上更清晰,尤其是在一些比较复杂的查询语句中,子查询有更完整、更独立的语义,会使SQL对业务逻辑的表达更清晰更容易理解,因此得到了广泛的应用。 Gaus
步骤3:调优表操作具体步骤 选择存储方式 此实践中所使用的样例表为典型的TPC-DS表,是典型的多字段表,统计分析类查询场景多,因此选择列存存储方式。 1 WITH (ORIENTATION = column) 选择压缩级别 在步骤1:创建初始表并加装样例数据中没有指定压缩比,
调优前:学习表结构设计 在本实践中,您将学习如何优化表的设计。您首先不指定存储方式,分布键、分布方式和压缩方式创建表,然后为这些表加载测试数据并测试系统性能。接下来,您将应用调优表实践以使用新的存储方式、分布键、分布方式和压缩方式重新创建这些表,并再次为这些表加载测试数据和测试系
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示。
ODBC接口参考 ODBC接口是一套提供给用户的API函数,本节将对部分常用接口做具体描述,若涉及其他接口可参考msdn(网址:https://msdn.microsoft.com/en-us/library/windows/desktop/ms714177(v=vs.85).aspx)中ODBC
PGXC_WLM_OPERATOR_STATISTICS PGXC_WLM_OPERATOR_STATISTICS视图显示在所有CN上正在执行作业的算子信息。系统管理员权限可以查询集群所有用户的作业算子信息,普通用户仅可查询自己的作业算子信息。 具体的字段请参考表1。 表1 GS
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS
GS_NODE_STAT_RESET_TIME GS_NODE_STAT_RESET_TIME视图提供当前节点的统计信息重置时间,返回带时区的时间戳。 详细含义参考get_node_stat_reset_time()函数。 实例正常运行过程中,内存中的各类统计数值会逐渐累加,以下情况会导致内存中的统计数值被重置为0:
GS_WLM_OPERATOR_STATISTICS GS_WLM_OPERATOR_STATISTICS视图显示当前用户正在执行的作业的算子相关信息。 表1 GS_WLM_OPERATOR_STATISTICS的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。
PGXC_WLM_OPERATOR_HISTORY PGXC_WLM_OPERATOR_HISTORY视图显示在所有CN上执行作业结束时的算子信息。此视图用于从GaussDB(DWS)中查询数据,数据库中的数据会被定时清理,清理周期为3分钟。 需要有系统管理员权限或预置角色gs_
PGXC_COLUMN_TABLE_IO_STAT PGXC_COLUMN_TABLE_IO_STAT视图提供集群所有CN和DN节点上当前数据库所有列存表的IO统计数据。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_COLUMN_TAB
将Schema中的表的查询权限赋给其他用户,赋权后仍无法查询Schema中的表 问题现象 有权限的用户使用“GRANT SELECT ON all tables in schema schema_name TO u1”命令给u1用户赋予schema下表的权限后,u1用户仍然无法访问该schema下的表。
执行动态非查询语句 语法 语法请参见图1。 图1 noselect::= using_clause子句的语法参见图2。 图2 using_clause-2 对以上语法格式的解释如下: USING IN bind_argument用于指定存放传递给动态SQL值的变量,在dynami
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
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