讲解SQL Server海量数据导入的最快方法

数据库 SQL Server
SQL Server数据库是一种关系数据库管理系统,很多人在选择数据库时都选择了SQL Server数据库,这就源于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数据库中导入大量数据时速度不会受到影响,实现了导入数据的高效性,提高了数据库管理员的工作效率,如果您想成为一名优秀的数据库管理员,那么上文中的内容您就不能错过啦。

【编辑推荐】

  1. SQL Server中选出指定范围行的SQL语句写法
  2. 通过作业调度建立SQL Server的自动备份
  3. SQL Server查询速度慢的优化
责任编辑:迎迎 来源: 赛迪网
相关推荐

2010-06-28 14:41:47

SQL Server海

2010-07-12 17:25:32

SQL Server海

2010-10-20 14:56:18

2009-05-06 14:03:13

SQL Server日志log

2011-04-13 15:44:12

SQL Server数函数

2010-10-26 11:04:48

oracle数据导入

2014-11-17 10:00:04

架构小米

2010-06-17 17:11:03

SQL Server

2010-06-24 09:47:47

SQL Server

2010-11-09 17:19:49

SQL Server导

2011-03-10 10:50:01

excelsql数据库

2010-07-15 13:09:07

SQL Server成

2010-07-16 10:12:21

SQL Server导

2010-07-12 17:06:30

SQL Server

2011-07-12 13:01:11

ExcelOracleSql Server

2010-09-14 09:53:52

sql server还

2010-07-21 14:11:36

SQL Server

2010-09-13 16:06:48

sql server数

2010-10-22 11:22:33

SQL Server数

2010-07-15 14:23:42

SQL Server数
点赞
收藏

51CTO技术栈公众号