我们在实际系统的开发中,经常遇到需要把大量数据从正常表移到历史表, 有的叫数据归档。银行系统就是这样,在日终时需要把大量数据写入历史表,如果有十几个表,每个表有几百万条数据,归档方法效率不高的话,所花费的时间时很长的,那银行后台操作员就着急了,完不了不能下班了,既要有效率,又要安全的归档,我曾做过测试,一种是以前的老的归档方法,一种是我现在改进后的归档方法,老的归档方法是用游标的方式,把满足条件的数据读出来放入内存,和原表where条件相等的就delete,计数器到了指定数据就commit一次,比如10000(日志空间够),新的归档方法就是select from tbname where条件 fetch first 10000 rows ONLY,delete原表数据,commit一次,是个循环,后者所花费的时间是前者的十分之一,大家有什么好的方法可以交流。
我的问题就出来了,db2如果可能就加个选项语句,按where条件select出数据写入历史表的同时就删除了原表数据,执行这个选项语句需要一定的权限,这样db2就更加灵活,就不用写多条语句。