正在生成
详细信息:
检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
SUMMARY_FILE_IOSTAT 通过数据库内对数据文件I/O统计的汇总结果,反映数据的I/O性能,用以发现I/O操作异常等性能问题。 其中phyrds、phywrts、phyblkrd、phyblkwrt、readtim、writetim字段按照各节点的数据累加求和,av
SUMMARY_FILE_IOSTAT 通过集群内各节点数据文件I/O统计的汇总结果,反映数据的I/O性能,用以发现I/O操作异常等性能问题,如表1所示。 其中phyrds、phywrts、phyblkrd、phyblkwrt、readtim、writetim字段按照各节点的数据
SUMMARY_FILE_IOSTAT 通过数据库内数据文件I/O统计的汇总结果,反映数据的I/O性能,用以发现I/O操作异常等性能问题,如表1所示。 其中phyrds、phywrts、phyblkrd、phyblkwrt、readtim、writetim字段按照各节点的数据累加
19227.328 ms (9 rows) 优化说明 测试发现由于两表结果集过大,导致nestloop耗时过长,超过一小时未返回结果,因此性能优化的关键是消除nestloop,让join走更高效的hashjoin。从语义等价的角度消除any-clause,SQL改写如下: 1 2
int) DISTRIBUTE BY HASH (b); 则执行计划将不包含“Streaming”,减少DN之间存在的通信数据量,从而提升查询性能,如图2所示。 图2 选择合适的分布列案例(二) 父主题: 实际调优案例
使用局部聚簇 局部聚簇(Partial Cluster Key)是列存下的一种技术。这种技术可以通过min/max稀疏索引较快的实现基表扫描的filter过滤。Partial Cluster Key可以指定多列,但是一般不建议超过2列。Partial Cluster Key的选取原则:
为何使用了GaussDB后网站登录较慢 推荐您做如下两个处理: 通过云数据库GaussDB服务的管理控制台查看云数据库GaussDB实例的性能情况。 与应用程序有很大关系,使用命令查看当前数据库连接状态,比较本地数据库和云数据库GaussDB的差异。 父主题: 产品咨询
调优手段之SQL重写 除了上述干预SQL引擎所生成执行计划的执行性能外,根据数据库的SQL执行机制以及大量的实践发现,有些场景下,在保证客户业务SQL逻辑的前提下,通过一定规则由DBA重写SQL语句,可以大幅度的提升SQL语句的性能。 这种调优场景对DBA的要求比较高,需要对客户业务有足
调优手段之SQL重写 除了上述干预SQL引擎所生成执行计划的执行性能外,根据数据库的SQL执行机制以及大量的实践发现,有些场景下,在保证客户业务SQL逻辑的前提下,通过一定规则由DBA重写SQL语句,可以大幅度的提升SQL语句的性能。 这种调优场景对DBA的要求比较高,需要对客户业务有足
选择分布方式 复制表(Replication)方式将表中的全量数据在集群的每一个DN实例上保留一份。主要适用于记录集较小的表。这种存储方式的优点是每个DN上都有该表的全量数据,在join操作中可以避免数据重分布操作,从而减小网络开销,同时减少了plan segment(每个plan
选择存储模型 进行数据库设计时,表设计上的一些关键项将严重影响后续整库的查询性能。表设计对数据存储也有影响:好的表设计能够减少I/O操作及最小化内存使用,进而提升查询性能。 表的存储模型选择是表定义的第一步。客户业务属性是表的存储模型的决定性因素,依据下面表格选择适合当前业务的存储模型。
能下推的部分语句,会导致CN成为性能瓶颈(带宽、存储、计算等)。在进行性能调优的时候,应尽量避免只能选择第3种策略的查询语句。 执行语句不能下推是因为语句中含有不支持下推的函数或者不支持下推的语法。一般都可以通过等价改写规避执行计划不能下推的问题。 语句下推典型场景 在Gauss
了优化(子链接提升)。另外,expr_sublink也可以提升,但是由于SQL语句中子查询的使用的灵活性,会带来SQL子查询过于复杂造成性能问题。如果希望关闭expr_sublink的提升优化,可以通过guc参数rewrite_rule来设置,详情见其他优化器选项 。子查询从大类上来看,分为非相关子查询和相关子查询:
向量化执行能够获得性能提升。从原理上分析,行存表转换为向量化执行,会产生转换的开销,导致性能下降。而上述操作的表达式计算、join操作、聚集操作转换为向量化执行之后,能够获得性能提升。所以查询转换为向量化执行后,性能是否提升,取决于查询转换为向量化之后获得的性能提升能否高于转换产生的性能开销。
分析执行计划图1可知,在顺序扫描阶段耗时较多。 多表JOIN中,由于表PS.SDR_WEB_BSCRNC_1DAY的JOIN列“BSCRNC_ID”存在大量空值,JOIN性能差。 建议在语句中手动添加JOIN列的非空判断,修改后的语句如下所示。 1 2 3 4 5 6 7 8 9 10 11 12
Join的区别在于所使用hash表结构不同,不影响执行的结果集。 Merge Join 归并连接,通常情况下执行性能差于哈希连接。如果源数据已经被排序过,在执行融合连接时,并不需要再排序,此时融合连接的性能优于哈希连接。 运算符 sort 对结果集进行排序。 filter EXPLAIN输出显示WH
优化(子链接提升)。另外,expr_sublink 也可以提升,但是由于SQL语句中子查询的使用的灵活性,会带来SQL子查询过于复杂造成性能问题。如果希望关闭 expr_sublink 的提升优化,可以通过 guc 参数 rewrite_rule 来设置,详情见其他优化器选项。子
上的表称之为分区表,物理块称之为分区。分区表是一张逻辑表,不存储数据,数据实际是存储在分区上的。分区表和普通表相比具有以下优点: 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。 增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。 方便维
执行时间缩短为1.8s左右。 尽量使用短字段的数据类型 长度较短的数据类型不仅可以减小数据文件的大小,提升IO性能;同时也可以减小相关计算时的内存消耗,提升计算性能。比如对于整型数据,如果可以用smallint就尽量不用int,如果可以用int就尽量不用bigint。 使用一致的数据类型
a > 1 and b > 1”且a列和b列都有索引这种查询条件,但有时其性能不如indexscan。因此,现场调优如发现查询性能较差且计划中有bitmapscan算子,可以关闭bitmapscan,看性能是否有提升。 enable_hashagg=on 控制优化器对Hash聚集规划类型的使用。