1)涉及db2的cobol程序编译过程
2)bind处理相关联对象
DBRM : Database Request Module/数据库请求模块
DBRM实现的功能主要有以下2条
◆ 绑定Package
◆ 绑定Plan
Package : SQL语句处理之后生成的结果,存放在DB2中。
Package同cobol代码编译链接生成的Load Module比较类似。
该对象同Load Module同样,有相同的Timestamp和Contoken,
在运行时,Package和Load Module的属性会比较处理,不同的时候出现-805错误。
PackageList : Package的集合。在db2中这个集合称为collection。
Plan可以是Packagelist的集合,Packelist是Package的集合,
Plan名称和Package名称是通过db2相关联的,可以通过sysibm.syspacklist查询。
Plan一旦建立,在不添加新的Packlist的前提下,Plan不需要重新编译,只更新Package就可以了。
相关联的3张数据表:sysibm.syspacklist;sysibm.syspackage;sysibm.sysplan
3)bind用jcl
Plan bind
*****************************************************************
//PLANBIND EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(0,LT)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDMMP DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(dbb1)
BIND PLAN(plan-name ) -
PKLIST(pkl-name1.* -
pkl-name2.* -
pkl-name3.*) -
ACT(ADD) ISO(CS) VALIDATE(BIND) QUALIFIER(table-space-name) -
CURRENTDATA(NO) DEGREE(1) DYNAMICRULES(BIND)
/*
//GRANT0 EXEC PGM=IKJEFT01,DYNAMNBR=20,COUND=(0,LT)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(dbb1)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIAD) LIBRARY('dbb1.runlib.load')
END
/*
//SYSIN DD *
GRANT EXECUTE ON PLAN plan-name TO id1,id2,id3
/*
*****************************************************************
Package bind
*****************************************************************
//SYSTSIN DD *
DSN SYSTEM(dbb1)
BIND PRCKAGE(package-name) member(pg-name) QUALIFIER(table-space-name) -
VALIDATE(BIND) EXPLAIN(YES) ISO(CS) CURRENTDATA(NO)
RUN PROG(DSNTIAD) PLAN(DSNTIAD) LIBRARY('dbb1.runlib.load')
/*
*****************************************************************
4)db2相关联问答
Q4) Explain what a plan is?
A4) Plan is a DB2 object (produced during the bind process) that associates one or more database request modules with a plan name.
Q5) What is a DB2 bind?
A5) Bind is a process that builds “access paths” to DB2 tables. A bind uses the Database Request Modules(s) (DBRM(s)) from the DB2 pre-compile step as input and produces an application plan. It also checks the user’s authority and validates the SQL statements in the DBRM(s).
Q2) What is an access path?
A2) The path that is used to get to data specified in SQL statements.
Q6) What information is used as input to the bind process?
A6) The database request module produced during the pre-compile. The SYSIBM.SYSSTMT table of the DB2 catalog.
Q19) What is a Database Request Module(DBRM)?
A19) A DBRM is a DB2 component created by the DB2 pre-compiler containing the SQL source statements extracted from the application program. DBRMs are input to the bind process.
Q24) What will the FREE command do to a plan?
A24) It will drop(delete) that existing plan.
Q32) Where are plans stored?
A32) Each plan is defined uniquely in the SYSIBM.SYSPLANS table to correspond to the transaction (s) that are to execute that plan.
相关推荐
在DB2存储过程中,异常处理是确保程序健壮性的关键。通过使用`TRY-CATCH`结构,开发者可以捕获并响应执行期间可能出现的各种异常情况。合理的异常处理不仅可以避免程序因意外错误而崩溃,还可以向调用者提供详细的...
- `db2 bind <file_path>`:绑定一个函数文件。 **注意事项:** - `<file_path>`应替换为函数文件的完整路径。 - 函数文件通常位于`C:\sqllib\function`目录下。 #### 九、优化表结构 **命令:** - `db2 reorg ...
文档列举了一些常用的DB2指令,如CREATE/DROP用于创建和删除对象,LIST/DESCRIBE用于查看对象信息,FORCE用于强制执行操作,GET/UPDATE用于查询和修改数据,IMPORT/EXPORT/LOAD用于数据导入导出,BIND/REBIND处理SQL...
- **db2bfd**:Bind File Description 工具,用于描述绑定文件的信息。 - **db2cc**:启动 Control Center 的命令,提供图形化的 DB2 控制中心界面。 - **db2cfexp** 和 **db2cfimp**:Connectivity Configuration ...
`db2bind c:\dfplus.bnd` 将存储过程绑定至数据库,便于后续调用。存储过程通常位于服务器的特定目录下,需要先将文件复制到指定位置。 ### 12. 整理表 `db2reorg table yd` 对表进行重组,优化其物理布局,提升...
Part1包含13个COBOL程序,4个JCL程序(对含有DB2的COBOL程序进行bind package, bind plan以及compile等),两个SQL SPUFI。 吐血奉献,part1和part2是两个独立的内容,part1主要以实例讲解embedded SQL, 在COBOL中...
DBRM是DB2预编译程序创建的对象,包含了应用程序中SQL语句的元信息,是BIND处理的基础。 #### PACKAGE PACKAGE是一组静态捆绑的SQL语句的集合,是DB2优化执行的关键对象。 #### PACKAGE LIST PACKAGE LIST是按照...
7. **db2bfd-Bind File Description Tool**:用于描述绑定文件的工具,有助于理解绑定文件的结构和内容。 8. **db2cap-CLI/ODBC Static Package Binding Tool**:CLI和ODBC静态包绑定工具,用于配置客户端应用程序的...
`db2 bind <存储过程文件> {load | install}` 命令将存储过程绑定到数据库,确保它们可供使用。通常,存储过程文件(如 `.bnd` 文件)需要先复制到服务器的适当目录,如 `C:\sqllib\function`。 12. **整理表**: ...
5. **绑定**:使用DB2绑定工具 (`BIND` 命令) 创建数据库包或将预编译信息绑定到数据库。 #### 3.4.1 预编译 - **目的**:将源代码中的SQL语句转换为DB2运行时API调用,并生成程序包或捆绑文件。 - **连接要求**:...
- **DBRM**:DB2预编译程序创建的文件,包含了应用程序中SQL语句的信息,用于绑定处理。 - **Package**:一组被静态绑定在一起的SQL语句的对象,用于提高执行效率。 - **Package List**:一组按照特定规则命名的...
- 这条命令用于启动DB2数据库服务,确保数据库能够接收并处理请求。 - **关闭DB2服务**:`db2stop` - 当不再需要数据库服务时,可以通过此命令安全地停止DB2服务,释放系统资源。 #### 二、数据加载与卸载 - **...
在日常操作中,DB2管理员和开发者会使用诸如CREATE、DROP、LIST、DESCRIBE、FORCE、GET、UPDATE、IMPORT、EXPORT、LOAD、BIND、REBIND等指令来管理数据库。 总之,DB2是一款功能强大、灵活且适应性强的数据库管理...
此命令用于初始化DB2服务,使数据库系统可以接收和处理客户端请求。 - **关闭DB2服务**:`db2stop`。此命令用于停止DB2服务,确保所有正在进行的事务完成并释放占用的资源。 #### 二、数据导入与导出 - **加载数据...
与SQL Server和Sybase相比,DB2的SQL支持更为完整,特别是在数据仓库功能方面,如多分区和MDC(Multi-Dimensional Clustering,多维聚类)技术,这使得DB2在处理大数据和复杂查询时更具优势。此外,DB2的跨平台能力...
DB2 Load Utility是IBM在大型主机环境中,如Z/OS操作系统上用于数据库批量加载的数据处理工具。这个实用程序被设计用来高效地将大量数据插入到DB2数据库中,尤其适用于初始化数据库或者进行大规模数据更新。它能够...
- `db2bind c:\dfplus.bnd` 命令用于将存储过程绑定到数据库中,而存储过程文件需放置在服务器的`C:\sqllib\function`目录下。 - `db2reorgtable ydd` 和 `db2runstats on table ydd with distribution and indexes ...
**绑定存储过程**:`db2 bind c:\dfplus.bnd` 命令用于将存储过程绑定到数据库,通常需要将存储过程文件拷贝到服务器的特定目录中。存储过程的绑定提高了数据库的安全性和执行效率。 **整理表**:`db2 reorg table ...
5. **绑定(Bind)**:绑定是构建到DB2表的访问路径的过程,它使用DB2预编译步骤产生的数据库请求模块作为输入,并生成应用计划。同时,绑定还会验证用户的权限以及SQL语句的正确性。 6. **绑定输入信息**:绑定...