写了个windows服务程序,并且设置为开机自动启动,功能为:将Acess数据库中的数据导入到SQL Server中,并且每隔10s导入一次。
结果开机启动后,数据导入一直在后台进行,不知过了多久,突然发现本奇卡,后来找原因才发现数据库中数据过多,打开数据库表一看,
发现有>1800w条数据记录,光日志文件都有10.5G左右,数据库文件1G左右。然后执行delete表操作,想清空表中记录,结果出现:
数据库 “TSupervise”的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
最后网上搜寻,终于找到解决方法,说是清空日志即可。方法如下所示:
1.打开查询分析器,输入:
dump transaction databasename(注:databasename为你要进行日志删除操作的数据库名) with no_log并执行。
2.查询分析器里输入:
alter database databasename set recovery simple
3.右键你要压缩的数据库--所有任务--收缩--文件,右侧会出现相应的信息,在“文件类型”中选择“日志”,在收缩操作中选择“在释放未使用的空间前重新组织页”,将文件收缩到xxMB,填入右侧括号的最小值即可。
以上步骤完成后,便可进行其他操作了,我后来将表中数据全部清空,结果花了我大概7min钟: