SQL请求行为识别是数据库自治服务DAS的一个功能,它可以帮助您在业务量多的情况下识别异常请求的SQL,提高问题定位的效率。本文将为您介绍SQL请求行为识别的使用场景及设置方法。
前提条件
背景信息
随着业务量增长,出现更多SQL请求,从而导致数据库监控指标上升,而某些SQL请求特征相似,通过全量SQL很难逐条去定位问题SQL。数据库自治服务DAS(Database Autonomy Service)的SQL请求行为识别能够通过机器学习方法进行聚类筛选,为您提供更快速、高效、精准的异常SQL定位服务。
场景示例
场景:当您的业务请求有大量SQL模板,不管通过哪种排序,都很难快速定位到异常SQL请求。如下图所示红框部分和蓝框部分各属于一类问题SQL请求。
解决方案:使用SQL请求行为识别功能通过以下两个方案帮助您快速定位性能相关的问题:
方案一:当业务存在大量请求的时候,DAS能够按照SQL请求行为对SQL模板进行分类。例如面对上百页的SQL模板,如果通过排序很难一个个去筛选问题SQL,此时可以使用SQL请求行为识别,通过DAS后端算法找出相似的行为图像,帮助您将大量的SQL模板聚类,由此提高问题定位的效率。
方案二:SQL请求行为识别功能根据指标的异常时间段来排查与异常指标相关的问题。下图显示了异常指标的趋势,在该图中,CPU使用率和活动会话的峰值时间与SQL模板类别的请求突然减少的时间相同,这表明当活动会话激增时,这些类别的SQL请求会被阻塞。
操作步骤
登录DAS控制台。
单击左侧实例监控。
在实例监控页,单击对应的实例ID进入实例详情页,在左侧导航栏单击自治中心。选择时间范围,您可看到该范围内的异常事件、优化事件、弹性伸缩事件和其他。
如下图展示的是IOPS利用率、CPU使用率和活跃会话三种监控指标。单击序列1标记的黄色线条,然后在下方查看监控指标时序异常检测动态。
说明如上图所示,序列2标记区域内各个行所代表的含义如下:
第一行代表时序异常指标的异常程度,异常程度不同颜色也不同,红色、黄色、蓝色根据事件的异常程度依次递减。
第二行代表时序异常检测对应的动态,慢SQL优化事件。
单击异常检测区域,弹出异常检测下拉列表,单击异常发现页签,通过查询异常分析部分内容获取异常原因。通过异常指标部分选择具体类别指标,查看该类指标的异常指标时间分布情况。
说明如上图所示,自动锚点后小红点代表异常程度的最高级别,红色、黄色、蓝色三种颜色根据指标的异常程度依次递减。
在异常分析部分,单击对应异常原因右侧相关指标列的查看相关SQL,跳转至SQL请求行为分析页面,选择监控指标和被关联的SQL指标的参数,单击分析。
说明后台会分析耗时占比排名前1000的SQL模板作为分析数据,由于此功能依赖DAS企业版的全量SQL数据,拉取全量SQL数据比较耗时,且不同用户的计算时间略有差异,一般等待1-5分钟左右。
查看SQL请求行为分析图像和分析表。
说明第一行显示cpu_usage相关度接近1.0, 说明SQL模板所在的类别与cpu_usage关联度最高,即该SQL指标与异常指标的关联度最高。
下表是SQL监控指标的参数说明表。
监控指标参数
参数说明
聚合图像
每一个聚类图像下的指标会做聚合。
cpu_usage相关度
越接近1.00的监控指标类别与异常指标的关联度越高。
SQL模板数
SQL模板的数量,SQL模板定义请参见使用说明。
平均耗时
SQL模板在异常事件时间段内的平均耗时(秒)。
执行次数比例
SQL模板执行次数占总次数的占比。
扫描行数
SQL模板扫描行数对数据库表扫描的总行数。
耗时比例
SQL模板执行时间占总执行次数的比例。
单击查看即可获取各个SQL模板的关联性结果。
如下图所示,黄色线条的SQL模板和 mysql.cpu_usage、mysql.innodb_rows_read、mysql.active_session的关联性较强,由此定位到此SQL模板是导致cpu突增的SQL请求的主要原因。
其他说明
DAS帮助聚类海量的SQL请求,您会发现相似的SQL模板的波动趋势相似。
虽然此SQL请求有一个短暂的突增,但是突增波动的时间点和指标的突增并不同,所以此类模板并不是与指标最关联的,如下图所示。
下图显示了异常指标的趋势。在该图中,CPU使用率和活动会话的峰值时间与SQL模板类别的请求突然减少的时间相同。这表明当活动会话激增时,这些类别的SQL请求会被阻塞。
- 本页导读 (1)