EXPLAIN 表
EXPLAIN表包含在 Db2 for z/OS® 上运行的SQL语句和函数的相关信息。
您可以创建并维护一组EXPLAIN表 ,用于捕获和分析有关在 Db2 for z/OS 上运行的SQL语句和函数性能的信息。 EXPLAIN表中的每一行描述了可解释语句中查询或子查询执行步骤的某个方面。 除其他事项外,行的列值标识查询或子查询、涉及的表和其他对象、执行每个步骤所使用的方法以及这些方法的成本信息。 Db2 在以下情况下创建EXPLAIN输出并填充EXPLAIN表:
- 当EXPLAIN语句被执行时。
- 在BIND或REBIND中使用EXPLAIN(YES)或(ONLY)绑定选项。 在绑定计划或包中,每条可解释的语句都会添加一行。 对于计划,这些不包括计划中可用的软件包中的声明。 对于包或计划,它们不包括EXPLAIN语句中的可解释语句,也不包括可解释语句中提到的在运行时逐步绑定的已声明临时表。
- 当可解释动态语句被执行且当前解释模式特殊寄存器的值被设置为YES或EXPLAIN时。
重要提示: 在迁移期间或迁移后不久,最好将EXPLAIN表转换为 Db2 12 格式。 在 Db2 12 中,EXPLAIN函数仅支持 Db2 12 或 Db2 11 格式的表格。 但是, Db2 11 格式的EXPLAIN表已不再推荐使用。 如果调用EXPLAIN,则使用 Db2 11 表, Db2 会发出SQL代码 +20520。 如果发现不支持的格式的表, Db2 会发出SQL代码 -20008 ,EXPLAIN操作也会失败。 要将 EXPLAIN 表升级为当前 Db2 的格式,可以调用存储过程 ADMIN_EXPLAIN_MAINT。 ADMIN_EXPLAIN_MAINT 还可以创建 EXPLAIN 表,将其升级为当前 Db2 版本的格式,或完成其他维护任务。 有关使用操作输入参数请求上述各项任务的信息,请参阅存储过程 ADMIN_EXPLAIN_MAINT。 另外,如果只想执行将 EXPLAIN 表升级为当前 Db2 格式的任务,可以运行任务 DSNTIJXA。 DSNTIJXA 调用 REXX 执行程序 DSNTXTA 来执行升级。 有关运行 DSNTIJXA 的更多信息,请参阅迁移步骤 25:将 EXPLAIN 表转换为当前格式。