_NET实现大批量Excel数据导入SQLSERVER

  • 格式:pdf
  • 大小:1.46 MB
  • 文档页数:1

11
《商场现代化》2010年12月(中旬刊)总第632期

商业科技
一、引言
数据导入在目前的管理信息系统中是较常见的功能。比如工作
人员经常会将下属单位上报的数据保存在Excel文件中,然后利用
系统的数据导入功能将相关数据一次性导入到数据库管理系统中,
避免了大量数据的逐条入录,提高工作效率。然而数据导入的代码
编写好坏也会对数据导入的性能产生影响。
二、SQL SERVER导入Excel
在应用程序中经常需要将外部的数据一次性导入到SQL
SERVER 中,使用SQL SERVER导入数据的方法有很多种,对于
DBA可以直接使用DBMS自带的DTS工具完成数据的导入,操作非
常方便,然而对于管理系统的使用人员是不能直接接触数据库管理
系统的,无法采用这种方法实现数据的导入。因此,程序设计员应
该要将数据导入功能在程序中做好,直接提供给用户去实现,程序
实现数据导入的方法主要有三种,下面介绍各方法实现的原理。
1. insert into导入法
在SQL SERVER 中这种方法是最基本的数据导入方法,大多
数程序开发人员在实现数据导入时首先都会想到这种方法。
语法:insert into tablename(字段名列表) values(值列表)
这种方法虽然简单,但是不适合在实现插入大批量数据的操作
上,根据实验测试表明,如果插入100百万条记录,这种方法将耗
时901599豪秒,约15分钟。严重影响了工作效率,也会由于耗时
过长而对导入的数据的正确性产生影响。
2. BULK insert导入法
BULK insert导入法对于大家可能不是很熟悉,但是当要实现
大批量数据的导入时采用这种方法将会给你带来极高的效率。
语法:BULK insert tablename from '数据文件' WITH
(FIELDTERMINATOR = ',',ROWTER /.,mbMINATOR='',BATCHSIZ
E = 100000)
还是以100万条数据为测试,将其分五个线程,每个线程担任
20万条数据,每5万条一个事物,五个线程同时启动。根据测试实
验的数据表明,该方法耗时是21099豪秒,约21秒,速度提高了近
42倍。
3. SqlBulkCopy类导入法
SqlBulkCopy类导入法引用了System.Data.SqlClient名称空
间,通过该空间创建SqlBulkCopy类来实现大批量数据导入的,具
体的数据导入程序实现如下所示。
//源数据

SqlDataReader reader = myCommand.ExecuteReader();
//目的数据
using (SqlBulkCopy bulkCopy = new
SqlBulkCopy(destinationConnection.ConnectionString))
{
bulkCopy.ColumnMappings.Add("ProductID", "ProductID");
bulkCopy.ColumnMappings.Add("ProductName", "Name");
bulkCopy.ColumnMappings.Add("QuantityPerUnit",
"Quantity");
bulkCopy.DestinationTableName = "Products_TopSelling";
bulkCopy.WriteToServer(reader);
}
使用SqlBulkCopy类导入法将大大的改善了大批量数据的导入
性能,100万条记录的导入时间将缩短至4989耗秒,尽5秒钟即可
完成100完条数据的导入。
三、效率分析
针对以上三种导入法,同样以100万条记录为例,在相同的软
件和硬件环境下进行测试,结果显示每种导入法的运行时间见表1
所示。
表1 数据导入效率
导入法耗时(单位豪秒)
基本的insert into901599
BULK insert21099
SqlBulkCopy4989
四、结论
.NET实现将Excel数据导入到SQL SERVER的方法有多种,但
是执行的效率各不相同,实验表明,选择了好的数据导入法将会极
大程度的提高工作效率,保证数据的完整性。特别是对于大批量数
据导入时,更需要我们注意改善导入的性能,否则当导入了大部分
数据后由于网络或电脑故障等原因停止了数据的导入,下次又要花
大量的时间来处理这些大批量数据,严重的影响了工作效率。

参考文献:
[1]吴莲贵 易瑜:基于ASP_NET的_Web网站设计_网络教学系
统的应用与研究[J].计算机教育,2007.10
[2]郑阿奇:SQL SERVER 使用教程.电子工业出版社.2005.5

.NET实现大批量Excel数据导入SQL SERVER

冯炜锐 尹强飞 江西现代职业技术学院
[摘 要] 人们习惯将待添加的记录保存在Excel文件的作为存档,然后再利用管理系统的数据导入功能将Excel数据批量的导入到数
据库中。实现Excel数据导入到SQL SERVER主要有两种方法,使用DTS界面导入和编写数据导入代码。
[关键词] 数据导入 管理系统 Excel 工作效率