检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
子查询调优 子查询背景介绍 应用程序通过SQL语句来操作数据库时会使用大量的子查询,这种写法比直接对两个表做连接操作在结构上和思路上更清晰,尤其是在一些比较复杂的查询语句中,子查询有更完整、更独立的语义,会使SQL对业务逻辑的表达更清晰更容易理解,因此得到了广泛的应用。 Gaus
案例:改写SQL排除剪枝干扰 分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数。
DBA_TAB_COLUMNS DBA_TAB_COLUMNS视图存储关于表和视图的字段的信息。数据库里每个表的每个字段都在DBA_TAB_COLUMNS里有一行。需要有系统管理员权限才可以访问。 名称 类型 描述 owner character varying(64) 表或视图的所有者。
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
PG_STATIO_USER_SEQUENCES PG_STATIO_USER_SEQUENCES视图显示命名空间中所有用户关系表类型为序列的IO状态信息。 表1 PG_STATIO_USER_SEQUENCES字段 名称 类型 描述 relid oid 序列OID。 schemaname
PG_USER_MAPPINGS PG_USER_MAPPINGS视图提供访问关于用户映射的信息的接口。 这个视图只是一个PG_USER_MAPPING的可读部分的视图化表现,如果用户无权使用它则查询此表时,有些选项字段会显示为空。 表1 PG_USER_MAPPINGS字段 名字
PGXC_INSTR_UNIQUE_SQL PGXC_INSTR_UNIQUE_SQL视图展示集群中所有CN节点的Unique SQL的完整统计信息。 需要有系统管理员权限才可以访问此视图,该视图的字段与GS_INSTR_UNIQUE_SQL视图字段相同。具体的字段请参考表1。 表1
PGXC_WAIT_EVENTS PGXC_WAIT_EVENTS视图显示集群中各节点各类等待状态和事件的统计信息,其字段内容和GS_WAIT_EVENTS视图相同。需要有系统管理员权限才可以访问此视图。 表1 PGXC_WAIT_EVENTS字段 名称 类型 描述 nodename
PGXC_WLM_WORKLOAD_RECORDS PGXC_WLM_WORKLOAD_RECORDS视图显示当前用户在每个CN上执行作业时在CN上的状态信息。需要有系统管理员权限或预置角色gs_role_read_all_stats权限才可以访问此视图。该视图仅在动态负载功能开
PG_EXTERNAL_NAMESPACE 存储EXTERNAL SCHEMA相关的信息。该系统表仅8.3.0及以上版本支持。 表1 PG_EXTERNAL_NAMESPACE字段 名字 类型 描述 nspid Oid External Schema Oid。 srvname text
PGXC_TABLE_CHANGE_STAT PGXC_TABLE_CHANGE_STAT视图提供集群所有CN节点上当前数据库所有表的变更情况。除在每一行前面增加name类型的nodename字段外,其余字段的名称、类型和顺序与GS_TABLE_CHANGE_STAT视图相同。 表1
PGXC_WLM_SESSION_INFO PGXC_WLM_SESSION_INFO视图显示在所有CN上执行作业结束后的负载管理记录。此视图信息来源于系统表GS_WLM_SESSION_INFO。 PGXC_WLM_SESSION_INFO视图仅支持在postgres数据库中查询,其它数据库中查询会直接报错。
GaussDB(DWS)在CPU核数、内存相同的情况下,小规格多节点与大规格三节点集群如何选择? 小规格多节点: 如果数据量不大、集群节点数量需要伸缩,但不能忍受太高的成本,可以选择小规格多节点集权。 例如,规格为8核32G的小规格集群(dwsx2.h.2xlarge.4.c6)
步骤2:测试初始表结构下的系统性能并建立基线 在优化表结构前后,请测试和记录以下详细信息以对比系统性能差异: 数据加载时间。 表占用的存储空间大小。 查询性能。 本次实践中的示例基于使用8节点的dws.d2.xlarge集群。因为系统性能受到许多因素的影响,即使您使用相同的集群配置,结果也会有所不同。
GaussDB(DWS)数据脱敏 GaussDB(DWS)提供列级别的数据脱敏(Dynamic Data Masking)功能。针对某些敏感信息(如身份证号、手机号、银行卡号等),通过应用脱敏函数进行原始数据的变形改写,实现敏感隐私数据的可靠保护,从而增强产品在数据安全和隐私保护方面的能力。
GaussDB(DWS)表设计规则 GaussDB(DWS)是分布式架构。数据分布在各个DN上。总体上讲,良好的表设计需要遵循以下原则: 【关注】将表数据均匀分布在各个DN上。数据均匀分布,可以防止数据在部分DN上集中分布,从而导致因存储倾斜造成集群有效容量下降。通过选择合适的分布列,可以避免数据倾斜。
子链接块名的hint 功能描述 指明子链接块的名称。 语法格式 1 blockname ([@block_name] table) 注意事项 block_name hint仅在对应的子链接块提升时才会被上层查询使用。目前支持的子链接提升包括IN子链接提升、EXISTS子链接提升
查询最耗性能的SQL 系统中有些SQL语句运行了很长时间还没有结束,这些语句会消耗很多的系统性能,请根据本章内容查询长时间运行的SQL语句。 操作步骤 查询系统中长时间运行的查询语句。 1 SELECT current_timestamp - query_start AS runtime