In optimizing queries, solutions based on AND/OR DAG can generate all possible join orderings and select placements before searching for optimal query execution strategy. But as the number of joins and selection conditions increase, the space and time complexity to generate optimal query plan increases exponentially. In this paper, we use join graph for a relational database schema to either pre-compute all possible join orderings that can be executed and store it as a join DAG or, extract joins in the queries to incrementally build a history join DAG as and when the queries are executed. The select conditions in the queries are appropriately placed in the retrieved join DAG (or, history join DAG) to generate optimal query execution strategy. We experimentally evaluate our query optimization technique on TPC-D/H query sets to show their effectiveness over AND/OR DAG query optimization strategy. Finally, we illustrate how our technique can be used for efficient multiple query optimization and selection of materialized views in data warehousing environments.
翻译:在优化查询时,基于 和/ 或 DAG 的解决方案可以在搜索最佳查询执行战略之前产生所有可能的组合顺序和选择位置。 但是,随着组合和选择条件的增加,生成最佳查询计划的空间和时间复杂性会成倍增加。在本文中,我们使用关联数据库模型的组合图来预先计算所有可能的组合顺序,然后将其存储为组合数据库,然后作为组合目录,或者,在查询执行时,将汇总到查询中,以逐步建立历史加入数据库。查询中的选定条件被适当放置在检索的组合数据库中(或历史加入 DAG),以产生最佳查询执行战略。我们实验性地评估了TPC-D/H 查询组合的查询优化技术,以显示其效力超过和/ OR DAG 查询优化战略。最后,我们说明如何利用我们的技术在数据仓储环境中高效的多个查询优化和选择实际观点。