嵌套查询和过程的优化与评估
摘要:复杂的数据检索和更新任务常常在许多数据库应用程序中执行。这些应用程序经常使用嵌套查询和调用用户定义函数的查询,这些函数使用了混合的过程化和SQL结构。直接评估这样的查询涉及到重复执行参数化子查询或包含查询和过程代码的块。 优化嵌套查询以及具有连接、聚合和集合操作的查询时,一个重要的问题是从阶乘数量的可能排序中找到最优排序的问题。我们表明,即使是这个问题的特殊情况也是NP-Hard问题,并提出了实用的启发式方法,这些方法在现有的查询优化器中易于使用。 我们还考虑了在复杂的过程块(如用户定义函数和存储过程)内部进行查询和更新的迭代执行。参数分批处理是提高性能的重要手段,因为它使得基于集合的处理成为可能。参数分批处理的关键挑战在于重写给定的过程/函数以处理一批参数值。我们提出了一个基于程序分析和重写规则的解决方案,以自动化生成批处理形式的过程并将迭代的数据库调用替换为对批处理形式的单个调用。 我们提供了所提技术的实验结果,并且结果显示了显著的性能提升。
作者:Ravindra Guravannavar
论文ID:0911.0508
分类:Databases
分类简称:cs.DB
提交时间:2009-11-04