环境:db2 v8.2 加外键的速度很慢!是什么原因?目前是单用户在使用数据库,就一个建外键的进程,一个子表的记录为250W条,外键要几个小时,目前还没建好。
LOCK配置信息:
锁定列表的最大存储量(4KB) (LOCKLIST) = 50
每个应用程序的锁定百分比列表 (MAXLOCKS) = 22
锁定超时(秒) (LOCKTIMEOUT) = 5
-------
锁资源的设置,我的理解是让其尽快的升级,不知道这样的想法对不?请高手指点。
------解决方案--------------------------------------------------------
同样的问题,不知道怎么弄,我的查询速度也很慢,记录和你差不多,上百万
------解决方案--------------------------------------------------------
第一次看到这么用的,不知道我的解释是否正确。
1、通常我们的做法是在空表的时候就建外键,这样就可以避免建外键的时候check已有数据。而建外键的时候db2无外乎就是检查数据的有效性,因此影响外键的速度就是由于数据造成的。
2、提高数据检查的性能,可能是唯一的方式,那么我想说的是,应该和你列出来的参数无关,我建议你建外键之前,对引用关系的两个表做一次runstats操作,这样应该可以提高速度。
3、父表一定有索引,这是肯定到了,但是子表是不是也建立一个索引呢?
4、关于lock,你的观点和我的观点恰恰相反,我们都是在内存资源允许的前提下,尽量多的分配锁内存,避免锁升级的发生。因为锁升级既带来多余的系统开销,又会降低并发,产生所等待,甚至死锁。
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
都是很好的建议! 值得学习
------解决方案--------------------------------------------------------
什么呀
------解决方案--------------------------------------------------------
系统表升级会比较麻烦的,数据有变化还是做runstats吧