Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-08-25
2001-04-24
Kulik, Paul V. (Department: 2777)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000
Reexamination Certificate
active
06223171
ABSTRACT:
TECHNICAL FIELD
The present invention relates generally to the field of database systems. More particularly, the present invention relates to the field of indexing data for database systems.
BACKGROUND OF THE INVENTION
Computer database systems manage the storage and retrieval of data in a database. A database comprises a set of tables of data along with information about relations between the tables. Tables represent relations over the data. Each table comprises a set of records of data stored in one or more data fields. The records of a table are also referred to as rows, and the data fields of records in a table are also referred to as columns.
A database server processes data manipulation statements or queries, for example, to retrieve, insert, delete, and update data in a database. Queries are defined by a query language supported by the database system. To enhance performance in processing queries, database servers use indexes to help access data in a database more efficiently. Although all possible indexes for a database can be constructed, the number of possible indexes over a database can be very large and can significantly increase the memory requirements, including storage requirements, for the database. Also, many of the possible indexes may provide no or minimal performance advantage considering the data in the database, the organization of the data in the database, and the usage of the database as represented by a workload of queries executed against the database. Typical database systems therefore use only a subset of possible indexes for accessing databases.
A physical database design tool or database administrator typically selects a set of indexes for use by a database system from among possible combinations of indexes for a database. The effectiveness of any set of indexes depends, for example, on the data in the database, on the query optimizer accessing the database, and on the workload of queries to be executed against the database. As a database system evolves through database updates and modifications and through changes in workloads of queries, for example, new sets of indexes should be considered and selected to help maintain a desired level of performance of the database system.
Because the space of possible indexes over a database can be very large, however, searching among such indexes can incur substantial cost in time and memory. The problem of selecting a set of indexes can be further compounded by the presence of multi-column indexes and by the innovative ways some query processors use indexes, such as index intersection and indexed-only access for example. Although a physical database design tool may be used to automate the selection of a set of indexes in light of these concerns, the search algorithm of the design tool may not address specific concerns of the database administrator such as, for example: (1) Which queries executed in the last three days will slow down because of projected changes in the database? or (2) Which queries will benefit from the index(es) that the design tool is proposing to add and to what extent?
SUMMARY OF THE INVENTION
What-if index analysis utility may be used to perform quantitative analyses of a database system. What-if index analysis utility may be used, for example, to analyze the performance of the existing configuration of the database system with respect to one or more workloads of queries and to propose a hypothetical configuration for the database system to analyze its potential impact on the performance of the database system. Exemplary impact analyses comprise the analysis of workloads over a database system, the analysis of an existing set of indexes and proposed or hypothetical sets of indexes, estimating changes in cost to execute a workload with respect to a hypothetical configuration, and studying index usage by a workload for projected changes in the size of a database. What-if index analysis utility may be used, for example, by a database administrator or a physical database design tool to help improve performance of a database system.
In accordance with the present invention, a method may be used for analyzing a database system that executes queries over an existing configuration defined by an existing database and an existing set of indexes. The method may be implemented in the form of program modules or computer-executable instructions stored on a computer readable medium.
For the method, a hypothetical configuration is defined for the database system. A hypothetical set of indexes and/or a hypothetical database size may be defined for the hypothetical configuration. A scaling factor or a row count for one or more tables of the existing database may be defined for the hypothetical database size.
Design analysis data of the database system with respect to the hypothetical configuration is generated. In generating design analysis data, one or more hypothetical indexes for the hypothetical index set may be created by sampling data of the existing database and generating statistical information for each hypothetical index based on the data sampling. Also, the hypothetical configuration for the database system may be simulated. A cost of one or more queries with respect to the existing configuration and/or with respect to the hypothetical configuration may be estimated using a query optimizer of a database server. This cost may be estimated as the cost of the one or more queries with respect to the hypothetical configuration relative to the cost of the one or more queries with respect to the existing configuration. Index usage of one or more queries with respect to the existing configuration or with respect to the hypothetical configuration may be identified using the query optimizer.
One or more features of the database system may be summarized based on the generated design analysis data. A feature of a workload of one or more queries may be summarized. The workload feature may be summarized based on a measure of one or more properties of each query of the workload. A feature of the existing configuration or the hypothetical configuration may be summarized. The configuration feature may be summarized based on a measure of one or more properties of the configuration. A feature of an estimated performance of one or more queries with respect to the existing configuration or with respect to the hypothetical configuration may be summarized. The estimated performance feature may be summarized based on a measure of one or more properties of the estimated performance. The one or more properties of the estimated performance may comprise a cost to execute a query with respect to a configuration and/or one or more indexes expected to be used in executing a query with respect to a configuration.
Another method may be used for interfacing for a database system that executes queries over an existing configuration defined by an existing database and an existing set of indexes. The method may be implemented in the form of program modules or computer-executable instructions stored on a computer readable medium.
For this method, one or more commands are issued to define a hypothetical configuration for the database system and generate design analysis data of the database system with respect to the hypothetical configuration. Commands may be issued to define a hypothetical set of indexes for the hypothetical configuration, to define a hypothetical database size for the hypothetical configuration, to estimate a cost of one or more queries with respect to the existing configuration or with respect to the hypothetical configuration, or to estimate index usage of one or more queries with respect to the existing configuration or with respect to the hypothetical configuration.
Another method may be used for interfacing for a database system. The method may be implemented in the form of program modules or computer-executable instructions stored on a computer readable medium.
For this method, one or more commands designating an analysis class and a set of one or more objects may be issued to obtain summary an
Chaudhuri Surajit
Narasayya Vivek
Kulik Paul V.
Microsoft Corporation
Watts, Hoffmann, Fisher & Heinke Co. L.P.A.
LandOfFree
What-if index analysis utility for database systems does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with What-if index analysis utility for database systems, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and What-if index analysis utility for database systems will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2551740