查询转换

Db2 有时会修改SQL语句的文本,以提高访问路径的效率。

请记住: 我们始终建议您尽可能简洁地编写查询语句。 不要为了符合特定查询转换的条件,而将简单的查询改写为更复杂的查询。

查询转换对于复杂查询(尤其是由查询生成器创建的复杂查询)而言至关重要。 Db2 可以对SQL语句进行以下类型的转换:

  • 删除不需要的或预先评估的谓词
  • 添加生成的谓词
  • 删除某些连接的表引用
  • 子查询的相关性或非相关性
  • 将子查询转换为连接
  • 在包含UNION ALL运算符的语句中,简化并移除子选择

由于此类查询非常复杂,因此对每个转换案例和每个限制条件进行详尽描述并不实际。 因此,本文仅以基本示例对变化进行了高度概括的描述。 任何特定陈述中的变化都不一定发生。

在大多数情况下,您无需采取任何措施即可享受这些变化带来的好处。 然而,您可能会在PLAN_TABLE输出中注意到其中的一些变化。 当您使用查询调整工具来格式化SQL语句文本并查看访问路径图时,您可能会看到这样的变化。

提示: IBM® Db2 Administration Foundation for z/OS®IBM Db2 for z/OS 开发者扩展 提供了查询调整功能,例如 和 ,可以帮助您完成这项任务。 可视化解释 统计顾问