检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
DBMS_SQL 接口介绍 高级功能包DBMS_SQL支持的接口请参见表1 DBMS_SQL。 表1 DBMS_SQL 接口名称 描述 DBMS_SQL.OPEN_CURSOR 打开一个游标。 DBMS_SQL.CLOSE_CURSOR 关闭一个已打开的游标。 DBMS_SQL.PARSE
算子级调优 算子级调优介绍 一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。
表定义如下: 执行以下SQL语句,查询某个点查询的执行计划: 1 2 3 4 EXPLAIN PERFORMANCE SELECT * FROM orders_no_pck WHERE o_orderkey = '13095143' ORDER BY o_orderdate; 由下图可知执行时间为
案例:改写SQL排除剪枝干扰 分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数
DBMS_OUTPUT 接口介绍 高级功能包DBMS_OUTPUT支持的所有接口请参见表1。 表1 DBMS_OUTPUT 接口名称 描述 DBMS_OUTPUT.PUT_LINE 输出指定的文本,文本长度不能超过32767字节。 DBMS_OUTPUT.PUT 将指定的文本输出到指定文本的前面
使用partial cluster key 图4 使用partial cluster key后CU加载情况 使用partial cluster key后,5-- CStore Scan on public.lineitem的时间减少了1.2s,得益于有84个CU被过滤掉了。
DWS_2000000023 DWS集群中存在持有锁过长的vacuum full操作 告警解释 数据表执行vacuum full操作会持有八级锁,如果对某张表执行vacuum full操作且持有锁周期超过20分钟(可配置)时,则上报集群中存在持有锁过长的vacuum full操作的重要告警
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。
GaussDB(DWS)在CPU核数、内存相同的情况下,小规格多节点与大规格三节点集群如何选择? 小规格多节点: 如果数据量不大、集群节点数量需要伸缩,但不能忍受太高的成本,可以选择小规格多节点集权。 例如,规格为8核32G的小规格集群(dwsx2.h.2xlarge.4.c6),
TABLE对象设计规范(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 违反规范的影响: 分布式和分布列选择错误,导致表数据存储倾斜,访问性能下降,严重情况会触发存储和计算资源过载。 方案建议: 创建表时通过DISTRIBUTE BY显式指定分布方式和分布列,分布列选择原则如下表所示
所以需要将cost_param的bit1为1时,选择最小的选择率作为总的选择率估算行数比较准确,查询性能较好,优化后的计划如下图所示: 父主题: SQL调优案例
图1 添加实例内存使用率监控视图 即可在下方视图中查看当前集群各实例的实例内存使用率的具体情况,左上角可选择查看最近1/3/12/24小时/7天的实例内存使用率,判断是否有实例内存使用率突然增大的情况。
赋予用户schema的all权限后建表仍然报错ERROR: current user does not have privilege to role tom 问题现象 有两个用户tom和jerry,jerry需要在tom的同名schema下创建表,于是tom把该schema的all
使用partial cluster key 图4 使用partial cluster key后CU加载情况 使用partial cluster key后,5-- CStore Scan on public.lineitem的时间减少了1.2s,得益于有84个CU被过滤掉了。
步骤3:调优表操作具体步骤 选择存储方式 此实践中所使用的样例表为典型的TPC-DS表,是典型的多字段表,统计分析类查询场景多,因此选择列存存储方式。 1 WITH (ORIENTATION = column) 选择压缩级别 在步骤1:创建初始表并加装样例数据中没有指定压缩比,GaussDB
Join方式的Hint 功能描述 指明Join使用的方法,可以为Nested Loop,Hash Join和Merge Join。 语法格式 1 [no] nestloop|hashjoin|mergejoin(table_list) 参数说明 no表示hint的join方式不使用
Scan方式的Hint 功能描述 指明scan使用的方法,可以是tablescan、indexscan和indexonlyscan。 语法格式 1 [no] tablescan|indexscan|indexonlyscan(table [index]) 参数说明 no表示hint
生成计划如下所示: 图中计划顶端warning的提示详见Hint的错误、冲突及告警的说明。 父主题: 使用Plan Hint进行调优
INDEX对象设计规范(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 违反规范的影响: 冗余索引浪费空间,索引多影响入库效率。 组合索引中列顺序错误,影响查询效率。 最佳实践: 索引的使用需兼顾以下条件: 索引列必须是常用于过滤条件或JOIN关联条件的列。