日期:2014-05-18  浏览次数:20452 次

大批量导入数据到SQL Server中log文件太大,效率低
看了相关资料,SQL   Server在导入数时就是要生成log的,
我使用Bulk   Insert一次导入的记录数量超过20万,
那么导入时的log文件就超过500M,
首先,是低效!
其次,本场合不需要log!
    数据是程序生成的,计算程序一定是在与数据库在一起(物理位置),连接保证率高,数据完整性有保证,没有rollback的需要

请教各位大侠,
有没有提升效能的措施?
或者这样的场合就不适合应用SQL   Server?而应该使用其它数据库产品,如MySQL?

------解决方案--------------------
知足吧 好象没有
------解决方案--------------------
好象沒有其它辦法
------解决方案--------------------
如果你保证正确的话.log文件可以删除的.不过以后执行还是会有的.
------解决方案--------------------
如果操作速度慢.检查主键,索引等是否正确?

如果不做判断,只导入数据,应该没问题的.
如果做了判断,如ID存在,UPDATE,不存在,INSERT,看看判断语句写得是否正确.建议不用in等内容.
------解决方案--------------------
Try:

将数据库的故障恢复模型改为大容量日志记录恢复模型。

在大容量日志记录恢复模型下,将在介质错误保护程度与某些大规模或大容量操作的最优性能及日志存储空间最少占用量之间进行权衡。这些操作包括 SELECT INTO、大容量装载操作(bcp 和 BULK INSERT)、CREATE INDEX 以及文本和图象操作(WRITETEXT 和 UPDATETEXT)。

在大容量日志记录恢复模型下,对整个类只做最少的日志记录,并且无法逐个操作地控制日志记录行为。