影响访问路径的选择

您可以影响 Db2 处理SQL语句的访问路径。

准备工作

关于本任务

当您使用以下任何一种方法来影响访问路径选择时, Db2 会使用您在访问路径选择期间提供的信息。 对于静态 SQL 语句,当您重新绑定包含这些语句的程序包时, Db2 会验证并使用这些信息。 对于动态 SQL 语句, Db2 在准备语句时应用、验证并使用信息。

您可以使用 BIND QUERY 命令在语句级别影响访问路径的选择。 当您使用这些方法时, Db2 会在以下任何一种情况下将信息应用于与您指定的语句文本匹配的SQL语句:
  • 系统范围
  • 从任何版本的特定收藏和套餐中
  • 从特定版本的收藏和套餐中

您也可以在PLAN_TABLE实例中插入值来指定访问路径。

提示: IBM® Db2 Query Workload Tuner for z/OS®IBM Db2 Administration Foundation for z/OS 提供增强的查询调整功能,可以帮助您完成这项任务。

过程

要影响SQL语句的访问路径选择,请使用以下任意一种方法:

  • 指定匹配语句的优化参数。
    您可以使用语句级优化参数来指定 Db2 在访问路径选择期间用于以下选项或参数的值。 参数值适用于指定上下文中所有匹配的语句。
    • REOPT 绑定选项
    • STARJOIN子系统参数
    • PARAMDEG子系统参数(MAX_PAR_DEGREE列)
    • CDSSRDEF子系统参数(DEF_CURR_DEGREE列)
    • SJTABLES子系统参数
  • 覆盖匹配语句谓词的选择性。
    您可以使用谓词选择性覆盖来指定在访问路径选择期间使用默认筛选因子以外的选择性值。 选择值适用于指定上下文中的所有匹配语句。 对于包含的谓词的可选性难以或无法由 Db2 估算的语句,通常最好的方法是忽略谓词的可选性。 Db2 可以使用改进的选择性信息为SQL语句选择最佳访问路径。 其他一些方法试图强制使用特定的访问路径,并从流程中移除 Db2 查询优化。
  • 为匹配语句指定访问路径。
    您可以使用语句级访问路径来指定 Db2 使用PLAN_TABLE行来为匹配语句应用特定的访问路径。 语句级访问路径与PLAN_TABLE访问路径提示类似,不同之处在于它们可以应用于语句或包级别具有匹配查询文本的所有语句实例。 Db2 将信息存储在一组目录表中,而不是PLAN_TABLE实例中,以便匹配SQL语句和访问路径信息。
  • 在PLAN_TABLE实例中指定访问路径。
    PLAN_TABLE访问路径尝试对PLAN_TABLE所有者发出的SQL语句强制执行特定的访问路径。 他们使用PLAN_TABLE行来应用由OPTHINT绑定选项或CURRENT OPTIMIZATION HINT特殊寄存器指定的提示。