← Back to Patent Explorer
US5960423A Expired / Lapsed US ⏱️ 0.0 years remaining

Database system index selection using candidate index selection for a workload

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-12-01
•
Granted: 1999-09-28
•
Expires: 2017-12-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An index selection tool helps reduce costs in time and memory in selecting an index configuration or set of indexes for use by a database server in accessing a database in accordance with a workload of queries. The index selection tool attempts to reduce the number of indexes to be considered, the number of index configurations to be enumerated, and the number of invocations of a query optimizer in selecting an index configuration for the workload.

Inventors

  • 👤 Surajit Chaudhuri
  • 👤 Vivek Narasayya

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 11:57
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/22; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99935; Y10S707/99941; Y10S707/99942; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 81 words
A method for determining a set of candidate indexes for a workload of queries to be executed against a database, the method comprising the steps of: (a) selecting an index configuration of one or more indexes for each query of the workload such that the selected index configuration helps optimize execution of the query against the database; and (b) determining the set of candidate indexes for the workload as comprising indexes from each index configuration selected for the selecting step (a).
Claim 2
Independent Claim 81 words
A method for determining a set of candidate indexes for a workload of queries to be executed against a database, the method comprising the steps of: (a) selecting an index configuration of one or more indexes for each query of the workload such that the selected index configuration helps optimize execution of the query against the database; and (b) determining the set of candidate indexes for the workload as comprising indexes from each index configuration selected for the selecting step (a).
Claim 3
Dependent Claim 26 words
The method of claim 1, wherein the index configuration selected for each query for the selecting step (a) comprises at most a predetermined number of indexes.
Claim 4
Dependent Claim 40 words
The method of claim 1, wherein the selecting step (a) comprises the step of selecting for a given query of the workload an index configuration determined to have a least estimated cost for executing the given query against the database.
Claim 5
Dependent Claim 32 words
The method of claim 1, wherein the selecting step (a) selects for each query of the workload one or more index configurations that help optimize execution of the query against the database.
Claim 6
Dependent Claim 60 words
The method of claim 4, wherein the selecting step (a) selects for a given query of the workload an index configuration determined to have a least estimated cost for executing the given query against the database and any other index configurations determined to have for the given query an estimated cost within a predetermined percent of the least estimated cost.
Claim 7
Dependent Claim 13 words
The method of claim 5, wherein the predetermined percent is approximately ten percent.
Claim 8
Dependent Claim 37 words
The method of claim 1, comprising the step of: (c) selecting an index configuration comprising at least one of the candidate indexes for use by a database server to execute queries of the workload against the database.
Claim 9
Dependent Claim 33 words
The method of claim 7, wherein the selecting step (a) is performed by an index configuration enumeration tool, and wherein the selecting step (c) is also performed by the index configuration enumeration tool.
Claim 10
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 1.
Claim 11
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 4.
Claim 12
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 7.
Claim 13
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 8.
Claim 14
Independent Claim 124 words
A method for determining a set of candidate indexes for a workload of queries to be executed against a database, the method comprising the steps of: (a) determining a respective set of one or more indexes for each query of the workload; (b) determining estimated costs to execute each query of the workload against the database for index configurations comprising one or more indexes from the respective set of one or more indexes for the query; (c) selecting one of the index configurations for each query of the workload based on the estimated costs determined for the determining step (b); and (d) determining the set of candidate indexes for the workload as comprising indexes from each index configuration selected for the selecting step (c).
Claim 15
Independent Claim 124 words
A method for determining a set of candidate indexes for a workload of queries to be executed against a database, the method comprising the steps of: (a) determining a respective set of one or more indexes for each query of the workload; (b) determining estimated costs to execute each query of the workload against the database for index configurations comprising one or more indexes from the respective set of one or more indexes for the query; (c) selecting one of the index configurations for each query of the workload based on the estimated costs determined for the determining step (b); and (d) determining the set of candidate indexes for the workload as comprising indexes from each index configuration selected for the selecting step (c).
Claim 16
Dependent Claim 27 words
The method of claim 13, wherein the determining step (a) comprises the step of determining a respective set of one or more indexable columns for each query.
Claim 17
Dependent Claim 50 words
The method of claim 13, wherein the determining step (b) comprises the step of determining estimated costs to execute each query of the workload against the database for index configurations comprising at most a predetermined number of indexes from the respective set of one or more indexes for the query.
Claim 18
Dependent Claim 32 words
The method of claim 13, wherein the selecting step (c) comprises the step of selecting for each query of the workload the index configuration having the least estimated cost for the query.
Claim 19
Dependent Claim 33 words
The method of claim 13, wherein the selecting step (c) selects one or more index configurations for each query of the workload based on the estimated costs determined for the determining step (b).
Claim 20
Dependent Claim 56 words
The method of claim 17, wherein the selecting step (c) selects for a given query of the workload an index configuration determined to have a least estimated cost for the given query and any other index configurations determined to have for the given query an estimated cost within a predetermined percent of the least estimated cost.
Claim 21
Dependent Claim 13 words
The method of claim 18, wherein the predetermined percent is approximately ten percent.
Claim 22
Dependent Claim 120 words
The method of claim 13, wherein the determining step (b) comprises the steps of: (i) determining one or more atomic index configurations for a given query of the workload, (ii) determining an estimated cost to execute the given query against the database for each determined atomic index configuration using a query optimizer of a database server that is to execute the given query against the database, and (iii) determining an estimated cost to execute the given query against the database for an index configuration comprising one or more indexes from the respective set of one or more indexes for the given query based on the estimated cost for each determined atomic index configuration as determined for the determining step (b)(ii).
Claim 23
Dependent Claim 76 words
The method of claim 13, comprising the steps of: (e) determining estimated costs to execute each query of the workload against the database for index configurations comprising at least one of the candidate indexes; and (f) selecting, based on the estimated costs determined for the determining step (e), one of the index configurations comprising at least one of the candidate indexes for use by a database server to execute queries of the workload against the database.
Claim 24
Dependent Claim 43 words
The method of claim 21, wherein the determining step (b) and the selecting step (c) are performed by an index configuration enumeration tool, and wherein the determining step (e) and the selecting step (f) are also performed by the index configuration enumeration tool.
Claim 25
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 13.
Claim 26
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 17.
Claim 27
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 21.
Claim 28
Dependent Claim 14 words
A computer readable medium having computer-executable instructions for performing the steps of claim 22.

References Cited (Backward Citations)

US5544355A Cited
US5822749A Cited
US5806057A Cited
US5644763A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-09-27 2003-03-29 2003-09-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-09-27 2007-03-29 2007-09-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-09-27 2011-03-29 2011-09-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag