1. SQL自诊断
这个特征库有什么用呢?当我们在生产环境中遇到慢SQL问题,可以基于特征库和KNN算法进行在线推理,诊断出SQL产生的原因,然后针对根因给出一些优化建议。
2. SQL全链路分析
GaussDB提供的SQL全链路监控分析能力则很好地解决了这个问题。它包括全链路追踪和聚合分析两方面,通过业务SQL关键字或客户端traceID等条件查询到数据库SQLID,并追踪该SQL在数据库集群中的解析过程和执行耗时,以及每条SQL在集群中的转发、聚合情况,进而追踪到问题发生的源头。
3. 多维指标关联分析
我们知道某些数据库指标之间是存在强关联性的,通过有方向性的关联性算法,在异常发生时将同一时间段的指标进行比对,根据相关性的强弱将异常时间段内与关键指标相关的指标筛选出来。GaussDB当前支持毛刺、持续增长、漂移、周期性等场景的检测算法,可以帮助运维人员迅速定位问题,减轻运维人员的工作量,助其锁定问题的根因。
4. 趋势预测
5. 索引推荐
索引推荐的核心方法是基于原生的词法和语法解析,对查询语句中的字句和谓词进行分析和处理,再结合字段选择度、聚合条件、多表join关系等输出最优的索引建议。GaussDB 提供索引推荐功能,给出索引推荐列表,以及每一个索引的正向和负向SQL的收益,识别当前数据库存在的冗余索引、无用索引,优化数据库查询速度。GaussDB还提供了优化器评估能力,它提供了一个虚拟索引的能力,不需要真实创建索引,通过虚拟索引评估索引推荐的结果是不是合适;通过持续对索引配置进行优化,可以解决用户的负载漂移情况,及时发现索引不优、冗余索引,以便避免故障发生。
6. SQL会话查杀
7. SQL限流和自治限流
全局快慢车道。所谓全局快慢车道,就是定义两个资源池,一个是正常资源池,我们称为快车道,快车道提供大量的资源,正常业务在快车道运行,如果出现交通事故,这里的交通事故就是指异常的SQL业务,我们可以通过页面一键将异常SQL放到慢车道中,慢车道限制了对资源的使用,这样交通事故处理完了,快车道可以继续保持高速运行。
单类SQL精准管控。对于单类SQL,需要从执行时间、IO使用等角度进行精准管控,因为管控这类SQL的资源占用,可以起到紧急限流的效果。
内存熔断。提供内存上下限配置,内存使用超过最大内存上限后禁止新连接接入并kill当前会话,待内存恢复到内存下限后停止kill会话并允许新连接接入。
SQL自治限流。提供按照一定的SQL规则,或者CPU、内存等资源使用规则,来进行SQL的自治限流能力,避免对应类别的SQL拖慢整个数据库。




