在AS400中,表(QDDSSRC)编译(选项14)中有一些默认值。 在属性成员大小,Aditional参数:
这是放置数字或* NOMAX值的含义,如果这个数字是记录的限制或只是物理尺寸增量。
案例1: 会员规模 初始记录数______ 100000
案例2: 会员规模 初始记录数______ * NOMAX
答案 0 :(得分:2)
此配置是有限磁盘空间的旧时代。有些人仍然喜欢使用它来防止失控的作业填满他们的磁盘。如果磁盘太满,系统将关闭。有几个相关的配置参数ALLOCATE
和REUSEDLT
。
以下是SIZE
属性的工作原理。它有三个部分:initial number of records
,increment number of records
和maximum number of increments
。将成员添加到物理文件(或源物理文件)时,将为该文件分配initial number of records
。根据{{1}}属性,可能是物理分配或软分配。无论如何,该文件现在可以保存那么多记录。对于像QDDSSRC这样的源文件,默认为10,000(即10,000行源)。如果程序想要写更多记录,则以增量添加更多空间。 ALLOCATE
确定要添加到文件的记录数。这可能发生在指定的increment number of records
次。源文件默认为499个增量的1,000条记录,因此完整的源文件成员默认为509,000条记录。那是10,000 +(499 * 1,000)。一旦文件成员已满,任何添加记录的尝试都将导致在系统操作员队列上放置一条消息,请求增加文件大小的权限。
注意,这意味着文件成员可以保存超过记录容量的记录数,但系统操作员需要手动干预才能实现此目的。
DDS表默认为10,000条初始记录和1,000条记录的3个增量。 SQL表(使用DDL定义的表)默认为maximum number of increments
。 *NOMAX
表示表中的最大记录数由系统确定。这可能受磁盘空间或数据库强加的绝对最大值的限制。
数据库限制自v7.3起
*NOMAX
SQL使用Maximum rows in a member 4,294,967,288
Maximum size of a member 1.7 terabytes
可以逃脱的一个原因是它默认重用已删除记录占用的空间。 DDS定义的文件不会这样做(unles用户更改默认值)。因此,对于DDS表,每次写入都会导致另一条记录用完。这可能导致文件填满已删除的记录,强制手动干预以回收该空间。目前的智慧是使用*NOMAX
,SIZE(*NOMAX)
和ALLOCATE(*NO)
。这一劳永逸地让系统决定如何分配磁盘空间。您可以通过更改REUSEDLT(*YES)
的命令默认值来获取DDS定义文件的此行为。
答案 1 :(得分:0)
* NOMAX表示除了由操作系统而不是此参数值确定的记录之外,没有可添加到文件的每个成员的记录数的最大值。设置为* NOMAX时,不会发生增量。