WeTune: Automatic Discovery and Verification of Query Rewrite Rules

Zhaoguo Wang,Zhou,Yicun Yang,Haoran Ding,Gansen Hu,Ding,Chuzhe Tang,Haibo Chen,Jinyang Li
DOI: https://doi.org/10.1145/3514221.3526125
2022-01-01
Abstract:Query rewriting transforms a relational database query into an equivalent but more efficient one, which is crucial for the performance of database-backed applications. Such rewriting relies on pre-specified rewrite rules. In existing systems, these rewrite rules are discovered through manual insights and accumulate slowly over the years. In this paper, we present WETUNE, a rule generator that automatically discovers new rewrite rules. Inspired by compiler super-optimization, WETUNE enumerates all valid logical query plans up to a certain size and tries to discover equivalent plans that could potentially lead to more efficient rewrites. The core challenge is to determine which set of conditions (aka constraints) allows one to prove the equivalence between a pair of query plans. We address this challenge by enumerating combinations of "interesting" constraints that relate tables and their attributes between each pair of queries. We also propose a new SMT-based verifier to verify the equivalence of a query pair under different enumerated constraints. To evaluate the usefulness of rewrite rules discovered by WETUNE, we apply them on the SQL queries collected from the 20 most popular open-source web applications on GitHub. WETUNE successfully optimizes 247 queries that existing databases cannot optimize, resulting in substantial performance improvements.
What problem does this paper attempt to address?