返回
Unveiling Logic Bugs in SPJG Query Optimizations within DBMS
DOI:10.1145/3764583.png)
摘要
En 中文
基于生成的方法的测试技术已被证明在检测DBMS中的逻辑错误方面是有效的,这些错误通常源于查询优化器的不当实现。然而,现有的基于生成的调试工具主要依赖随机测试,这往往忽视了易出错的关键区域,如多表连接和分组聚合。在本文中,我们提出了TQS,一个旨在检测由SPJG(选择-投影-连接-分组)查询优化引起的逻辑错误的测试框架。针对目标DBMS,TQS通过两个关键组件实现目标:数据引导的架构和查询生成(DSG)以及知识引导的查询空间探索(KQE)。DSG解决了多表查询调试的关键挑战:如何生成用于验证的基准(查询,结果)对。DSG利用来自维度聚合数据立方体的数据,这些立方体存储分组度量列的数据。它将数据立方体的数据映射到一个宽表,对宽表应用数据库规范化技术以生成测试架构,并维护一个位图索引以跟踪结果。为提高调试效率,DSG还人为地在生成数据中插入了一些噪声。为避免重复的查询空间搜索,KQE指导易出错立方体的生成,将问题表述为同构图集发现,并结合图嵌入和加权随机游走进行查询生成。我们在四个流行的DBMS上评估了TQS:MySQL、MariaDB、TiDB和PolarDB。实验结果表明,TQS在发现数据库管理系统中的SPJG查询优化的逻辑错误方面是有效的。在24小时内,它成功检测到了226个错误,其中MySQL 63个,MariaDB 52个,TiDB 68个,PolarDB 43个。
Keyword:
Database
logic bug
SPJ query optimizations
期刊
A
IF:
1.7
论文数:
11
被引数:
0
机构
引用论文
暂无论文信息

