openGauss SQL调优指南:典型SQL调优点-SQL自诊断

典型SQL调优点

SQL调优是一个不断分析与尝试的过程:试跑Query,判断性能是否满足要求;如果不满足要求,则通过查看执行计划分析原因并进行针对性优化;然后重新试跑和优化,直到满足性能目标。

SQL自诊断

用户在执行查询或者执行INSERT/DELETE/UPDATE/CREATE TABLE AS语句时,可能会遇到性能问题。这种情况下,通过查询GS_WLM_SESSION_STATISTICSGS_WLM_SESSION_HISTORY视图的warning字段可以获得对应查询可能导致性能问题的告警信息,为性能调优提供参考。

SQL自诊断的告警类型与resource_track_level的设置有关系。如果resource_track_level设置为query,则可以诊断多列/单列统计信息未收集和SQL不下推的告警。如果resource_track_level设置为operator,则可以诊断所有的告警场景。

SQL自诊断的诊断范围与resource_track_cost的设置有关系。当SQL的代价大于resource_track_cost时,SQL才会被诊断。SQL的代价可以通过explain来确认。

告警场景

目前支持对多列/单列统计信息未收集导致性能问题的场景上报告警。

如果存在单列或者多列统计信息未收集,则上报相关告警。调优方法可以参考更新统计信息统计信息调优

告警信息示例:

整表的统计信息未收集:

Statistic Not Collect:
    schema_test.t1

单列统计信息未收集:

Statistic Not Collect:
    schema_test.t2(c1,c2)

多列统计信息未收集:

Statistic Not Collect:
    schema_test.t3((c1,c2))

单列和多列统计信息未收集:

Statistic Not Collect:
    schema_test.t4(c1,c2)    schema_test.t4((c1,c2))

规格约束

  1. 告警字符串长度上限为2048。如果告警信息超过这个长度(例如存在大量未收集统计信息的超长表名、列名等信息)则不告警,只上报warning:

    WARNING, "Planner issue report is truncated, the rest of planner issues will be skipped"
    
  2. 如果query存在limit节点(即查询语句中包含limit),则不会上报limit节点以下的Operator级别的告警。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值