Parametric query optimization

Abstract. In most database systems, the values of many important run-time parameters of the system, the data, or the query are unknown at query optimization time. Parametric query optimization attempts to identify at compile time several execution plans, each one of which is optimal for a subset of all possible values of the run-time parameters. The goal is that at run time, when the actual parameter values are known, the appropriate plan should be identifiable with essentially no overhead. We present a general formulation of this problem and study it primarily for the buffer size parameter. We adopt randomized algorithms as the main approach to this style of optimization and enhance them with a sideways information passing feature that increases their effectiveness in the new task. Experimental results of these enhanced algorithms show that they optimize queries for large numbers of buffer sizes in the same time needed by their conventional versions for a single buffer size, without much sacrifice in the output quality and with essentially zero run-time overhead.

[1]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[2]  J. D. Uiiman Principles of database systems , 1982 .

[3]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[4]  Leonard D. Shapiro,et al.  Join processing in database systems with large main memories , 1986, TODS.

[5]  Guy M. Lohman,et al.  R* optimizer validation and performance evaluation for local queries , 1986, SIGMOD '86.

[6]  Sartaj Sahni,et al.  Simulated Annealing and Combinatorial Optimization , 1986, 23rd ACM/IEEE Design Automation Conference.

[7]  Eugene Wong,et al.  Query optimization by simulated annealing , 1987, SIGMOD '87.

[8]  Arun N. Swami,et al.  Optimization of large join queries , 1988, SIGMOD '88.

[9]  Michael Stonebraker,et al.  The Design of XPRS , 1988, VLDB.

[10]  Philip S. Yu,et al.  Integration of Buffer Management and Query Optimization in Relational Database Environment , 1989, VLDB.

[11]  Karen Ward,et al.  Dynamic query evaluation plans , 1989, SIGMOD '89.

[12]  Yannis E. Ioannidis,et al.  Randomized algorithms for optimizing large join queries , 1990, SIGMOD '90.

[13]  Christos Faloutsos,et al.  Flexible buffer allocation based on marginal gains , 1991, SIGMOD '91.

[14]  Christos Faloutsos,et al.  Predictive Load Control for Flexible Buffer Allocation , 1991, VLDB.

[15]  Younkyung Cha Kang Randomized Algorithms for Query Optimization , 1991 .

[16]  Yannis E. Ioannidis,et al.  Left-deep vs. bushy trees: an analysis of strategy spaces and its implications for query optimization , 1991, SIGMOD '91.

[17]  Goetz Graefe,et al.  The Volcano Optimizer Generator , 1991, ICDE 1991.

[18]  Michael Stonebraker,et al.  Optimization of parallel query execution plans in XPRS , 1991, [1991] Proceedings of the First International Conference on Parallel and Distributed Information Systems.

[19]  Goetz Graefe,et al.  The Volcano optimizer generator: extensibility and efficient search , 1993, Proceedings of IEEE 9th International Conference on Data Engineering.

[20]  Goetz Graefe,et al.  Optimization of dynamic query evaluation plans , 1994, SIGMOD '94.