本文分享自华为云社区《GaussDB(DWS) 监控运维诊断优化,历史查询诊断》,作者: yd_219384351。
DWS历史查询诊断,基于DWS集群历史topsql,提供异常诊断能力。提供SQL趋势统计分析曲线图,展示SQL历史运行趋势;提供历史topsql异常诊断能力,识别资源占用高,运行时间长,以及运行异常的烂SQL,展示各类异常SQL数量,并支持过滤各类异常SQL;提供单SQL的一键诊断能力,一键诊断能力包括SQL语句检查,执行计划诊断和可视化,帮助开发者分析执行计划,分析SQL语句执行性能消耗,提升租户侧自运维能力。
核心功能
功能使用
登录数据仓库服务,选择优化诊断菜单
左侧菜单栏选择优化诊断菜单,会进到优化诊断功能界面,在集群列表中选中集群,第一个tab页就是历史查询分析。
提示:此功能依赖历史查询监控指标,需要集群开启历史查询监控才能正常使用,集群如果未开启监控设置,可从此界面开启。
趋势统计
界面上方是历史查询趋势统计,提供三个tab页切换,分别为历史查询总趋势,SQL质量趋势,SQL运行时长趋势。
历史查询总趋势:支持按照不同维度(集群/用户/实例/应用名称/资源池),指定时间范围内,统计每分钟执行SQL数量。
SQL质量趋势:统计指定时间范围内,每类异常项的SQL数量。 SQL运行时长趋势:统计集群历史SQL执行时间(平均时长/最大时长/最小时长)。
SQL异常诊断,质量概览
界面中间部分,提供SQL质量概览,显示各类异常SQL数量,点击卡片下方列表同步过滤。
异常项:不下推/CPU超过10万秒/Not in子查询/时长超过1小时/内存超过10G/下盘超过50G/streaming数量超过50
不同集群,可调整异常项的阈值,异常诊断规则基于DWS集群历史topsql字段可灵活配置。
历史topsql详情
界面最下方部分,显示历史topsql详情列表,支持条件搜索和全字段排序。
默认显示查询ID,用户名称,数据库名称,提交时间,执行时间,查询语句,查询状态等字段,想要查看更多字段可点击右上角齿轮图标设置显示字段。 点击查看详情按钮可查看历史topsql详情
历史topsql数据汇总
历史topsql数据汇总,按照不同维度对历史topsql做汇总,显示SQL数量,和资源消耗情况。
维度:数据库/用户/资源池/应用名称/实例/uniqueSQLId
一键诊断-执行计划诊断
针对执行计划格式,对执行计划字符串进行解析,对历史topsql表中记录的执行计划进行诊断,并提供可视化图形,可以展示每个节点执行时长,type,扫描行数等信息。
异常诊断项:重分布异常,估算异常,计算倾斜,分区扫描异常,跨逻辑集群查询。
注意:集群历史topsql需要设置为perf级别才可以显示每步执行时长,需要设置guc参数resource_track_level=perf
一键诊断-SQL语句检查
对用户编写的SQL语句,结合现网经验,总结了12条SQL军规,对SQL语句进行静态检查,可以分析烂SQL,并给出修复意见。
提示:12条SQL军规只是结合DWS使用情况来制定的,具有参考价值,给出的规范还需要根据用户使用情况后续进行迭代。
华为开发者空间,汇聚鸿蒙、昇腾、鲲鹏、GaussDB、欧拉等各项根技术的开发资源及工具,致力于为每位开发者提供一台云主机、一套开发工具及云上存储空间,让开发者基于华为根生态创新。点击链接,免费领取您的专属云主机
点击关注,第一时间了解华为云新鲜技术~