托马斯·冯德拉:查询计划的最优选择有多频繁?

托马斯·冯德拉:查询计划的最优选择有多频繁?

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

查询优化器旨在选择最佳查询计划,但其选择依赖于成本估算,实际选择常常不准确。对于不同的选择性,索引扫描并不总是最佳,位图扫描在大多数情况下表现更佳。尽管优化器基于统计和成本模型进行选择,但可能并非最佳。改进统计和成本模型是必要的,但信息总会缺失。尽管如此,基于成本的规划仍是最佳方法。

🎯

关键要点

  • 查询优化器的基本承诺是选择最佳查询计划,但选择依赖于成本估算。
  • 实际选择的查询计划常常不准确,尤其是在选择性较低的情况下。
  • 位图扫描在大多数情况下优于索引扫描,尤其是在选择性较低时。
  • 优化器基于统计和成本模型进行选择,但可能并非最佳选择。
  • 改进统计和成本模型是必要的,但信息总会缺失。
  • 在不同的数据分布下,优化器的选择可能会出现错误。
  • 对于复杂查询,优化器的行为会更加复杂。
  • 尽管存在局限性,基于成本的规划仍然是最佳方法。

延伸问答

查询优化器如何选择最佳查询计划?

查询优化器通过成本估算来选择最佳查询计划,这些估算基于选择性和基本资源的成本。

为什么索引扫描在某些情况下不是最佳选择?

在选择性较低的情况下,索引扫描往往不是最佳选择,位图扫描通常表现更佳。

如何改进查询优化器的统计和成本模型?

可以通过增加更多统计信息(如列间相关性)来改进统计和成本模型,但总会有信息缺失。

在复杂查询中,优化器的行为会有什么变化?

在复杂查询中,优化器的选择行为会更加复杂,可能导致更多的选择错误。

为什么基于成本的规划仍然是最佳方法?

尽管存在局限性,基于成本的规划是目前最好的方法,因为没有更好的替代方案。

查询优化器在不同数据分布下的表现如何?

在不同的数据分布下,优化器的选择可能会出现错误,尤其是在数据相关性较强时。

➡️

继续阅读