顶会VLDB'25论文解读:面向云数据库的多模态慢查询根因排序

欧阳彪等 2025-03-18 10:23:51
论文介绍

标题:RCRank: Multimodal Ranking of Root Causes of Slow Queries in Cloud Database Systems(RCRank:面向云数据库的多模态慢查询根因排序)

作者:欧阳彪,张颖莹,成涵吟,树扬,郭晨娟,杨彬,文青松,范伦挺,Christian S. Jensen

关键词:根因诊断,多模态数据,云数据库

论文链接:https://arxiv.org/abs/2503.04252

代码链接:https://github.com/decisionintelligence/RCRank

 

本文介绍华东师范大学决策智能实验室被 VLDB 2025 录用的云数据库根因诊断最新工作—— RCRank ,该工作与丹麦奥尔堡大学、阿里云团队合作完成。

 

 
 

摘要:

随着存储向云数据库系统的持续迁移,此类系统中慢查询对服务和用户体验的影响日益加剧。根因诊断在促进慢查询检测和优化方面发挥着不可或缺的作用。本文提出了一种方法,能够识别导致慢查询的可能根因类型,并根据其加速慢查询的潜力对其进行排序。这使得能够优先处理影响最大的根因,从而提高慢查询优化的效率。

 

为了实现更准确和精细的诊断,本文提出了 RCRank(Ranking for the Root Causes of slow queries) 框架,该框架将根因分析建模为多模态机器学习问题,并利用来自查询语句、执行计划、执行日志和关键性能指标的多模态信息。为了从异构多模态输入中获取嵌入表示,RCRank 集成了自监督预训练,以增强嵌入表示的跨模态对齐和任务相关性。接下来,该框架结合根因自适应跨 Transformer 融合模块,使其能够自适应地融合具有不同特性的多模态特征。最后,该框架采用统一模型,并设计了考虑根因影响力的训练目标,用于识别和排序根因。本文在真实和合成数据集上进行了实验,结果表明 RCRank 在根因识别和排序方面能够稳定超越当前最先进的方法,并在多项评估指标上均表现出色。

 
 

 

1、引言

 

企业和个人正越来越多地将其数据库服务迁移到云端。然而,云数据库系统的性能问题,特别是慢查询,会给用户带来经济损失,并降低用户对云端数据管理的信任。因此,加速慢查询对于确保高性能的云数据库系统至关重要。慢查询可能源于数据库系统的内部因素,如缺少相关索引或 SQL 语句书写不当,也可能受到外部因素的影响,如 I/O 瓶颈和网络问题。本文的目标是提供一个框架帮助用户解决慢查询问题,重点关注由内部因素引起的根因。

 

识别根因,即识别导致慢查询的关键因素,然后根据根因的重要程度,通过相应的优化方法提升数据库性能。尽管已有方法针对慢查询的识别,但仍然存在两个主要限制:

 

限制一:侧重于根因类型识别。现有方法主要关注识别慢查询的根因类型。然而,这并不能完全满足优先处理“最重要”根因的需求。基于根因优化慢查询的成本较高,如果针对每个根因都进行修正,可能会带来巨大的开销。因此,在选择要处理的根因时,考虑其影响力(即解决该根因后可节省多少运行时间)是十分重要的。然而,根因识别(RCI)方法无法量化解决已识别根因的潜在影响,从而限制了其实用性。

 

限制二:云数据库系统的观测不完整性。大多数现有方法依赖于单一模态的信息,例如 CPU 或内存使用时间等关键性能指标来识别根因,而忽略了其他能够提供慢查询内部因素见解的数据来源。例如,查询语句和执行计划包含关于查询目标和估计执行过程的信息,而执行日志记录了查询执行过程中消耗的资源及其执行状态。若要实现全面观测,需要综合考虑这些数据来源,以此构建更扎实的基础,从而更准确地理解慢查询及其根因,并提升根因识别的准确性。

 

2、模型方法

 

图1. 慢查询多模态根因诊断框架

 

如图 1 所示,本文提出了一种多模态诊断框架,用于识别慢查询的根因并根据其影响力进行排序。具体来说包含以下几个关键方面:慢查询与根因收集模块包括云数据库系统监控、慢查询收集和根因收集。该模块收集慢查询及其对应根因的影响,为第二个模块提供数据基础。多模态根因诊断模块通过预训练表征和多模态融合学习观测完整的多模态数据表征,根据多模态表征估计根因影响程度,从而构建基于慢查询根因影响程度的排序列表。

 

