欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【讲解SQL Server海量数据导入的最快方法】,下面是详细的分享!
讲解SQL Server海量数据导入的最快方法
这篇论坛文章(赛迪网技术社区)详细讲解了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海量数据导入的最快方法,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何处理海量数据
答:在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] ( --TGongwe... >>详细
相关问题:如何进行海量数据排序,有哪些流行方法?
答:rocedure qsort(l,r:longint); var i,j,x,y:longint; begin i:=l;j:=r;x:=a[random(r-l)+l];//随机化即可 Repeat while ax do dec(j); if i >>详细
相关问题:如何处理海量数据
答:现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使用Oracle或者DB2,微软 公司最近发布的SQL Server 2005性能也不错。 另外在BI领域:数据库,数据仓库,多维数据库,数据挖掘等相关工具也要进行选择,象好... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
