Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询处理 » 查询优化与执行 » 读取执行计划 » 读取图形式计划

 

在图形式计划中查看选择性

在下面显示的示例中,所选择的节点代表 Departments 表的扫描,统计信息窗格显示谓语(作为搜索条件)、其选择性估计值及其实际选择性。

在 [详细信息] 窗格中,有关单个节点的统计信息分为三个部分:[节点统计]、[子树统计] 和 [优化程序统计]。

节点统计与此特定节点的执行有关。如果节点不是计划中的叶节点,并因此使用其它节点的中间结果,那么 [详细信息] 窗格将显示 [子树统计] 部分,它包含了此节点整个子树的估计和实际累积统计信息。优化程序统计信息只针对根节点出现,它代表整个 SQL 请求。

也许不会为跳过查询显示选择性信息。有关跳过查询的详细信息,请参见优化程序的工作原理

访问计划取决于数据库中可用的统计信息,而统计信息又取决于以前所执行的查询。在下面显示的内容中,您可以看到不同的统计信息和计划。

显示谓语的含统计信息的图形式计划。

此谓语说明是

Departments.DepartmentName = 'Sales' : 20% Column; true 1/5 20%

它可以按如下方式理解:

  • Departments.DepartmentName = 'Sales' 是谓语。

  • 20% 是优化程序的选择性估计值。也就是说,优化程序的查询访问选择将基于该估计值(20% 的行满足该谓语)。

    这一输出与 ESTIMATE 函数提供的输出相同。有关详细信息,请参见ESTIMATE 函数 [Miscellaneous]

  • Column 是估计值来源。这一输出与 ESTIMATE_SOURCE 函数提供的输出相同。有关选择性估计值的可能来源的完整列表,请参见ESTIMATE_SOURCE 函数 [杂类]

  • true 1/5 20% 是执行期间谓语的实际选择性。对谓语进行了五次计算,其中有一次为真,因此其实际选择性是 20%。

    如果实际选择性与估计值有很大差异,且对谓语进行了许多次计算,则不正确的估计值可能会导致查询性能出现重大问题。收集有关谓语的统计信息可为优化程序提供有关确定选择依据的更佳信息,从而可以提高性能。

注意

如果您选择的是图形式计划而不是含统计信息的图形式计划,则最后两项统计信息不会显示出来。