共计 844 个字符,预计需要花费 3 分钟才能阅读完成。
SQL Server 海量数据导入的最快方法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
最近做某项目的数据库分析,要实现对海量数据的导入问题,就是最多把 200 万条数据一次导入 sqlserver 中,如果使用普通的 insert 语句进行写出的话,恐怕没个把小时完不成任务,先是考虑使用 bcp,但这是基于命令行的,对用户来说友好性太差,实际不大可能使用;最后决定使用 BULK INSERT 语句实现,BULK INSERT 也可以实现大数据量的导入,而且可以通过编程实现,界面可以做的非常友好,它的速度也很高:导入 100 万条数据不到 20 秒中,在速度上恐怕无出其右者。但是使用这种方式也有它的几个缺点:1. 需要独占接受数据的表 2. 会产生大量的日志 3. 从中取数据的文件有格式限制 但相对于它的速度来说,这些缺点都是可以克服的,而且你如果愿意牺牲一点速度的话,还可以做更精确的控制,甚至可以控制每一行的插入。对与产生占用大量空间的日志的情况,我们可以采取在导入前动态更改数据库的日志方式为大容量日志记录恢复模式,这样就不会记录日志了,导入结束后再恢复原来的数据库日志记录方式。具体的一个语句我们可以这样写:复制代码 代码如下:
alter database taxi set RECOVERY BULK_LOGGED BULK INSERT taxi..detail FROM e:\out.txt WITH (DATAFILETYPE = char ,FIELDTERMINATOR = , ,ROWTERMINATOR = \n , TABLOCK) alter database taxi set RECOVERY FULL
这个语句将从 e:\out.txt 导出数据文件到数据库 taxi 的 detail 表中。
关于 SQL Server 海量数据导入的最快方法是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。