如何覆盖动态排序工作数据集分配
Db2 估算需要排序的记录数量。 这些信息用于动态分配排序工作空间。 工作空间按 Db2 或所使用的排序程序。
如果表格空间包含带有VARCHAR列的行,则 Db2 可能无法准确估计记录数量。 如果预计记录数过高,或者请求的排序工作空间不可用,或者预计记录数过低导致排序溢出,则该实用程序可能会失败并导致程序结束。
建议:
为了 Db2 计算更准确的估计值,请在REORG之前运行RUNSTATS UPDATE ALL。 若要更新RTS目录表中的RTS统计信息,请在执行RUNSTATS时指定SHRLEVEL REFERENCE。
您可以通过以下方式之一覆盖动态分配的排序工作空间:
在JCL中使用SORTWKnn DD 语句分配排序工作数据集。 这些DD声明中的第一个必须是 SORTWK01。
- 如果表 SYSIBM.SYSTABLESPACESTATS 中受影响表空间 TOTALROWS 列的行数不可用或严重错误,您可以使用 SQL UPDATE 语句将该值更新为更合适的值。 当受影响表空间的REORG完成时,TOTALROWS被设置为关联表空间中的行数。
- 如果表 SYSIBM.SYSINDEXSPACESTATS 的 TOTALENTRIES 列中关联索引的键数量不可用或明显错误,您可以使用 SQL UPDATE 语句将该值更新为更合适的值。 下次运行REBUILD INDEX时,TOTALENTRIES将设置为受影响索引的键数。