定向查询
定向查询封装优化器可用于创建查询计划的信息。定向查询可以实现以下目标:
-
在计划的升级前保留当前查询计划。大多数情况下,升级 Vertica 后,查询的执行效率会变得更高。在少数并非如此的情况下,您可以使用升级之前所创建的定向查询,以便重新创建早期版本的查询计划。
-
使您能够创建改善优化工具性能的查询计划。有时,您可能希望影响优化器,使其在执行给定查询时做出更好的选择。例如,您可以选择不同的投影,或强制执行不同的联接顺序。在这种情况下,可使用定向查询来创建一个查询计划,替代优化器可能另外创建的计划。
-
将输入查询重定向到使用不同语义的查询 — 例如,将联接查询映射到用来查询扁平表的 SELECT 语句。
定向查询组件
定向查询为两个组件配对:
-
输入查询:在此定向查询处于活动状态时,触发使用它的查询。
-
带注释的查询:具有嵌入式优化器提示的 SQL 语句,其中的提示指导优化器如何为指定的输入查询创建查询计划。这些提示指定重要的查询计划元素,如联接顺序和投影选择。
提示
也可以直接在 vsql 中使用大多数优化器提示。有关详细信息,请参阅提示。Vertica 提供两种创建定向查询的方法:
-
优化器可以从给定输入查询创建带注释的查询,并将这两个查询配对为定向查询。
-
您可以编写自己的带注释查询并将其与输入查询配对。
有关这两种方法的描述,请参阅创建定向查询。