定向查询

定向查询封装优化器可用于创建查询计划的信息。定向查询可以实现以下目标:

  • 在计划的升级前保留当前查询计划。大多数情况下,升级 Vertica 后,查询的执行效率会变得更高。在少数并非如此的情况下,您可以使用升级之前所创建的定向查询,以便重新创建早期版本的查询计划。

  • 使您能够创建改善优化工具性能的查询计划。有时,您可能希望影响优化器,使其在执行给定查询时做出更好的选择。例如,您可以选择不同的投影,或强制执行不同的联接顺序。在这种情况下,可使用定向查询来创建一个查询计划,替代优化器可能另外创建的计划。

  • 将输入查询重定向到使用不同语义的查询 — 例如,将联接查询映射到用来查询扁平表的 SELECT 语句

定向查询组件

定向查询为两个组件配对:

  • 输入查询:在此定向查询处于活动状态时,触发使用它的查询。

  • 带注释的查询:具有嵌入式优化器提示的 SQL 语句,其中的提示指导优化器如何为指定的输入查询创建查询计划。这些提示指定重要的查询计划元素,如联接顺序和投影选择。

Vertica 提供两种创建定向查询的方法:

  • 优化器可以从给定输入查询创建带注释的查询,并将这两个查询配对为定向查询。

  • 您可以编写自己的带注释查询并将其与输入查询配对。

有关这两种方法的描述,请参阅创建定向查询