There is anumber of OODB optimization tedhnique proposed recentlyk,such as the translation of path expresisons into joins and query unnesting,that may generate a large number of implicit joins even for simple queries.unformtunately,most current commerical queriy optimizers are still based on the dynamic programmign approahc of System R,and cannot handle queries of more than ten tables.There is a number of recent proposals that advocate the use of combinatorial optimization tehcniques,such as iterative improvemnt and ismulated an nealing,to deal with the ocmplexity of this proble..These techniques,though,fail to take advantage of the rich semantic informaiton inherent in the qu3ry specificaiton,such as the informaiton available in queery graphs,which gives a good handle to choose which relations to join each time.This paper presents a polynomial-time algoirthm that generates a good quality order of rlational joins.It is a boottom-up greedy algirthm that allways ferforms the most profitable joins first.Our heuristic is superior to related approahces in that it enerates bushy trees,it takes into account both the sizes of intermediate reuslts and the prodicate selectiveities,and it always updates the query pgraph to reflect the new sizes and the new selectivities.
展开▼