检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
数据倾斜导致SQL执行慢,大表SQL执行无结果 问题现象 某场景下SQL执行慢,涉及大表的SQL执行不出来结果。 原因分析 GaussDB(DWS)支持Hash、REPLICATION和ROUNDROBIN(8.1.2集群及以上版本支持ROUNDROBIN)分布方式。如果创建了H
SQL调优案例 案例:选择合适的分布列 案例:建立合适的索引 案例:增加JOIN列非空条件 案例:使排序下推 案例:设置cost_param对查询性能优化 案例:调整局部聚簇键 案例:调整中间表存储方式 案例:改建分区表 案例:调整GUC参数best_agg_plan 案例:改写SQL排除剪枝干扰
SQL调优案例 案例:选择合适的分布列 案例:建立合适的索引 案例:增加JOIN列非空条件 案例:使排序下推 案例:设置cost_param对查询性能优化 案例:调整局部聚簇键 案例:调整中间表存储方式 案例:改建分区表 案例:调整GUC参数best_agg_plan 案例:改写SQL排除剪枝干扰
执行SQL时出现表死锁,提示LOCK_WAIT_TIMEOUT锁等待超时 问题现象 执行SQL时出现LOCK_WAIT_TIMEOUT锁等待超时的错误。 原因分析 锁等待超时一般是因为有其他的SQL语句已经持有了锁,当前SQL语句需要等待持有锁的SQL语句执行完毕释放锁之后才能执
择是否在线扩容和自动重分布。 管理重分布 默认情况下,在扩容之后将自动调起重分布任务,为了增强扩容重分布整个流程的可靠性,可以选择在扩容时关闭自动重分布功能,在扩容成功之后再手动使用重分布功能执行重分布任务,数据重分布后将大大提升业务响应速率。当前重分布支持离线重分布、在线重分布
为什么GaussDB(DWS)使用一段时间后执行SQL很慢? 数据库在使用一段时间后,随着业务的增加使得表数据增加,或者对表数据经常进行增、删、改之后,引发数据膨胀和统计信息不准造成性能下降。 建议对于频繁增、删、改的表,定期执行vacuum full和analyze操作。操作步骤如下:
为什么GaussDB(DWS)普通用户比dbadmin用户执行的慢? GaussDB(DWS)在使用过程中会出现普通用户比dbadmin用户执行慢的场景主要有以下三种: 场景一:普通用户受资源管理的管控 普通用户在排队:waiting in queue/waiting in global
文本检索调试函数 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[]
配置LLVM LLVM(Low Level Virtual Machine)动态编译技术可以为每个查询生成定制化的机器码用于替换原本的通用函数。通过减少实际查询时冗余的条件逻辑判断、虚函数调用并提高数据局域性,从而达到提升查询整体性能的目的。 由于LLVM需要消耗额外的时间预生成
删除表数据后执行了VACUUM,但存储空间并没有释放 问题现象 删除表数据后执行了VACUUM,但是存储空间并没有释放。 原因分析 执行VACUUM时,对某些表可能没有权限,或者数据库本身并没有太多的数据膨胀。 执行VACUUM,默认清理当前用户在数据库中拥有权限的每一个表,没有权限的表则直接跳过回收操作。
配置LLVM LLVM(Low Level Virtual Machine)动态编译技术可以为每个查询生成定制化的机器码用于替换原本的通用函数。通过减少实际查询时冗余的条件逻辑判断、虚函数调用并提高数据局域性,从而达到提升查询整体性能的目的。 由于LLVM需要消耗额外的时间预生成
设置partition的存储属性,与pg_class.reloptions的形态一样,用"keyword=value"格式的字符串来表示 ,目前用于在线扩容的信息搜集。 relfrozenxid64 xid 冻结事务ID号。 boundexprs pg_node_tree 分区边界表达式。
文本检索调试函数 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[]
例行重建索引 背景信息 数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。 数据库支持的索引类型包含B-tree索引、GIN索引和PSORT索引。 对于B-tree索引,例行重建索引可有效的提高查询效率。 如果数据发生大量删除
SQL调优流程 对慢SQL语句进行分析,通常包括以下步骤: 操作步骤 收集SQL中涉及到的所有表的统计信息。在数据库中,统计信息是规划器生成计划的源数据。没有收集统计信息或者统计信息陈旧会造成执行计划严重劣化,从而导致性能问题。从经验数据来看,10%左右性能问题是因为没有收集统计信息。具体请参见更新统计信息。
例行维护表 为了保证数据库的有效运行,数据库必须在插入/删除操作后,定期执行VACUUM FULL和ANALYZE,更新统计信息,以便获得更优的性能。 相关概念 使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因: VACUUM FU
例行重建索引 背景信息 数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。 数据库支持的索引类型包含B-tree索引、GIN索引和PSORT索引。 对于B-tree索引,例行重建索引可有效的提高查询效率。 如果数据发生大量删除
SQL调优进阶 SQL自诊断 语句下推调优 子查询调优 统计信息调优 算子级调优 数据倾斜调优 磁盘缓存主动预热调优 SQL语句改写规则 父主题: SQL调优
例行维护表 为了保证数据库的有效运行,数据库必须在插入/删除操作后,定期执行VACUUM FULL和ANALYZE,更新统计信息,以便获得更优的性能。 相关概念 使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因: VACUUM FU
GaussDB(DWS)业务读写阻塞,如何查看某个时间段的sql执行记录? 当您的数据库集群出现读写阻塞时,可通过TopSQL功能查看某个时间段所执行的sql语句,支持查看当前CN或者所有CN的sql语句。 TopSQL功能包括查看实时sql语句和历史sql语句: 实时sql语句查询请参见:实时TopSQL语句。