US 12,248,454 B2
Scalable index tuning with index filtering and index cost models
Tarique Ashraf Siddiqui, Redmond, WA (US); Vivek Ravindranath Narasayya, Redmond, WA (US); Surajit Chaudhuri, Kirkland, WA (US); and Wentao Wu, Kirkland, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Aug. 29, 2022, as Appl. No. 17/897,930.
Claims priority of provisional application 63/345,307, filed on May 24, 2022.
Prior Publication US 2023/0385261 A1, Nov. 30, 2023
Int. Cl. G06F 16/22 (2019.01); G06F 11/34 (2006.01); G06F 16/2453 (2019.01)
CPC G06F 16/2272 (2019.01) [G06F 11/3419 (2013.01); G06F 16/24542 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method for providing index filtering for an index tuning system, the method comprising:
receiving a plurality of different workloads and a plurality of different databases, each database including different tables and each workload including a plurality of queries;
generating labeled training data by making optimizer calls to a query optimizer of a database using query and index configuration pairs from the plurality of databases and the plurality of workloads using the index tuning system;
training an index filter model to identify signals in the labeled training data, the signals being indicative of a potential performance improvement associated with using an index configuration for a given query;
learning rules based on the signals for identifying spurious indexes using the index filter model which enable the index filter model to identify the spurious indexes without having to make optimizer calls;
storing the index filter model in a memory;
using the index filter model to identify spurious indexes in a group of syntactically relevant indexes which have been selected for a workload without making optimizer calls to evaluate the group of syntactically relevant indexes; and
removing the identified spurious indexes from the group of syntactically relevant indexes so the spurious indexes are not used in index configurations during an index tuning process.