使用数据表
数据表使您能够构建,维护和快速访问包含在虚拟存储器中高于 16 MB 界线的表中的数据记录。 因此,它们可以通过减少 DASD I/O 和路径长度资源来提供可观的性能优势。 从数据表中检索记录的路径长度短于检索 VSAM 缓冲区中已存在的记录的路径长度。
您可以使用 CEDx 事务的 DEFINE FILE 命令或 CSD 更新批处理实用程序 DFHCSDUP来定义数据表。
效果
使用数据表具有以下效果:
- 在初始数据表装入操作之后,可以消除所有用户维护的 DASD I/O 以及只读 CICS®维护的数据表 (CMT) 的 DASD I/O。
- CMT 的 DASD I/O 减少取决于 READ/WRITE 比率。 此比率是在数据表实现之前,在源数据集上迂到的 READ 到 WRITE 调用数。 这些缩减还取决于数据表的 READ 命中率: 与针对源数据集的请求数相比,表满足的 READ 调用数。
- CICS 文件控制处理器消耗最多可减少 70%。 此缩减取决于文件设计和活动,此处仅作为一般准则提供。 实际结果因安装而异。
对于 CMT , CICS 确保同步源数据集和数据表更改。 当文件可恢复时,必需的同步已由现有记录锁定实现。 当文件不可恢复时,不存在 CICS 记录锁定,而是将注释字符串位置 (NSP) 机制用于所有更新请求。 在某些情况下,此操作可能对其他 VSAM ENDREQ 请求的性能影响较小。
建议
数据表由文件定义的两个 RDO 参数 TABLE 和 MAXNUMRECS 定义。 不需要其他更改。
首先只选择一个或两个候选人。 您可能希望从 CMT 开始,以简化恢复注意事项。
选择具有高 READ 与 WRITE 比率的 CMT。 可以通过运行 VSAM LISTCAT 作业在 CICS LSRPOOL 统计信息 (请参阅 主题页面 LSR 池统计信息) 中找到此信息。
使用 READ INTO ,因为 READ SET 会引起稍多的内部处理。
监视您的实存储器使用情况。 如果系统已受实存储器约束,那么具有大型数据表可能会提高页面调进速率,进而对 CICS 系统性能产生负面影响。 使用常规性能工具 (例如 RMF) 来查看实际存储和调页速率。
选择具有较高比例的完全键控直接读取作为 CMT 候选项的文件。
具有大量不需要在重新启动过程中恢复的更新活动的文件将更适合用户维护的数据表。
用户维护的数据表可以使用全局用户出口 XDTRD 来修改和选择记录。 此操作可允许用户维护的数据表仅包含与应用程序相关的信息。
如果指定了存储器隔离,那么必须允许数据表所需的额外存储器,以防止 CICS 引起增加的页面调度。
尝试避免以下情况: 两个打开的文件 (一个定义为 CMT ,另一个定义为 VSAM 文件) 引用相同的底层 VSAM 范围 (例如,两者都引用相同的数据集名称)。 在这种情况下, VSAM 文件几乎被视为 CMT ,这意味着它获得了 CMT 的优点和缺点。 优点是可以更快地从为其他文件创建的表中读取和浏览处理。
VSAM 文件性能的缺点如下:
- 更新必须同时更新文件和表。
- 如果 VSAM 文件引用的是路径而不是基本路径 (即,它使用备用密钥) ,那么它将失去快速读取的优势。
- VSAM 文件的请求始终切换到 QR 任务控制块 (TCB) ,并且不会在开放式 TCB 上进行处理。
监视
收集性能统计信息以评估数据表的有效性。 它们是对通过标准 CICS 文件统计信息提供的统计信息的补充。
- 尝试从表中读取的次数
- 不成功的读尝试次数
- 分配给数据表的字节数
- 装入到数据表中的记录数
- 尝试添加到表中的次数
- 用户出口在装入期间或通过 API 添加到表时拒绝的记录数
- 由于表已满而失败的尝试添加记录的次数 (已达到其最大记录数)
- 通过重写请求更新表记录的尝试次数。
- 尝试从表中删除记录的次数
- 自上次打开以来表中的记录数达到的最大值。
在某些情况下,可能会看到统计中存在明显的差异,例如由于存在未完成的更新而造成的差异。