检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
ODBC开发示例 常用功能示例代码 此示例演示如何通过ODBC方式获取GaussDB(DWS)中的数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
【建议】避免使用保留或者非保留关键字命名数据库对象。 可以使用SELECT * FROM pg_get_keywords()查询GaussDB(DWS)的关键字,或者在《SQL语法参考》中“关键字”章节中查看。 【建议】避免使用双引号括起来的字符串来定义数据库对象名称,GaussDB(DWS)中使用双引号
Join方式的Hint 功能描述 指明Join使用的方法,可以为Nested Loop,Hash Join和Merge Join。 语法格式 1 [no] nestloop|hashjoin|mergejoin(table_list) 参数说明 no表示hint的join方式不使用。
Customer 441MB - Income_Band 88kB - 总存储空间 42GB - 查询执行时间 查询1 14552.05ms - 查询2 27952.36ms - 查询3 17721.15ms - 总执行时间 60225.56ms - 执行ANALYZE更新统计信息。
PGXC_STAT_REPLICATION PGXC_STAT_REPLICATION视图显示集群中各节点上日志同步的状态信息,除新增node_name(节点名称)字段外,其余字段内容和PG_STAT_REPLICATION视图相同。需要有系统管理员权限才可以访问此视图。 表1
违反规范的影响: 错误的索引对列存的访问无任何性能帮助,反而可能影响查询性能。 方案建议: 创建索引时指定索引类型,避免使用默认的psort类型索引。 极端点查(海量数据中检索极少数据)场景,可使用btree类型索引。 范围查询性能要求高的场景,可以创建Partial Cluster K
PGXC_REPLICATION_SLOTS PGXC_REPLICATION_SLOTS视图显示集群中DN上的复制信息,除增加表示节点名称的node_name字段外,其余字段内容和PG_REPLICATION_SLOTS视图相同。需要有系统管理员权限才可以访问此视图。 表1 P
案例:调整GUC参数best_agg_plan 现象描述 t1的表定义为: 1 create table t1(a int, b int, c int) distribute by hash(a); 假设agg下层算子所输出结果集的分布列为setA,agg操作的group by
l_discount between 0.06 - 0.01 and 0.06 + 0.01 and l_quantity < 24; 导入数据后执行查询,查看执行时间: 图1 未使用partial cluster key 图2 未使用partial cluster key后CU加载情况 优化后
USER对象设计规范 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如管理员用户,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务
【建议】避免使用保留或者非保留关键字命名数据库对象。 可以使用SELECT * FROM pg_get_keywords()查询GaussDB(DWS)的关键字,或者在《SQL语法参考》中“关键字”章节中查看。 【建议】避免使用双引号括起来的字符串来定义数据库对象名称,GaussDB(DWS)中使用双引号
场景一:优化后 以上查询为lineitem表自连接的Anti Join,当使用cost_param的bit0为0时,估算Anti Join的行数与实际行数相差很大,导致查询性能下降。可以通过设置cost_param的bit0为1时,使Anti Join的行数估算更准确,从而提高查询性能。优化后的执行计划如下:
行数的Hint 功能描述 指明中间结果集的大小,支持绝对值和相对值的hint。 语法格式 1 rows([@block_name] table_list #|+|-|* const) 参数说明 block_name表示语句块的block_name,详细说明请参考block_name。
rel的一个表关系中,如果存在同名列则通过别名进行规避。 建议 如果查询具有多层,则哪一层出现倾斜,则将hint写在哪一层中。 对于提升的子查询,skew hint支持直接使用子查询名进行hint。如果明确子查询提升后的哪一个基表存在倾斜,则直接使用基表进行hint的可用性更高。
进行双层Agg调优,最终计划如下图所示,运行时间94s,完成调优。 图6 最终调优计划 如果有统计信息变更引起的查询劣化,可以考虑用plan hint来调整到之前的查询计划。这里以TPCH-Q17为例,在收集default_statistics_target设置为–2的统计信息之后,计划相比于默认统计信息发生劣化。
mydbadmin sysadmin PASSWORD '{Password}'; 通过视图PG_USER查看已创建的用户。 1 SELECT * FROM pg_user; 要查看用户属性,请查询系统表PG_AUTHID。 1 SELECT * FROM pg_authid; 修改用户属性
步骤3:调优表操作具体步骤 选择存储方式 此实践中所使用的样例表为典型的TPC-DS表,是典型的多字段表,统计分析类查询场景多,因此选择列存存储方式。 1 WITH (ORIENTATION = column) 选择压缩级别 在步骤1:创建初始表并加装样例数据中没有指定压缩比,
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS
JDBC接口参考 JDBC接口是一套提供给用户的API方法,本节将对部分常用接口做具体描述,若涉及其他接口可参考JDK1.6(软件包)/JDBC4.0中相关内容。 java.sql.Connection java.sql.Connection是数据库连接接口。 表1 对java.sql
性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用于记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS