Patent US5404510A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5404510A Expired / Lapsed US ⏱️ 0.0 years remaining

Database index design based upon request importance and the reuse and modification of similar existing indexes

Assignee: Oracle International Corp
•
Filing: 1992-05-21
•
Granted: 1995-04-04
•
Expires: 2012-05-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Design of indexes in a relational database management system is based on a workload analysis of all requests in a system. Each request is assigned a value of importance, and requests are broken into expressions, contexts and columns to facilitate identification of candidate indexes. Candidate indexes are compared to existing indexes to determine whether the existing indexes can be reused or modified. Candidate indexes are classified as hashed or sorted. Based on the index design, record placement is selected to be hashed, sorted or by default. Related indexes and tables are clustered and the clusters are sized to fit file areas. Cache buffers are also defined.

Inventors

  • 👤 Gregory S. Smith
  • 👤 Sangam Pant

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 20:50
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/284; G06F16/285; Y; Y10; Y10S; Y10S706/00; Y10S706/902; Y10S706/934; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99935

Claims Analysis

Total Claims: 59
Claim 1
Independent Claim 92 words
For a database having plural tables, each of plural columns, stored in memory, a processor controlled method of generating indexes comprising: identifying importance values for individual database requests; and designing indexes to tables for the requests by identifying, by order of request importance, candidate indexes for requests, searching previously identified indexes for an index that is similar to each candidate index, and building upon previously identified indexes by reusing existing indexes and modifying existing indexes based upon match between indexes and upon importance values of requests for which the indexes are created.
Claim 2
Dependent Claim 92 words
For a database having plural tables, each of plural columns, stored in memory, a processor controlled method of generating indexes comprising: identifying importance values for individual database requests; and designing indexes to tables for the requests by identifying, by order of request importance, candidate indexes for requests, searching previously identified indexes for an index that is similar to each candidate index, and building upon previously identified indexes by reusing existing indexes and modifying existing indexes based upon match between indexes and upon importance values of requests for which the indexes are created.
Claim 3
Dependent Claim 53 words
A method as claimed in claim 1 wherein the importance value of a request is identified from expected frequency of processing and from individual importances of the request, a transaction which includes the request and a program which includes the transaction, with greater weighting toward transaction importance and greatest weighting toward program importance.
Claim 4
Dependent Claim 38 words
A method as claimed in claim 1 further comprising the steps of: identifying columns and associated operators for individual table contexts within each expression of each request; and identifying candidate indexes from the identified columns for individual contexts.
Claim 5
Dependent Claim 109 words
A method as claimed in claim 3 wherein the candidate indexes are ordered by request value of importance, the method further comprising, with identification of each candidate index, searching previously identified indexes for an existing index that is similar to the candidate index and choosing from the steps of a) creating a new index, b) reusing the best existing index and c) modifying the best existing index to satisfy the context of the candidate index, choice of steps a, b and c being dependent on match between the candidate index and the best existing index and the value of importance of the requests for which the indexes are identified.
Claim 6
Dependent Claim 34 words
A method as claimed in claim 4 wherein a best existing index is determined as a function of match of columns and keys of indexes, with greater weight being given toward match of keys.
Claim 7
Dependent Claim 31 words
A method as claimed in claim 4 wherein a candidate index is chosen only where the database management system uses indexes for the operators and data types of a respective context.
Claim 8
Dependent Claim 23 words
A method as claimed in claim 4 wherein a candidate index is identified only where the table of the context has sufficient cardinality.
Claim 9
Dependent Claim 23 words
A method as claimed in claim 4 wherein a candidate index is selected only where a column size is above a threshold size.
Claim 10
Dependent Claim 36 words
A method as claimed in claim 4 wherein the best existing index is reused for a candidate index if both indexes are hashed, both indexes have the same number of columns and all the columns match.
Claim 11
Dependent Claim 41 words
A method as claimed in claim 4 wherein the best existing index is reused if the best existing index is sorted, the candidate index is hashed, both indexes have the same number of columns and all the columns match in identity.
Claim 12
Dependent Claim 37 words
A method as claimed in claim 4 wherein the best existing index is reused if both indexes are sorted, both indexes have the same number of columns and all the columns match in identity and in position.
Claim 13
Dependent Claim 55 words
A method as claimed in claim 4 wherein the best existing index is reused if the best index is sorted, the candidate index is either hash or sorted, the best existing index has more columns and the columns of the candidate index match, in identity and in position, leading segments of the best existing index.
Claim 14
Dependent Claim 61 words
A method as claimed in claim 4 wherein the best existing index is changed to the candidate index if the best existing index is hash, the candidate index is sorted, the indexes have the same number of columns, the columns match in identity, and if importance of the candidate index exceeds a threshold relative to importance of the best existing index.
Claim 15
Dependent Claim 79 words
A method as claimed in claim 4 wherein the best existing index is changed to include the candidate index if the best existing index is hash, the candidate index is either hash or sorted, the best existing index has a lesser number of columns, all the columns of the best existing index match in identity to columns of the candidate index and the importance of the candidate index exceeds a threshold relative to importance of the best existing index.
Claim 16
Dependent Claim 82 words
A method as claimed in claim 4 wherein the best existing index is changed to the order and type of the candidate index if the best existing index is hash, the candidate index is either hash or sorted, the best existing index has more columns, all columns of the candidate index match in identity to columns of the best existing index and the importance of the candidate index is greater than a threshold relative to the importance of the best existing index.
Claim 17
Dependent Claim 76 words
A method as claimed in claim 4 wherein the best existing index is changed to the candidate index if the best existing index is sorted, the candidate index is either hash or sorted, the best existing index has a lesser number of columns, the columns of the best existing index match in identity and position, and the importance of the candidate index is greater than a threshold relative to the importance of the best existing index.
Claim 18
Dependent Claim 45 words
A method as claimed in claim 4 wherein the best existing index is reused if only some of the columns between the indexes match and the importance of the candidate index is less than a threshold relative to the importance of the best existing index.
Claim 19
Dependent Claim 20 words
A method as claimed in claim 1 further comprising the step of identifying index retrieval modes based on context operators.
Claim 20
Dependent Claim 29 words
A method as claimed in claim 18 wherein indexes are reused and modified as a function of importance and retrieval mode of an existing index and a candidate index.
Claim 21
Dependent Claim 38 words
A method as claimed in claim 1 further comprising the step of pruning indexes where a benefit of an index is determined to be less than a cost of the index in operation of the database management system.
Claim 22
Dependent Claim 38 words
A method as claimed in claim 20 wherein benefits are derived from importance of requests for which the index is identified and cost is derived from the importance of requests which result in changes to the indexed table.
Claim 23
Dependent Claim 23 words
A method as claimed in claim 21 wherein cost is derived from the importance of insert and delete requests on the indexed table.
Claim 24
Dependent Claim 20 words
A method as claimed in claim 21 wherein cost is derived from the importance of update requests on indexed columns.
Claim 25
Dependent Claim 20 words
A method as claimed in claim 1 further comprising the step of adding columns to indexes for index only retrieval.
Claim 26
Dependent Claim 26 words
A method as claimed in claim 1 further comprising the step of adding columns to indexes where the cardinality of the index is below a threshold.
Claim 27
Dependent Claim 39 words
A method as claimed in claim 1 further comprising the step of establishing hashed or sorted record placement strategy within selected tables dependent on importance and retrieval mode of indexes to the table and data types within the table.
Claim 28
Dependent Claim 19 words
A method as claimed in claim 26 further comprising establishing record placement strategy as a function of table volatility.
Claim 29
Dependent Claim 19 words
A method as claimed in claim 1 further comprising the step of establishing cluster groups including tables and indexes.
Claim 30
Dependent Claim 35 words
A method as claimed in claim 28 further comprising clustering together tables and hashed indexes where the tables are placed via the hashed indexes and the tables are joined using columns in the hashed indexes.
Claim 31
Dependent Claim 23 words
A method as claimed in claim 28 comprising clustering together tables and hashed indexes where the tables are placed via the hashed indexes.
Claim 32
Dependent Claim 26 words
A method as claimed in claim 28 further comprising assigning clusters to a plurality of devices as a function of importance of data within the clusters.
Claim 33
Independent Claim 136 words
A method of physically designing a database having plural tables, each of plural columns, the method comprising: A) identifying an absolute importance value for each database request based on the individual importance of the request, a transaction which includes the request and the program which includes the transaction, with greater weighting toward transaction importance and with greatest weighting toward program importance; B) in a table index design: 1. by order of request importance, identifying candidate indexes from the identified columns for individual contexts where: a. operator type of an associated operator is such that the database management system uses an index, b. column size is less than a threshold size, and c. column data type is permissible in an index; 2. identifying candidate index retrieval modes, including by sorting and hash, as a function of operator;
Claim 34
Independent Claim 136 words
A method of physically designing a database having plural tables, each of plural columns, the method comprising: A) identifying an absolute importance value for each database request based on the individual importance of the request, a transaction which includes the request and the program which includes the transaction, with greater weighting toward transaction importance and with greatest weighting toward program importance; B) in a table index design: 1. by order of request importance, identifying candidate indexes from the identified columns for individual contexts where: a. operator type of an associated operator is such that the database management system uses an index, b. column size is less than a threshold size, and c. column data type is permissible in an index; 2. identifying candidate index retrieval modes, including by sorting and hash, as a function of operator;
Claim 35
Dependent Claim 165 words
with identification of each candidate index, searching previously identified indexes for a best existing index that is similar to the candidate index and, where no best existing index is located, creating a new existing index from the candidate index and, where a best existing index is located, choosing from the steps of a) creating a new index, b) revising the best existing index and c) modifying the best existing index to satisfy the context of the candidate index, choice of steps a, b and c being dependent on importance of and retrieval mode of the candidate index and the best existing index, importance of an index being derived from absolute importance of requests for which the index is identified; and 4. pruning indexes where benefit of an index, derived from importance of the requests for which the index is identified, is less than cost of the index, derived from importance of insert and delete requests on the indexed table and update requests on indexed columns.
Claim 36
Dependent Claim 165 words
with identification of each candidate index, searching previously identified indexes for a best existing index that is similar to the candidate index and, where no best existing index is located, creating a new existing index from the candidate index and, where a best existing index is located, choosing from the steps of a) creating a new index, b) revising the best existing index and c) modifying the best existing index to satisfy the context of the candidate index, choice of steps a, b and c being dependent on importance of and retrieval mode of the candidate index and the best existing index, importance of an index being derived from absolute importance of requests for which the index is identified; and 4. pruning indexes where benefit of an index, derived from importance of the requests for which the index is identified, is less than cost of the index, derived from importance of insert and delete requests on the indexed table and update requests on indexed columns.
Claim 37
Independent Claim 506 words
A method of physically designing a database having plural tables, each of plural columns, the method comprising: A) identifying an absolute importance value for each database request based on the individual importance of the request, a transaction which includes the request and the program which includes the transaction, with greater weighting toward transaction importance and with greatest weighting toward program importance; B) in a table index design: 1. by order of request importance, identifying candidate indexes from the identified columns for individual contexts where: a. the table of the context has sufficient cardinality, b. operator type of an associated operator is such that the database management system uses an index, c. column size is less than a threshold size, and d. column data type is permissible in an index; 2. identifying candidate index retrieval modes, including by sorting and hash, as a function of operator; 3. with identification of each candidate index, searching previously identified indexes for a best existing index that is similar to the candidate index and, where no best existing index is located, creating a new existing index from the candidate index and, where a best existing index is located, choosing from the steps of a) creating a new index, b) revising the best existing index and c) modifying the best existing index to satisfy the context of the candidate index, choice of steps a, b and c being dependent on importance of and retrieval mode of the candidate index and the best existing index, importance of an index being derived from absolute importance of requests for which the index is identified; 4. identifying a benefit of an index, derived from importance of the requests for which the index is identified, and identifying a cost of the index, derived from importance of insert and delete requests on the indexed table and update requests on the indexed table and update requests on indexed columns, and pruning indexes where the benefit is less than the cost; 5. adding columns to indexes for index only retrieval; C) establishing hashed or sorted record placement strategy within tables, dependent on importance and retrieval mode of indexes to the table, data types within the table and table volatility; D) establishing cluster groups including: 1. clustering together tables and hashed indexes where the tables are placed via the hashed indexes and the tables are joined using columns in the hashed indexes; 2. clustering together tables and hashed indexes where the tables are placed via the hashed indexes and not clustered in step 1; 3. clustering tables and indexes in separate clusters where the tables are placed via sorted indexes; 4. establishing a cluster for each hash index not clustered in step 1 and 2; 5. establishing clusters for tables of importance over a threshold which are not clustered in steps 1 through 4; and 6. establishing clusters for tables of volatility over a threshold; and 7. establishing clusters for system files; and E) sizing the clusters of step D to fit available storage areas and assigning clusters to storage areas.
Claim 38
Independent Claim 506 words
A method of physically designing a database having plural tables, each of plural columns, the method comprising: A) identifying an absolute importance value for each database request based on the individual importance of the request, a transaction which includes the request and the program which includes the transaction, with greater weighting toward transaction importance and with greatest weighting toward program importance; B) in a table index design: 1. by order of request importance, identifying candidate indexes from the identified columns for individual contexts where: a. the table of the context has sufficient cardinality, b. operator type of an associated operator is such that the database management system uses an index, c. column size is less than a threshold size, and d. column data type is permissible in an index; 2. identifying candidate index retrieval modes, including by sorting and hash, as a function of operator; 3. with identification of each candidate index, searching previously identified indexes for a best existing index that is similar to the candidate index and, where no best existing index is located, creating a new existing index from the candidate index and, where a best existing index is located, choosing from the steps of a) creating a new index, b) revising the best existing index and c) modifying the best existing index to satisfy the context of the candidate index, choice of steps a, b and c being dependent on importance of and retrieval mode of the candidate index and the best existing index, importance of an index being derived from absolute importance of requests for which the index is identified; 4. identifying a benefit of an index, derived from importance of the requests for which the index is identified, and identifying a cost of the index, derived from importance of insert and delete requests on the indexed table and update requests on the indexed table and update requests on indexed columns, and pruning indexes where the benefit is less than the cost; 5. adding columns to indexes for index only retrieval; C) establishing hashed or sorted record placement strategy within tables, dependent on importance and retrieval mode of indexes to the table, data types within the table and table volatility; D) establishing cluster groups including: 1. clustering together tables and hashed indexes where the tables are placed via the hashed indexes and the tables are joined using columns in the hashed indexes; 2. clustering together tables and hashed indexes where the tables are placed via the hashed indexes and not clustered in step 1; 3. clustering tables and indexes in separate clusters where the tables are placed via sorted indexes; 4. establishing a cluster for each hash index not clustered in step 1 and 2; 5. establishing clusters for tables of importance over a threshold which are not clustered in steps 1 through 4; and 6. establishing clusters for tables of volatility over a threshold; and 7. establishing clusters for system files; and E) sizing the clusters of step D to fit available storage areas and assigning clusters to storage areas.
Claim 39
Dependent Claim 26 words
A method as claimed in claim 33 further comprising the step of adding columns to indexes where the cardinality of the index is below a threshold.
Claim 40
Dependent Claim 449 words
A method as claimed in claim 33 wherein: the best existing index is reused for a candidate index if both indexes are hashed, both indexes have the same number of columns and all the columns match; the best existing index is reused if the best existing index is sorted, the candidate index is hashed, both indexes have the same number of columns and all the columns match in identity; the best existing index is reused if both indexes are sorted, both indexes have the same number of columns and all the columns match in identity and in position; the best existing index is reused if the best index is sorted, the candidate index is either hash or sorted, the best existing index has more columns and the columns of the candidate index match, in identity and in position, leading segments of the best existing index; the best existing index is changed to the candidate index if the best existing index is hash, the candidate index is sorted, the indexes have the same number of columns, the columns match in identity, and if importance of the candidate index exceeds a threshold relative to importance of the best existing index; the best existing index is changed to include the candidate index if the best existing index is hash, the candidate index is either hash or sorted, the best existing index has a lesser number of columns, all the columns of the best existing index match in identity to columns of the candidate index and the importance of the candidate index exceeds a threshold relative to importance of the best existing index; the best existing index is changed to the order and type of the candidate index if the best existing index is hash, the candidate index is either hash or sorted, the best existing index has more columns, all columns of the candidate index match in identity to columns of the best existing index and the importance of the candidate index is greater than a threshold relative to the importance of the best existing index; the best existing index is changed to the candidate index if the best exiting index is sorted, the candidate index is either hash or sorted, the best existing index has a lesser number of columns, the columns of the best exiting index match in identity and position, and the importance of the candidate index is greater than a threshold relative to the importance of the best existing index; and the best existing index is reused if only some of the columns between the indexes match and the importance of the candidate index is less than a threshold relative to the importance of the best existing index.
Claim 41
Dependent Claim 15 words
A method as claimed in claim 33 further comprising clustering segmented string data types together.
Claim 42
Dependent Claim 24 words
A method as claimed in claim 33 further comprising assigning clusters to storage areas as a function of importance of data within the clusters.
Claim 43
Dependent Claim 102 words
In a physical design system for a database having plural tables, each of plural columns, stored in memory, a processor and a physical design program stored in memory comprising: means for identifying importance values for individual database requests; and means for designing indexes to tables for the requests by identifying by order of request importance, candidate indexes, searching previously identified indexes for an index that is similar to each candidate index, and building upon previously identified indexes by reusing existing indexes and modifying existing indexes based upon match between indexes and upon importance values of requests for which the indexes are created.
Claim 44
Dependent Claim 102 words
In a physical design system for a database having plural tables, each of plural columns, stored in memory, a processor and a physical design program stored in memory comprising: means for identifying importance values for individual database requests; and means for designing indexes to tables for the requests by identifying by order of request importance, candidate indexes, searching previously identified indexes for an index that is similar to each candidate index, and building upon previously identified indexes by reusing existing indexes and modifying existing indexes based upon match between indexes and upon importance values of requests for which the indexes are created.
Claim 45
Dependent Claim 58 words
A system as claimed in claim 38 wherein the means for identifying importance values identifies an importance value of a request from expected frequency of processing and from individual importances of the request, a transaction which includes the request and a program which includes the transaction, with greater weighting toward transaction importance and greatest weighting toward program importance.
Claim 46
Dependent Claim 44 words
A system as claimed in claim 38 wherein the means for designing indexes comprises: means for identifying columns and associated operators for individual table contexts within each expression of each request; and means for identifying candidate indexes from the identified columns for individual contexts.
Claim 47
Dependent Claim 97 words
A system as claimed in claim 40 wherein the candidate indexes are ordered by the means for designing and further comprising means for, with identification of each candidate index, searching previously identified indexes for an existing index that is similar to the candidate index and a) creating a new index, b) reusing the best existing index or c) modifying the best existing index to satisfy the context of the candidate index dependent on match between the candidate index and the best existing index and the values of importance of the requests for which the indexes are identified.
Claim 48
Dependent Claim 19 words
A system as claimed in claim 38 further comprising means for identifying index retrieval modes based on context operators.
Claim 49
Dependent Claim 32 words
A system as claimed in claim 42 wherein the means for designing reuses and modifies indexes as a function of importance and retrieval mode of an existing index and a candidate index.
Claim 50
Dependent Claim 37 words
A system as claimed in claim 38 further comprising means for pruning indexes where the benefit of an index is determined to be less than the cost of the index in operation of the database management system.
Claim 51
Dependent Claim 38 words
A system as claimed in claim 44 wherein benefits are derived from importance of requests for which the index is identified and cost is derived from the importance of requests which result in changes to the indexed table.
Claim 52
Dependent Claim 19 words
A system as claimed in claim 38 further comprising means for adding columns to indexes for index only retrieval.
Claim 53
Dependent Claim 25 words
A system as claimed in claim 38 further comprising means for adding columns to indexes where the cardinality of the index is below a threshold.
Claim 54
Dependent Claim 38 words
A system as claimed in claim 38 further comprising means for establishing hashed or sorted record placement strategy within selected tables dependent on importance and retrieval mode of indexes to the table and data types within the table.
Claim 55
Dependent Claim 263 words
In a physical design system for a database having plural tables, each of plural columns, stored in memory, a processor and a physical design program stored in memory comprising: A) means for identifying an absolute importance value for each database request based on the individual importance of the request, a transaction which includes the request and the program which includes the transaction; B) means for designing a table index including: 1. means for identifying, by order of request importance, candidate indexes from the identified columns for individual context: 2. means for identifying candidate index retrieval modes, including by sorting and hash, as a function of operator; 3. means for searching with identification of each candidate index, previously identified indexes for a best existing index that is similar to the candidate index and, where no best existing index is located, creating a new existing index from the candidate index and, where a best existing index is located, a) creating a new index, b) revising the best existing index or c) modifying the best existing index to satisfy the context of the candidate index dependent on importance of and retrieval mode of the candidate index and the best existing index, importance of an index being derived from absolute importance of requests for which the index is identified; and 4. means for pruning indexes where benefit of an index, derived from importance of the requests for which the index is identified, is less than cost of the index, derived from importance of insert and delete requests on the indexed table and update requests on indexed columns.
Claim 56
Dependent Claim 263 words
In a physical design system for a database having plural tables, each of plural columns, stored in memory, a processor and a physical design program stored in memory comprising: A) means for identifying an absolute importance value for each database request based on the individual importance of the request, a transaction which includes the request and the program which includes the transaction; B) means for designing a table index including: 1. means for identifying, by order of request importance, candidate indexes from the identified columns for individual context: 2. means for identifying candidate index retrieval modes, including by sorting and hash, as a function of operator; 3. means for searching with identification of each candidate index, previously identified indexes for a best existing index that is similar to the candidate index and, where no best existing index is located, creating a new existing index from the candidate index and, where a best existing index is located, a) creating a new index, b) revising the best existing index or c) modifying the best existing index to satisfy the context of the candidate index dependent on importance of and retrieval mode of the candidate index and the best existing index, importance of an index being derived from absolute importance of requests for which the index is identified; and 4. means for pruning indexes where benefit of an index, derived from importance of the requests for which the index is identified, is less than cost of the index, derived from importance of insert and delete requests on the indexed table and update requests on indexed columns.
Claim 57
Dependent Claim 103 words
For a database having records stored in memory which are organized to include logically grouped and indexable data elements, a processor controlled method of generating indexes comprising: identifying importance values for individual database requests; and designing indexes to the database for the requests based upon importance values of requests for which the indexes are created by ordering requests by importance values, identifying, by order of request importance, candidate indexes for requests, searching previously identified indexes for an index that is similar, to each candidate index, and building previously identified indexes by reusing existing indexes and modifying existing indexes based upon match between indexes.
Claim 58
Dependent Claim 103 words
For a database having records stored in memory which are organized to include logically grouped and indexable data elements, a processor controlled method of generating indexes comprising: identifying importance values for individual database requests; and designing indexes to the database for the requests based upon importance values of requests for which the indexes are created by ordering requests by importance values, identifying, by order of request importance, candidate indexes for requests, searching previously identified indexes for an index that is similar, to each candidate index, and building previously identified indexes by reusing existing indexes and modifying existing indexes based upon match between indexes.
Claim 59
Dependent Claim 40 words
A method as claimed in claim 50 wherein the step of designing indexes comprises: identifying columns and associated operators for individual table contexts within each expression of each request; and identifying candidate indexes from the identified columns for individual contexts.

References Cited (Backward Citations)

US4468732A Cited
US5043872A Cited
US4956774A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-04-03 1998-10-03 1999-04-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-04-03 2002-10-03 2003-04-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-04-03 2006-10-03 2007-04-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag