【问题标题】:Number or *NOMAX value in AS400/DB2 table compilationAS400/DB2 表编译中的数字或*NOMAX 值
【发布时间】:2017-03-02 22:45:39
【问题描述】:

在 AS400 中,表 (QDDSSRC) 编译(选项 14)中有一些默认值。 在属性 Member Size 中,附加参数:

Wich是放一个数字或*NOMAX值的意思,如果这个数字是记录的限制或者只是物理大小的增量。

案例 1: 会员规模 初始记录数 ______ 100000

案例 2: 会员规模 初始记录数 ______ *NOMAX

【问题讨论】:

    标签: ibm-midrange db2-400


    【解决方案1】:

    迈克对这个问题给出了简短的回答,所以这里是长答案。

    这种配置是对过去磁盘空间有限的一种保留。有些人仍然喜欢使用它来防止失控的作业填满他们的磁盘。如果磁盘太满,系统将关闭。有几个相关的配置参数,ALLOCATEREUSEDLT

    这是SIZE 属性的工作原理。它包含三个部分:initial number of recordsincrement number of recordsmaximum 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)。一旦文件成员已满,任何添加记录的尝试都会导致将一条消息放置在系统操作员队列中,请求允许增加文件大小。

    注意,这意味着文件成员可以保存超过记录容量的记录数,但需要系统操作员手动干预才能发生。

    DDS 表默认为 10,000 条初始记录和 3 次增量 1,000 条记录。 SQL 表(使用 DDL 定义的)默认为*NOMAX*NOMAX 表示表中的最大记录数由系统决定。这可能受到磁盘空间或数据库施加的绝对最大值的限制。

    从 v7.3 开始的数据库限制

    Maximum rows in a member          4,294,967,288
    Maximum size of a member          1.7 terabytes
    

    SQL 可以不使用*NOMAX 的原因之一是它默认重用已删除记录占用的空间。 DDS 定义的文件不这样做(除非用户更改默认值)。因此对于 DDS 表,每次写入都会导致另一条记录被用完。这可能会导致文件被删除的记录填满,需要手动干预来回收该空间。目前的智慧是使用SIZE(*NOMAX)ALLOCATE(*NO)REUSEDLT(*YES)。这一劳永逸地让系统决定如何分配磁盘空间。您可以通过更改 CRTPF 的命令默认值来为 DDS 定义的文件获取此行为。

    【讨论】:

    • 嗨,我对此有太多误解,因为我是 as400 世界的新手。当您说记录时,在源成员文件中,您的意思是源代码像记录中的记录一样保存在表中?因为as400中的所有代码都保存在表=文件/成员中?谢谢您的帮助。
    • 所以最后,如果我在默认示例中理解,如果我有 10,000 条初始记录和 3 次增量 1,000 条记录,我的最大大小为 13000 条记录,所以如果我有 50 行源代码那么我终于有了 12950 的数据记录,对吗?
    • 不,源存储在源物理文件中,数据存储在物理文件中。文件将包含数据或源。您不能使用逻辑文件引用源物理文件。还有其他区别。
    • 所以在这种情况下我们只谈论物理文件?所以10000条初始记录是关于源代码的?如果我的源代码只有50条记录(行)我不需要放*NOMAX ?,换句话说*NOMAX是关于关于源代码的列表中的记录?。
    • 中端邮件列表是更好的讨论场所。 midrange.com/#lists
    【解决方案2】:

    *NOMAX 表示可以添加到文件的每个成员的记录数没有最大值,除非由操作系统而不是此参数值确定。当设置为 *NOMAX 时,不会发生增量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2015-06-05
      相关资源
      最近更新 更多