如何将 DBRM 绑定到 PACKAGE 中,以及将 PACKAGE 绑定到 PLAN 中?
db2databasebig data analytics更新于 2026/2/12 0:22:17
DBRM 可以直接绑定到计划,也可以先将 DBRM 绑定到包中,然后再将该包绑定到计划中。
如果 DBRM 直接绑定到计划,并且源代码发生更改,则必须生成新的 DBRM,然后重新绑定整个计划。由于计划包含多个 DBRM,系统将重新处理所有 DBRM 以绑定该计划(即使其他 DBRM 未发生任何更改)。此过程会占用大量资源,例如内存、处理器和宝贵的时间。因此,许多安装现在都使用 DBRM、包和计划的组合。
在 DBRM、包和计划的组合中,DBRM 首先绑定到包。这些包是 SQL 查询的 DB2 优化版本,但它们无法由 DB2 执行。每个 DBRM 都有一个包(一对一关系)。然后,该包将绑定到计划。每当源代码发生任何更改时,我们只需使用新生成的 DBRM 重新绑定该包即可。无需将更改后的包再次绑定到计划。这节省了大量的时间、资源和精力。
使用以下 JCL 步骤,我们可以将 DBRM 绑定到包中,并将包绑定到计划中。
---将 DBRM 绑定到包中--- //BIND EXEC PGM=IKJEFT01 //STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR //SYSOUT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(TB3) BIND PACKAGE(PACKA) - MEMBER(DBRM1) - LIB(‘DIS.TEST.DBRM’) /*
---将包绑定到计划中---
//BIND EXEC PGM=IKJEFT01 //STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR //SYSOUT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(TB3) BIND PLAN(PLANA) - PKLIST(PACKA) - /*
要绑定包,我们将使用参数 BIND PACKAGE 以及 MEMBER 参数中的 DBRM 名称。另一方面,要绑定计划,我们将使用参数 BIND PLAN 以及 PKLIST 参数中的包名称。

