{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,11]],"date-time":"2026-01-11T04:32:52Z","timestamp":1768105972656,"version":"3.49.0"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"10","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2018,6]]},"abstract":"<jats:p>\n            Query performance regression due to the query optimizer selecting a bad query execution plan is a major pain point in production workloads. Commercial DBMSs today can automatically detect and correct such query plan regressions by storing previously-executed plans and reverting to a previous plan which is still valid and has the least execution cost. Such reversion-based plan correction has relatively low risk of plan regression since the decision is based on observed execution costs. However, this approach ignores potentially valuable information of efficient\n            <jats:italic>subplans<\/jats:italic>\n            collected from\n            <jats:italic>other<\/jats:italic>\n            previously-executed plans. In this paper, we propose a novel technique, Plan Stitch, that automatically and opportunistically combines efficient subplans of previously-executed plans into a valid new plan, which can be cheaper than any individual previously-executed plan. We implement Plan Stitch on top of Microsoft SQL Server. Our experiments on TPC-DS benchmark and three real-world customer workloads show that plans obtained via Plan Stitch can reduce execution cost significantly, with a reduction of up to two orders of magnitude in execution cost when compared to reverting to the cheapest previously-executed plan.\n          <\/jats:p>","DOI":"10.14778\/3231751.3231761","type":"journal-article","created":{"date-parts":[[2018,7,27]],"date-time":"2018-07-27T12:21:07Z","timestamp":1532694067000},"page":"1123-1136","source":"Crossref","is-referenced-by-count":16,"title":["Plan stitch"],"prefix":"10.14778","volume":"11","author":[{"given":"Bailu","family":"Ding","sequence":"first","affiliation":[{"name":"Microsoft Research"}]},{"given":"Sudipto","family":"Das","sequence":"additional","affiliation":[{"name":"Microsoft Research"}]},{"given":"Wentao","family":"Wu","sequence":"additional","affiliation":[{"name":"Microsoft Research"}]},{"given":"Surajit","family":"Chaudhuri","sequence":"additional","affiliation":[{"name":"Microsoft Research"}]},{"given":"Vivek","family":"Narasayya","sequence":"additional","affiliation":[{"name":"Microsoft Research"}]}],"member":"320","published-online":{"date-parts":[[2018,6]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/304182.304198"},{"key":"e_1_2_1_2_1","unstructured":"Access Plan in IBM DB2. https:\/\/www.ibm.com\/support\/knowledgecenter\/en\/SSEPGG_11.1.0\/com.ibm.db2.luw.admin.explain.doc\/doc\/c0021356.html.  Access Plan in IBM DB2. https:\/\/www.ibm.com\/support\/knowledgecenter\/en\/SSEPGG_11.1.0\/com.ibm.db2.luw.admin.explain.doc\/doc\/c0021356.html."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2012.64"},{"key":"e_1_2_1_4_1","unstructured":"APPLY Operator in Microsoft SQL Server. https:\/\/social.technet.microsoft.com\/wiki\/contents\/articles\/6525.apply-operator-in-sql-server.aspx.  APPLY Operator in Microsoft SQL Server. https:\/\/social.technet.microsoft.com\/wiki\/contents\/articles\/6525.apply-operator-in-sql-server.aspx."},{"key":"e_1_2_1_5_1","unstructured":"Automatic Plan Correction in Microsoft SQL Server 2017 and Azure SQL Database. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/automatic-tuning\/automatic-tuning.  Automatic Plan Correction in Microsoft SQL Server 2017 and Azure SQL Database. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/automatic-tuning\/automatic-tuning."},{"key":"e_1_2_1_6_1","unstructured":"SQL Plan Management with Oracle Database 12c. http:\/\/www.oracle.com\/technetwork\/database\/bi-datawarehousing\/twp-sql-plan-mgmt-12c-1963237.pdf.  SQL Plan Management with Oracle Database 12c. http:\/\/www.oracle.com\/technetwork\/database\/bi-datawarehousing\/twp-sql-plan-mgmt-12c-1963237.pdf."},{"key":"e_1_2_1_7_1","unstructured":"Automatic Statistics Update in Microsoft SQL Server. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/statistics\/statistics.  Automatic Statistics Update in Microsoft SQL Server. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/statistics\/statistics."},{"key":"e_1_2_1_8_1","unstructured":"Automatic Index Tuning in Azure SQL Database. https:\/\/blogs.msdn.microsoft.com\/sqlserverstorageengine\/2017\/05\/16\/automatic-index-management-in-azure-sql-db\/.  Automatic Index Tuning in Azure SQL Database. https:\/\/blogs.msdn.microsoft.com\/sqlserverstorageengine\/2017\/05\/16\/automatic-index-management-in-azure-sql-db\/."},{"key":"e_1_2_1_9_1","unstructured":"Azure SQL Database. https:\/\/azure.microsoft.com\/en-us\/services\/sql-database\/.  Azure SQL Database. https:\/\/azure.microsoft.com\/en-us\/services\/sql-database\/."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1066157.1066172"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/564691.564722"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1066157.1066184"},{"key":"e_1_2_1_13_1","first-page":"499","volume-title":"Proceedings of the 32nd International Conference on Very Large Data Bases","author":"Bruno N.","year":"2006","unstructured":"N. Bruno and S. Chaudhuri . To Tune or Not to Tune?: A Lightweight Physical Design Alerter . In Proceedings of the 32nd International Conference on Very Large Data Bases , pages 499 -- 510 , 2006 . N. Bruno and S. Chaudhuri. To Tune or Not to Tune?: A Lightweight Physical Design Alerter. In Proceedings of the 32nd International Conference on Very Large Data Bases, pages 499--510, 2006."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/376284.375686"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2009.68"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.14778\/1453856.1453977"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/191839.191874"},{"key":"e_1_2_1_18_1","unstructured":"Creating and deploying optimization hints for SQL statements that run on DB2 for z\/OS. https:\/\/www.ibm.com\/support\/knowledgecenter\/SS7LB8_4.1.0\/com.ibm.datatools.qrytune.sngqry.doc\/topics\/reviewingvph.html.  Creating and deploying optimization hints for SQL statements that run on DB2 for z\/OS. https:\/\/www.ibm.com\/support\/knowledgecenter\/SS7LB8_4.1.0\/com.ibm.datatools.qrytune.sngqry.doc\/topics\/reviewingvph.html."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064040"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2009.130"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/645924.671329"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/1287369.1287386"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/376284.375706"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.5555\/645478.757691"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2013.6544899"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.14778\/1920841.1920984"},{"key":"e_1_2_1_27_1","first-page":"766","volume-title":"Proceedings of the 29th International Conference on Very Large Data Bases","author":"Hulgeri A.","year":"2003","unstructured":"A. Hulgeri and S. Sudarshan . AniPQO: Almost Non-intrusive Parametric Query Optimization for Nonlinear Cost Functions . In Proceedings of the 29th International Conference on Very Large Data Bases , pages 766 -- 777 , 2003 . A. Hulgeri and S. Sudarshan. AniPQO: Almost Non-intrusive Parametric Query Optimization for Nonlinear Cost Functions. In Proceedings of the 29th International Conference on Very Large Data Bases, pages 766--777, 2003."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/s007780050037"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/211414.211419"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1247480.1247502"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.14778\/2850583.2850594"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.14778\/2350229.2350269"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-006-0030-1"},{"key":"e_1_2_1_34_1","unstructured":"Database Performance Tuning Guide - Using Optimizer Hints. https:\/\/docs.oracle.com\/cd\/B19306_01\/server.102\/b14211\/hintsref.htm#i8327.  Database Performance Tuning Guide - Using Optimizer Hints. https:\/\/docs.oracle.com\/cd\/B19306_01\/server.102\/b14211\/hintsref.htm#i8327."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/1325851.1325974"},{"key":"e_1_2_1_36_1","unstructured":"Microsoft SQL Server Plan Guides. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/performance\/plan-guides.  Microsoft SQL Server Plan Guides. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/performance\/plan-guides."},{"key":"e_1_2_1_37_1","unstructured":"Microsoft SQL Server Query Store. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/performance\/monitoring-performance-by-using-the-query-store.  Microsoft SQL Server Query Store. https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/performance\/monitoring-performance-by-using-the-query-store."},{"key":"e_1_2_1_38_1","unstructured":"Microsoft Query Hints. https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/queries\/hints-transact-sql-query.  Microsoft Query Hints. https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/queries\/hints-transact-sql-query."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/342009.335419"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/582095.582099"},{"key":"e_1_2_1_41_1","unstructured":"Statistics XML in Microsoft SQL Server. https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/statements\/set-statistics-xml-transact-sql.  Statistics XML in Microsoft SQL Server. https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/statements\/set-statistics-xml-transact-sql."},{"key":"e_1_2_1_42_1","unstructured":"Showplan XML Schema in Microsoft SQL Server. schemas.microsoft.com\/sqlserver\/2004\/07\/showplan\/.  Showplan XML Schema in Microsoft SQL Server. schemas.microsoft.com\/sqlserver\/2004\/07\/showplan\/."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.5555\/645927.672349"},{"key":"e_1_2_1_44_1","unstructured":"TPC Benchmark DS: Standard Specification v2.6.0. http:\/\/www.tpc.org\/tpcds\/.  TPC Benchmark DS: Standard Specification v2.6.0. http:\/\/www.tpc.org\/tpcds\/."},{"key":"e_1_2_1_45_1","unstructured":"TPC-DS Tools. http:\/\/www.tpc.org\/tpc_documents_current_versions\/current_specifications.asp.  TPC-DS Tools. http:\/\/www.tpc.org\/tpc_documents_current_versions\/current_specifications.asp."},{"key":"e_1_2_1_46_1","unstructured":"Microsoft SQL Server USE PLAN Query Hint. https:\/\/technet.microsoft.com\/en-us\/library\/ms186954(v=sql.105).aspx.  Microsoft SQL Server USE PLAN Query Hint. https:\/\/technet.microsoft.com\/en-us\/library\/ms186954(v=sql.105).aspx."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2882914"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3231751.3231761","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T10:41:30Z","timestamp":1672224090000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3231751.3231761"}},"subtitle":["harnessing the best of many plans"],"short-title":[],"issued":{"date-parts":[[2018,6]]},"references-count":47,"journal-issue":{"issue":"10","published-print":{"date-parts":[[2018,6]]}},"alternative-id":["10.14778\/3231751.3231761"],"URL":"https:\/\/doi.org\/10.14778\/3231751.3231761","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2018,6]]}}}