Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1294021
  • 博文数量: 287
  • 博客积分: 11000
  • 博客等级: 上将
  • 技术积分: 3833
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-16 08:43
文章分类
文章存档

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 系统运维

2009-06-14 08:35:00

项目中的,不能设置带key的PF
 
带key的PF的弊端:
 
1)如果pf未设置key,最后添加的记录肯定在pf的最后位置。如果设置了,就会按key值排序存放。发生问题,不能查找最后一条记录。
   比如一个系统突然发生一个故障,如果要分析原因,就会从数据开始查找。每个pf obj,400系统都有最后修改时间记录,但是对应这个操作的数据,因为PF带key,而无法查找。
2)无法调整系统对key文件的维护时间。所以对带key的pf每写入一条记录,系统就要立即自动维护key文件。对几千万条pf的key文件维护,就要占用大量的系统运行时间。
   IBM建议,一个pf关联的lf,或连接文件,最好不要超过10个。对非必要的lf维护,可以人为的安排到系统较闲的时间再做维护(LF生成编译中有参数设置维护时间策略)。
 
注释:
 
1)如果pf中带有其它条件过滤参数,会使得建立在这个pf之上的其它文件数据丢失。
 
2)对一个pf之上的lf超过10个,且必须使用另外的索引条件的应用,可以采用400 query,或RPG程序描述文件来生成定义索引文件。对可以实现MQT的OS400系统,建议采用MQT。
 
 
其它:
 
观点1: LF只存记录号,这些记录号是按照LF的key排序的。
 
答:不对,必须存在key值排序和对应的pf记录号。想想看,如果做过c+树的排序计算方法,就知道了。如果只存在按key值排序的记录号,当往pf中添加一条记录后,系统拿什么数据来做c+树排序呢?
 
问:若通过一个LF往PF中写入记录,在lf维护前使用lf会产生什么样的影响?是否有这条记录吗?
 
答:肯定有问题。所以编程策略要制定好。
   通过lfA写入的记录,系统会马上对这个lfA进行维护。但是,建立在与这个lfA关联的pf之上的其它lf,就可以不一定要立即维护。
 
 
阅读(1774) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

小雨同学2012-06-05 17:54:17

1)如果pf未设置key,最后添加的记录肯定在pf的最后位置。如果设置了,就会按key值排序存放。发生问题,不能查找最后一条记录。

   比如一个系统突然发生一个故障,如果要分析原因,就会从数据开始查找。每个pf obj,400系统都有最后修改时间记录,但是对应这个操作的数据,因为PF带key,而无法查找。
我的理解是:导致系统故障的很可能是刚刚加入的那条纪录,所以需要看下或删除刚刚插入的纪录,但设了KEY,不知那条纪录去哪了

小雨同学2012-06-05 17:50:57

哈哈,终于有一篇看到懂的了!!!

passthru2009-10-01 07:43:59

2)无法调整系统对key文件的维护时间。所以对带key的pf每写入一条记录,系统就要立即自动维护key文件。对几千万条pf的key文件维护,就要占用大量的系统运行时间。 LF就可以人为的设置维护文件时间段,减少系统运行高峰期的资源占用压力。

wishwang2009-09-30 16:39:12

在PF中增加键字,相当于缺省设立了一个LF,如果该文件主要就是使用这个键字,有什么不可以.至于顺序,用相对记录号就可以排出来(ORDER BY RRN(FILE)).其他的副作用凡是需要用到键字都会存在,目前400可以使用多CPU来维护LF.不过尽量合理安排键字,减少不必要的逻辑文件倒是真的.