{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,7]],"date-time":"2026-03-07T18:00:22Z","timestamp":1772906422218,"version":"3.50.1"},"reference-count":56,"publisher":"Association for Computing Machinery (ACM)","issue":"11","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2023,7]]},"abstract":"<jats:p>SQL query performance is critical in database applications, and query rewriting is a technique that transforms an original query into an equivalent query with a better performance. In a wide range of database-supported systems, there is a unique problem where both the application and database layer are black boxes, and the developers need to use their knowledge about the data and domain to rewrite queries sent from the application to the database for better performance. Unfortunately, existing solutions do not give the users enough freedom to express their rewriting needs. To address this problem, we propose QueryBooster, a novel middleware-based service architecture for human-centered query rewriting, where users can use its expressive and easy-to-use rule language (called VarSQL) to formulate rewriting rules based on their needs. It also allows users to express rewriting intentions by providing examples of the original query and its rewritten query. QueryBooster automatically generalizes them to rewriting rules and suggests high-quality ones. We conduct a user study to show the benefits of VarSQL to formulate rewriting rules. Our experiments on real and synthetic workloads show the effectiveness of the rule-suggesting framework and the significant advantages of using QueryBooster for human-centered query rewriting to improve the end-to-end query performance.<\/jats:p>","DOI":"10.14778\/3611479.3611497","type":"journal-article","created":{"date-parts":[[2023,8,25]],"date-time":"2023-08-25T02:08:08Z","timestamp":1692929288000},"page":"2911-2924","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["QueryBooster: Improving SQL Performance Using Middleware Services for Human-Centered Query Rewriting"],"prefix":"10.14778","volume":"16","author":[{"given":"Qiushi","family":"Bai","sequence":"first","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Sadeem","family":"Alsudais","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Chen","family":"Li","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]}],"member":"320","published-online":{"date-parts":[[2023,8,24]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"APACHE AsterixDB [n.d.]. http:\/\/asterixdb.apache.org. last accessed: 7-19-2023.  APACHE AsterixDB [n.d.]. http:\/\/asterixdb.apache.org. last accessed: 7-19-2023."},{"key":"e_1_2_1_2_1","unstructured":"Apache Calcite [n.d.]. https:\/\/calcite.apache.org\/. last accessed: 7-19-2023.  Apache Calcite [n.d.]. https:\/\/calcite.apache.org\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_3_1","unstructured":"Apache Superset(incubating) - Apache Superset documentation. 2018. https:\/\/superset.incubator.apache.org\/. last accessed: 7-19-2023.  Apache Superset(incubating) - Apache Superset documentation. 2018. https:\/\/superset.incubator.apache.org\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_4_1","unstructured":"ApexSQL: SQL execution plan viewing and analysis [n.d.]. https:\/\/www.apexsql.com\/sql-tools-plan.aspx. last accessed: 7-19-2023.  ApexSQL: SQL execution plan viewing and analysis [n.d.]. https:\/\/www.apexsql.com\/sql-tools-plan.aspx. last accessed: 7-19-2023."},{"key":"e_1_2_1_5_1","volume-title":"Proceedings of the Workshops of the EDBT\/ICDT 2022 Joint Conference, Edinburgh, UK, March 29, 2022 (CEUR Workshop Proceedings), Maya Ramanath and Themis Palpanas (Eds.)","volume":"3135","author":"Bai Qiushi","year":"2022","unstructured":"Qiushi Bai , Sadeem Alsudais , and Chen Li . 2022 . Demo of VisBooster: Accelerating Tableau Live Mode Queries Up to 100 Times Faster . In Proceedings of the Workshops of the EDBT\/ICDT 2022 Joint Conference, Edinburgh, UK, March 29, 2022 (CEUR Workshop Proceedings), Maya Ramanath and Themis Palpanas (Eds.) , Vol. 3135 . CEUR-WS.org. http:\/\/ceur-ws.org\/Vol-3135\/bigvis_short5.pdf Qiushi Bai, Sadeem Alsudais, and Chen Li. 2022. Demo of VisBooster: Accelerating Tableau Live Mode Queries Up to 100 Times Faster. In Proceedings of the Workshops of the EDBT\/ICDT 2022 Joint Conference, Edinburgh, UK, March 29, 2022 (CEUR Workshop Proceedings), Maya Ramanath and Themis Palpanas (Eds.), Vol. 3135. CEUR-WS.org. http:\/\/ceur-ws.org\/Vol-3135\/bigvis_short5.pdf"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.48786\/edbt.2023.13"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2063576.2063763"},{"key":"e_1_2_1_8_1","unstructured":"Calcite Test Suite [n.d.]. https:\/\/github.com\/georgia-tech-db\/spes\/blob\/main\/testData\/calcite_tests.json. last accessed: 7-19-2023.  Calcite Test Suite [n.d.]. https:\/\/github.com\/georgia-tech-db\/spes\/blob\/main\/testData\/calcite_tests.json. last accessed: 7-19-2023."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/233269.233356"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.14778\/3236187.3236200"},{"key":"e_1_2_1_11_1","unstructured":"Comby is a tool for searching and changing code structure [n.d.]. https:\/\/comby.dev\/. last accessed: 7-19-2023.  Comby is a tool for searching and changing code structure [n.d.]. https:\/\/comby.dev\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.14778\/3352063.3352120"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.1995.380391"},{"key":"e_1_2_1_14_1","unstructured":"Dexter: The automatic indexer for Postgres [n.d.]. https:\/\/github.com\/ankane\/dexter. last accessed: 7-19-2023.  Dexter: The automatic indexer for Postgres [n.d.]. https:\/\/github.com\/ankane\/dexter. last accessed: 7-19-2023."},{"key":"e_1_2_1_15_1","unstructured":"EverSQL: Automatic SQL Query Optimization for MySQL and PostgreSQL [n.d.]. https:\/\/www.eversql.com\/. last accessed: 7-19-2023.  EverSQL: Automatic SQL Query Optimization for MySQL and PostgreSQL [n.d.]. https:\/\/www.eversql.com\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.1991.131472"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1021560618289"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/38713.38734"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.14778\/3231751.3231766"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3299869.3320211"},{"key":"e_1_2_1_21_1","unstructured":"IBM DB2 11.5: Query rewriting methods and examples [n.d.]. https:\/\/www.ibm.com\/docs\/en\/db2\/11.5?topic=process-query-rewriting-methods-examples. last accessed: 7-19-2023.  IBM DB2 11.5: Query rewriting methods and examples [n.d.]. https:\/\/www.ibm.com\/docs\/en\/db2\/11.5?topic=process-query-rewriting-methods-examples. last accessed: 7-19-2023."},{"key":"e_1_2_1_22_1","unstructured":"Jinyuan Zhang and Yicun Yang. 2023. https:\/\/ipads.se.sjtu.edu.cn\/werewriter-demo\/home. last accessed: 7-19-2023.  Jinyuan Zhang and Yicun Yang. 2023. https:\/\/ipads.se.sjtu.edu.cn\/werewriter-demo\/home. last accessed: 7-19-2023."},{"key":"e_1_2_1_23_1","volume-title":"Data Learning and Warehouse Optimization [n.d.]","author":"Keebo","unstructured":"Keebo : Data Learning and Warehouse Optimization [n.d.] . Keebo : Data Learning and Warehouse Optimization . https:\/\/keebo.ai\/. Keebo: Data Learning and Warehouse Optimization [n.d.]. Keebo: Data Learning and Warehouse Optimization. https:\/\/keebo.ai\/."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3448016.3457252"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-021-00676-3"},{"key":"e_1_2_1_26_1","unstructured":"Kyle Lahnakoski. 2023. https:\/\/github.com\/klahnakoski\/mo-sql-parsing. last accessed: 7-19-2023.  Kyle Lahnakoski. 2023. https:\/\/github.com\/klahnakoski\/mo-sql-parsing. last accessed: 7-19-2023."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3448016.3452838"},{"key":"e_1_2_1_28_1","unstructured":"MongoDB 5.0: Query documents [n.d.]. https:\/\/www.mongodb.com\/docs\/manual\/tutorial\/query-documents\/. last accessed: 7-19-2023.  MongoDB 5.0: Query documents [n.d.]. https:\/\/www.mongodb.com\/docs\/manual\/tutorial\/query-documents\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_29_1","unstructured":"MySQL 8.0: 5.6.4.2 Using the Rewriter Query Rewrite Plugin [n.d.]. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/rewriter-query-rewrite-plugin-usage.html. last accessed: 7-19-2023.  MySQL 8.0: 5.6.4.2 Using the Rewriter Query Rewrite Plugin [n.d.]. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/rewriter-query-rewrite-plugin-usage.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_30_1","unstructured":"Oracle Free Use Terms and Conditions [n.d.]. https:\/\/www.oracle.com\/downloads\/licenses\/oracle-free-license.html. last accessed: 7-19-2023.  Oracle Free Use Terms and Conditions [n.d.]. https:\/\/www.oracle.com\/downloads\/licenses\/oracle-free-license.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_31_1","unstructured":"Oracle R19: 11 Basic Query Rewrite for Materialized Views [n.d.]. https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/19\/dwhsg\/basic-query-rewrite-materialized-views.html. last accessed: 7-19-2023.  Oracle R19: 11 Basic Query Rewrite for Materialized Views [n.d.]. https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/19\/dwhsg\/basic-query-rewrite-materialized-views.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158101"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/130283.130294"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.1997.581945"},{"key":"e_1_2_1_35_1","unstructured":"PostgreSQL 14: CREATE RULE --- define a new rewrite rule [n.d.]. https:\/\/www.postgresql.org\/docs\/14\/sql-createrule.html. last accessed: 7-19-2023.  PostgreSQL 14: CREATE RULE --- define a new rewrite rule [n.d.]. https:\/\/www.postgresql.org\/docs\/14\/sql-createrule.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_36_1","unstructured":"PostgreSQL 14 Documentation: 41.2. Views and the Rule System [n.d.]. https:\/\/www.postgresql.org\/docs\/current\/rules-views.html. last accessed: 7-19-2023.  PostgreSQL 14 Documentation: 41.2. Views and the Rule System [n.d.]. https:\/\/www.postgresql.org\/docs\/current\/rules-views.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_37_1","unstructured":"PostgreSQL 14: Trigram index [n.d.]. https:\/\/www.postgresql.org\/docs\/current\/pgtrgm.html. last accessed: 7-19-2023.  PostgreSQL 14: Trigram index [n.d.]. https:\/\/www.postgresql.org\/docs\/current\/pgtrgm.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_38_1","unstructured":"Query Performance Insight for Azure SQL Database [n.d.]. https:\/\/docs.microsoft.com\/en-us\/azure\/azure-sql\/database\/query-performance-insight-use?view=azuresql. last accessed: 7-19-2023.  Query Performance Insight for Azure SQL Database [n.d.]. https:\/\/docs.microsoft.com\/en-us\/azure\/azure-sql\/database\/query-performance-insight-use?view=azuresql. last accessed: 7-19-2023."},{"key":"e_1_2_1_39_1","unstructured":"Query Rewrite and Optimization [n.d.]. https:\/\/docs.teradata.com\/r\/8mHBBLGP88~HK9Auie2QvQ\/4PC2qalhztpNrpq9R~zpDw. last accessed: 7-19-2023.  Query Rewrite and Optimization [n.d.]. https:\/\/docs.teradata.com\/r\/8mHBBLGP88~HK9Auie2QvQ\/4PC2qalhztpNrpq9R~zpDw. last accessed: 7-19-2023."},{"key":"e_1_2_1_40_1","volume-title":"VLDB 2001, Proceedings of 27th International Conference on Very Large Data Bases, September 11--14, 2001","author":"Raman Vijayshankar","year":"2001","unstructured":"Vijayshankar Raman and Joseph M. Hellerstein . 2001. Potter's Wheel: An Interactive Data Cleaning System . In VLDB 2001, Proceedings of 27th International Conference on Very Large Data Bases, September 11--14, 2001 , Roma, Italy, Peter M. G. Apers, Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Kotagiri Ramamohanarao, and Richard T. Snodgrass (Eds.). Morgan Kaufmann, 381--390. http:\/\/www.vldb.org\/conf\/ 2001 \/P381.pdf Vijayshankar Raman and Joseph M. Hellerstein. 2001. Potter's Wheel: An Interactive Data Cleaning System. In VLDB 2001, Proceedings of 27th International Conference on Very Large Data Bases, September 11--14, 2001, Roma, Italy, Peter M. G. Apers, Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Kotagiri Ramamohanarao, and Richard T. Snodgrass (Eds.). Morgan Kaufmann, 381--390. http:\/\/www.vldb.org\/conf\/2001\/P381.pdf"},{"key":"e_1_2_1_41_1","unstructured":"Re: How to use index in strpos function [n.d.]. https:\/\/www.postgresql.org\/message-id\/046801c96b06%242cb14280%248613c780%24%40r%40sbcglobal.net. last accessed: 7-19-2023.  Re: How to use index in strpos function [n.d.]. https:\/\/www.postgresql.org\/message-id\/046801c96b06%242cb14280%248613c780%24%40r%40sbcglobal.net. last accessed: 7-19-2023."},{"key":"e_1_2_1_42_1","unstructured":"regular expressions 101 [n.d.]. https:\/\/regex101.com\/. last accessed: 7-19-2023.  regular expressions 101 [n.d.]. https:\/\/regex101.com\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1016\/0005-1098(78)90005-5"},{"key":"e_1_2_1_44_1","volume-title":"Artificial Intelligence: A Modern Approach","author":"Russell Stuart","year":"2020","unstructured":"Stuart Russell and Peter Norvig . 2020 . Artificial Intelligence: A Modern Approach ( 4 th Edition). Pearson . http:\/\/aima.cs.berkeley.edu\/ Stuart Russell and Peter Norvig. 2020. Artificial Intelligence: A Modern Approach (4th Edition). Pearson. http:\/\/aima.cs.berkeley.edu\/","edition":"4"},{"key":"e_1_2_1_45_1","unstructured":"SAP HANA Performance Guide for Developers [n.d.]. https:\/\/help.sap.com\/doc\/05b8cb60dfd94c82b86828ee77f7e0d9\/2.0.04\/en-US\/SAP_HANA_Performance_Developer_Guide_en.pdf. last accessed: 7-19-2023.  SAP HANA Performance Guide for Developers [n.d.]. https:\/\/help.sap.com\/doc\/05b8cb60dfd94c82b86828ee77f7e0d9\/2.0.04\/en-US\/SAP_HANA_Performance_Developer_Guide_en.pdf. last accessed: 7-19-2023."},{"key":"e_1_2_1_46_1","unstructured":"Scala: Quasiquotes Introduction [n.d.]. https:\/\/docs.scala-lang.org\/overviews\/quasiquotes\/intro.html. last accessed: 7-19-2023.  Scala: Quasiquotes Introduction [n.d.]. https:\/\/docs.scala-lang.org\/overviews\/quasiquotes\/intro.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.1990.113464"},{"key":"e_1_2_1_48_1","unstructured":"Snowflake documentation [n.d.]. https:\/\/docs.snowflake.com\/en\/index.html. last accessed: 7-19-2023.  Snowflake documentation [n.d.]. https:\/\/docs.snowflake.com\/en\/index.html. last accessed: 7-19-2023."},{"key":"e_1_2_1_49_1","unstructured":"Software is fragile [n.d.]. https:\/\/www.softwareheritage.org\/mission\/software-is-fragile\/. last accessed: 7-19-2023.  Software is fragile [n.d.]. https:\/\/www.softwareheritage.org\/mission\/software-is-fragile\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_50_1","unstructured":"SQL Server 2019: SQL Server technical documentation [n.d.]. https:\/\/docs.microsoft.com\/en-us\/sql\/sql-server\/?view=sql-server-ver15. last accessed: 7-19-2023.  SQL Server 2019: SQL Server technical documentation [n.d.]. https:\/\/docs.microsoft.com\/en-us\/sql\/sql-server\/?view=sql-server-ver15. last accessed: 7-19-2023."},{"key":"e_1_2_1_51_1","unstructured":"Tableau [n.d.]. https:\/\/www.tableau.com\/. last accessed: 7-19-2023.  Tableau [n.d.]. https:\/\/www.tableau.com\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_52_1","unstructured":"Toad: Develop analyze and administer databases with Toad [n.d.]. https:\/\/www.toadworld.com\/products. last accessed: 7-19-2023.  Toad: Develop analyze and administer databases with Toad [n.d.]. https:\/\/www.toadworld.com\/products. last accessed: 7-19-2023."},{"key":"e_1_2_1_53_1","unstructured":"TPC-H Website [n.d.]. http:\/\/www.tpc.org\/tpch\/. last accessed: 7-19-2023.  TPC-H Website [n.d.]. http:\/\/www.tpc.org\/tpch\/. last accessed: 7-19-2023."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3514221.3526125"},{"key":"e_1_2_1_55_1","unstructured":"Wiki: Regular expression [n.d.]. https:\/\/en.wikipedia.org\/wiki\/Regular_expression. last accessed: 7-19-2023.  Wiki: Regular expression [n.d.]. https:\/\/en.wikipedia.org\/wiki\/Regular_expression. last accessed: 7-19-2023."},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.14778\/3485450.3485456"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3611479.3611497","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,23]],"date-time":"2023-09-23T22:14:09Z","timestamp":1695507249000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3611479.3611497"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7]]},"references-count":56,"journal-issue":{"issue":"11","published-print":{"date-parts":[[2023,7]]}},"alternative-id":["10.14778\/3611479.3611497"],"URL":"https:\/\/doi.org\/10.14778\/3611479.3611497","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2023,7]]},"assertion":[{"value":"2023-08-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}