- 关 键 词:
- sql server
- 海量数据
- nat
- 数据库
这篇论坛文章(赛迪网技术社区)详细讲解了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 数据处理专题 (1992篇文章)
- SQL Server 索引和查询专题 (3524篇文章)
- SQL Server (1947篇文章)
- SQL Server (1949篇文章)
- (46次浏览)如何处理几种常见的数据库不当连接
- (43次浏览)SQL Server不存在或拒绝访问故障的排除
- (42次浏览)使用Transact-SQL进行数据导入导出方法详解
- (39次浏览)Sql Server2005对t-sql的增强之排名函数
- (33次浏览)SQL Server Management Studio报表和仪表板
- (30次浏览)SQL Server中数据导入导出三种方法比较
- (26次浏览)检测和解决 SQL Server 2000 SP4中问题
- (23次浏览)DBA案例分析:如何解决CPU占用100%的问题
- (22次浏览)PHPnow 1.4.5-绿色的PHP环境包
- (21次浏览)群集SQL Server 的可为事项、不可为事项和基