2.1、慢查询根因数据收集
 

 

如图 1 所示,慢查询收集通过云数据库监控系统对查询和数据库实例进行持续监控,并收集超过慢查询阈值的查询。接下来,通过基于规则的方法和基于大语言模型(LLM)的方法分析慢查询的根因。基于规则的方法如执行 SQL 语句更新统计信息 “ANALYZE TABLE_NAME;” 。基于 LLM 的方法如设计 Prompt 推荐索引 “You will recommend indexes from the table columns based on the SQL to reduce execution time.” 。根据两类分析方法提供的优化方案进行修正,并重新执行得出根因的影响程度,从而构建了一个用于识别和排序慢查询根因的数据集。

 

2.2、多模态根因诊断
 

 

图2. 多模态根因诊断模型

 

多模态根因诊断模型将不同模态的查询语句、执行计划、执行日志、关键性能指标输入模型进行训练。原始数据首先经过输入嵌入模块分别进行编码,转换为特征表征。随后,多模态融合模块通过交叉特征提取器融合多模态特征表征,并提取根因的共性特征和自适应性特征。最后,结合根因的共性特征和自适应性特征进行根因影响程度估计和排序,得到慢查询根因影响程度的排序列表。

 

2.2.1、输入嵌入模块

 

 


 


 

关键性能指标模态包含关于当前数据库状态的信息。考虑到数据库状态对查询执行的影响,捕捉数据库状态的时间特征以及不同数据库实例度量之间的交互模式至关重要。关键性能指标表示数据库状态,本文探索其时间特性。为了捕捉度量中的模式,单独预训练度量的嵌入。受此特性的启发,本文提出采用自编码结构和关键性能指标的时间序列重构作为预训练目标: 

 

 

2.2.2、多模态融合模块

 

为了更充分地利用来自不同模态的信息,跨模态 Transformer(CMT)以某一模态作为主模态,捕获与所有模态特征的依赖关系,并提取跨模态特征: 

 

 

 

2.2.3、根因估计和排序模块

 

为了在一个统一的框架中根据根因对慢查询的影响来识别和排序有效的根因,本文提出了一个用于估计每个潜在根因影响和排序的训练目标。根因影响估计的损失函数可以表示为: 

 

 

 

 

3、实验效果

 

本文分别在 Hologres 和 Postgres 数据库中收集基于 TPC 合成慢查询和真实数据库慢查询的根因数据集,并进行测试。评价指标分为三类:根因准确度(V-ACC、MC-ACC)、根因影响的估计和排序(MSE、Top1-ACC、MC-ACC、Tau)、性能提升(Top1-IR)。表 1 、表 2 和表 3 分别展示了在根因识别和排序任务中, RCRank 在 Holgores 和 Postgres 数据库上的表现。本文使用粗体和下划线来分别突出表示最优和次优的表现。RCRank 在真实数据集和合成数据集上的所有指标性能表现都超过所有基线方法。

 

表1. 在 Hologres 中的根因分析结果

 

表2. 在 Postgres 中 TPC-C 和 TPC-H 的根因分析结果

 

表3. 在 Postgres 中 TPC-DS 的根因分析结果

 

如图 3 所示,在大多数情况下,经过修改的慢查询的执行时间相比原始慢查询都有不同程度的缩短。有较多的慢查询经过优化后,运行时间下降了 20% 。RCRank 能够识别导致 Hologres 中查询大幅加速的根因。如表 4 所示,在 Hologres 和 Postgres 中,根据 RCRank 提供的根因列表中最重要的根因进行优化后,查询的运行时间得到了较大幅度减少。

 

表 4. 运行时间对比

 

图 3. 原始慢查询 vs. 改进后运行时间

 

4、结论

 

本文旨在识别慢查询的根因类型,并根据其对慢查询的影响进行排序。提出了一种针对慢查询根因的多模态排序框架(RCRank),将诊断过程建模为一个多模态机器学习问题,利用来自查询语句、执行计划、执行日志和关键性能指标的多模态信息。本文提出了一种多模态诊断模型,该模型能够通过模态对齐和任务相关性实现对异构模态的有效表达嵌入,采用高效且自适应的多模态特征融合,并统一执行根因的识别与排序。

 

实验结果表明,RCRank 在根因识别和排序方面优于现有方法。未来的研究将重点探讨如何针对一组慢查询制定最佳的修改方案,以及如何高效地对 RCRank 进行增量训练,以包含新的根因。

最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告