问题的引出:我们的切割过程就是将单据数据中某个日期以前的数据先复制到新的数据库中(select ... into ...),然后再将原来数据库中的这些数据删除,这样操作在数量量很大的数据库上时,其日志文件的增长也是惊人的:我复制一个48万条记录的表时,最后发现仅这一个表的操作就使新数据库的日志文件增加了170MB,如果不加清理,那就会被日志文件占用大量宝贵的磁盘空间。况且,我们转移到的新建数据库的作用也只是用来查询,以后不会有任何Insert、Update、Delete操作的,要这些日志文件没有什么用处,因此必须在向它转移数据的过程中做一些缩小日志文件的处理,怎么办??问题由此而生...
(1)处理过程中不记录日志
设置方法如下:企业管理器中打开对应数据库的“属性”,页框“选项”中将“模型”改为“简单”。这样设置的结果是对此数据库的任何操作都将不记录事务日志。对应的SQL为:EXEC sp_dboption @pdbName, 'trunc. log on chkpt.', 'TRUE'
但是,我们经过测试发现:启用此功能后,我们在对这个数据库操作时,就不能用事务操作了,程序执行到BeginTranSaction时就报错,不能执行下去,由于我们不能在对此库的操作中保证100%的正确性,因此我们还需要事务,因此这种方法适用空间有限,也不能满足我们程序的需求。
我们还得继续查找.....