您可以在单独的模式下创建表,从而简化命令输入所需的EXPLAIN表的填充任务。
关于本任务

当您发出诸如“绑定查询”之类的命令时,通常必须在包含输入值的某些相关表中填充行。 默认情况下, Db2 使用在BIND QUERY命令的发行人架构下创建的EXPLAIN表中的数据。 因此,您可以将相同的表格用作EXPLAIN数据的输出和BIND QUERY命令的输入。
然而,EXPLAIN输出表中的行数可能比BIND QUERY命令所需的行数多得多。 这些额外的行可能会干扰您想要创建的提示或覆盖。 为了避免这个问题,您可以指定 Db2 使用不同架构下的输入表。
创建单独的表格,为BIND QUERY命令输入提供数值:
- 在您的架构下创建EXPLAIN表。
- 在新架构下创建以下对象的实例。
- DSN_USERQUERY_TABLE表
- PLAN_TABLE 表
- PLAN_TABLE_HINT_IX 索引
- DSN_PREDICAT_TABLE 表
- DSN_PREDICAT_TABLE_IX 索引
- DSN_PREDICATE_SELECTIVITY表
- DSN_PREDICATE_SELECTIVITY_IX 索引
您可以在SDSNSAMP库的DSNTESC成员中找到创建这些对象的示例语句。
- 获取语句的EXPLAIN信息,以填充架构下的EXPLAIN表。
- 仅从架构下的EXPLAIN表中选择所需的行,并将这些行插入新架构下的EXPLAIN表中。
并非每张桌子都适用于每种影响路径选择的方法。 不过,最好还是创建前面列表中的所有对象,并只填充需要的对象。
- 根据需要修改行,其中包含 Db2 用于访问路径选择的信息。
如需了解所需行和值的详细信息,请参阅有关您要创建的提示类型的信息:
- 发出BIND QUERY命令并指定EXPLAININPUTSCHEMA选项。
例如,以下命令指定使用BINDQ模式下的输入表:
BIND QUERY EXPLAININPUTSCHEMA('BINDQ')
Db2 使用指定架构下表格中的值填充相关目录表格。
