Abstract DINNER is a knowledge-based tool that assists the administrator of a relational database in the selection of index configurations. Given a set of tables, their statistical properties, and a set of queries on these tables, DINNER recommends an index configuration that includes for each table a primary index and a set of secondary indexes. Although it was proved that the problem is NP-hard, DINNER is capable of handling a practically-useful number of queries (10 queries, half of which are join queries). The database can perform a query with several possible access paths, according to the available indexes. DINNER builds for each query a graph that represents the set of possible solutions (indexes) to be used by the query. For each solution it finds the access path that the database is most likely to choose to perform the query, and estimates the time it takes to perform the access path. In order to find the possible indexes, the access paths that use these indexes, and the time cost of the access paths, DINNER uses knowledge that was elicited from several sources (database administrator (DBA), literature), and represented using several AI representation methods (frames, rules, and logic). After finding the possible indexes, DINNER uses several heuristics to eliminate bad solutions. Then, solutions for all queries are generated. These solutions are searched to find the best one which is the recommendation given by DINNER. The validity of DINNER's recommendations were demonstrated in three ways: examination of a detailed example, a demonstration of the changes in the recommendations as the input is changed, and the evaluation of an expert DBA.
[1]
M. Sasikumar.
Book review: The AI Workbench BABYLON: An open and portable development environment for expert systems by: T Christaller, F Di Primio, U Schnepf and A Voss (ed) (Academic Press)
,
1993,
SGAR.
[2]
John G. Kollias,et al.
Towards the Optimal Secondary Index Organisation and Secondary Index Selection
,
1985,
Comput. J..
[3]
Douglas Comer,et al.
The difficulty of optimum index selection
,
1978,
TODS.
[4]
Surajit Chaudhuri,et al.
An Efficient Cost-Driven Index Selection Tool for Microsoft SQL Server
,
1997,
VLDB.
[5]
Shamkant B. Navathe,et al.
Adaptive and Automated Index Selection in RDBMS
,
1992,
EDBT.
[6]
M. Schkolnick,et al.
Physical database design for relational databases
,
1988,
TODS.
[7]
Renzo Sprugnoli,et al.
Optimal Selection of Secondary Indexes
,
1990,
IEEE Trans. Software Eng..
[8]
Vijay V. Raghavan,et al.
On the Selection of an Optimal Set of Indexes
,
1983,
IEEE Transactions on Software Engineering.
[9]
Paolo Tiberio,et al.
An Approximation Algorithm for Secondary Index Selection in Relational Database Physical Design
,
1985,
Comput. J..
[10]
A. L. Kidd,et al.
Knowledge acquisition for expert systems: a practical handbook
,
1987
.
[11]
Daniel C. Zilio,et al.
DB2 advisor: an optimizer smart enough to recommend its own indexes
,
2000,
Proceedings of 16th International Conference on Data Engineering (Cat. No.00CB37073).