如何通过SPACE参数计算空间总数

2009年05月6日  |  12:55 下午分类:大型机|Mainframe  |  标签:  |  56 views

JCL中使用SPACE参数指定在磁盘上创建新数据集时,为新数据集分配空间的大小,由系统指定磁道,语法如下。


SPACE=(磁道,( 首次分配数量, 次级分配数量, 目录))

磁道 —->   以磁道为单位分配空间。


首次分配数量   —->   分配数据空间时,首次分配是以以前指定的单位分配多少数目的磁道,柱面,块数或记录数。

次级分配数量—–> 向数据集写入数据时,如果已分配的空间使用完了系统会自动按照次级非配数量再分配出一定数量的空间给数据集使用。次级空间的分配次数是有限的,比如15次。如果已经分配了15个次级空间,数据集仍然写满,再写是会出错停止。

目录   —–>  指明目录空间要分配的大小,只在创建分区数据集(PDS)时需要指定,每个目录是一个256字节的记录。


计算式:

空间总数 = (1 *首次分配数量) + (15 *次级分配数量)

如果SPACE= (900,300),所需要的空间为 ( 900*1 + 15 *300) TRKS. = 5400 TRKS.

1 TRK = 47476 BYTES.

分配的总空间数  = ( 900*1*47476+ 15*300*47476)  = 5400 * 47476 BYTES = 256370400 BYTES

因此,你需要的空间数应为:

一个数据有61000条记录,长度为1541

需要空间=61000 *1541 = 94001000

浪费的空间 = 256370400 - 94001000 = 162369400 bytes..!!!! 通常我们保留一些额外空间(50%-100%)。





喜欢本文,那就收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

6条评论 关于 “如何通过SPACE参数计算空间总数”

  1. simaopig 发表于: 五月 6th, 2009 6:23 下午

    看不懂啊。。头痛。。

    [回复]

  2. 避风塘 发表于: 五月 6th, 2009 9:36 下午

    干啥用的?服务器的吗??

    [回复]

    newcoin 回复:

    @避风塘,
    @simaopig,
    呵呵,这是大型机里面的东西,你们应该看不懂

    [回复]

  3. 一杯香茗 发表于: 十二月 1st, 2009 11:20 上午

    1TRK=27998×2.
    你说的1 TRK = 47476 BYTES.这个数字是一定的呢还是和具体的机器有关呢?
    我接触的好像是1TRK=27998×2.
    不知道有什么原因,敬请指教。

    [回复]

    newcoin 回复:

    恩,我查看了相关资料,的确是搞错了,你说的是对的!
    TRK:不同的磁盘设备每个此道的容量不同,常用的3390设备使用的磁盘每个磁道有56832字节

    [回复]

  4. Jackson 发表于: 十二月 29th, 2009 4:57 下午

    还不错“有收获“`

    [回复]


发表您的评论