在AS400中,表(QDDSSRC)编译中有一些默认值(OPT 14)。在属性成员大小中,Aditional参数:
wich是放置数字或 *nomax值的含义,如果此数字是记录的限制或只是物理大小增量。
案例1:会员大小 记录的初始数量______ 100000
案例2:会员大小 记录的初始数量______ *nomax
Mike给出了这个问题的简短答案,所以这是长答案。
这种配置是从磁盘空间有限的时代开始的一种。有些人仍然喜欢使用它来防止失控的作业填充磁盘。如果磁盘过于填充,则系统会关闭。有几个相关的配置参数,ALLOCATE
和REUSEDLT
。
这是SIZE
属性的工作方式。它具有三个部分:initial number of records
,increment number of records
和maximum number of increments
。当将成员添加到物理文件(或源物理文件)中时,将为该文件分配initial number of records
。根据ALLOCATE
属性,它可能是物理分配或软分配的。无论如何,该文件现在可以保存许多记录。对于QDDSSRC之类的源文件,默认为10,000(这是10,000行源)。如果程序想编写更多记录,则会以增量添加更多空间。increment number of records
确定要添加到文件中的记录。这可以发生指定的maximum number of increments
次。源文件默认值为1,000个记录的499个增量,因此完整的源文件成员默认为509,000条记录。那是10,000 (499 * 1,000)。一旦文件成员已满,任何尝试添加记录的尝试都会导致在系统操作员队列上输入消息,请要求增加文件大小。
Note 这意味着文件成员可以持有的记录数量超过记录的记录,但是系统操作员需要手动干预才能发生。
DDS表默认为10,000个初始记录,3个增量为1,000条记录。SQL表(使用DDL定义的表)将其默认为*NOMAX
。*NOMAX
表示表中的最大记录数是由系统确定的。这可能会受到磁盘空间的限制,也可能是数据库施加的绝对最大值。
db限制为v7.3
Maximum rows in a member 4,294,967,288
Maximum size of a member 1.7 terabytes
SQL可以使用*NOMAX
逃脱的原因之一是,它默认情况下已删除的记录占用的空间。DDS定义的文件不执行此操作(Unles用户更改默认值)。因此,对于DDS表,每个写作都会导致另一个记录被用完。这可能会导致文件填充已删除的记录,并要求手动干预以收回该空间。当前的智慧是使用SIZE(*NOMAX)
,ALLOCATE(*NO)
和REUSEDLT(*YES)
。一劳永逸,该系统可以决定如何分配磁盘空间。您可以通过更改CRTPF
的命令默认值来获得DDS定义文件的此行为。
*nomax意味着可以将记录的数量最多添加到文件的每个成员,除非由操作系统确定而不是此参数值。设置为 *nomax时,不会发生增量。