BULK INSERT如何将大量数据高效地导入SQL Server
转载自:http://database.51cto.com/art/201108/282631.htm
BULK INSERT如何将大量数据高效地导入SQL Server
本文我们详细介绍了BULK INSERT将大量数据高效地导入SQL Server数据库的方法,希望本次的介绍能够对您有所帮助。
在实际的工作需要中,我们有时候需将大量的数据导入到数据库中。这时候我们不得不考虑的就是效率问题。本文我们就介绍了一种将大量数据高效地导入SQL Server数据库的方法,该方法是使用BULK INSERT来实现的,接下来就让我们来一起了解一下这部分内容。
源数据(文本文件)
下载了大量的股票历史数据,都是文本格式的:
每个文件第一行包含股票代码,股票名称,数据类型.第二行是数据列的名称:
数据表
在数据库中新建了一个数据表TestStock,并设置以下字段,但没有关于"成交额"的字段,因为以后的计算不会用到这个数据。另外这里关于价格的字段没有使用money数据类型,decimal足矣。
编写格式化文件
当前数据的格式化文件为:
- <?xmlversionxmlversion="1.0"?>
- <BCPFORMAT
- xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <RECORD>
- <FIELDIDFIELDID="1"xsi:type="CharTerm"TERMINATOR=","/>
- <FIELDIDFIELDID="2"xsi:type="CharTerm"TERMINATOR=","/>
- <FIELDIDFIELDID="3"xsi:type="CharTerm"TERMINATOR=","/>
- <FIELDIDFIELDID="4"xsi:type="CharTerm"TERMINATOR=","/>
- <FIELDIDFIELDID="5"xsi:type="CharTerm"TERMINATOR=","/>
- <FIELDIDFIELDID="6"xsi:type="CharTerm"TERMINATOR=","/>
- <FIELDIDFIELDID="7"xsi:type="CharTerm"TERMINATOR="\r\n"/>
- </RECORD>
- <ROW>
- <COLUMNSOURCECOLUMNSOURCE="1"NAME="Date"xsi:type="SQLDATE"/>
- <COLUMNSOURCECOLUMNSOURCE="2"NAME="OpenPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
- <COLUMNSOURCECOLUMNSOURCE="3"NAME="HighPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
- <COLUMNSOURCECOLUMNSOURCE="4"NAME="LowPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
- <COLUMNSOURCECOLUMNSOURCE="5"NAME="ClosePrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
- <COLUMNSOURCECOLUMNSOURCE="6"NAME="Volumn"xsi:type="SQLINT"/>
- </ROW>
- </BCPFORMAT>
暂且先保存在C盘目录下吧,文件名叫BCPFORMAT.xml
编写BULKINSERT语句:
- BULKINSERTTestStock
- FROM'C:\SH600475.txt'
- WITH(
- FORMATFILE='C:\BCPFORMAT.xml',
- FIELDTERMINATOR=',',
- ROWTERMINATOR='\r\n')
执行BULKINSERT的速度很快,结果如下:
同样的效果,如果从文本中读一行记录,执行一次INSERTINTO语句的话,需要10秒左右,由此可见BULKINSERT的高效。
关于使用BULK INSERT将大量数据导入SQL Server数据库的知识就介绍到这里了,希望本次的介绍能够对您有所帮助。
BULK INSERT如何将大量数据高效地导入SQL Server的更多相关文章
- C#将excel数据按照需求导入Sql server遇到的问题(参考而已)
1.千万不要使用永中表格(WPS没用过,这里只是个人观点,不是说永中表格的) 我在公司得到的任务是将excel数据按照需求导入数据库总共主表大概3张,所以有点复杂(列子用的简单表,公司东西还是不要放出 ...
- Bulk Insert:将文本数据(csv和txt)导入到数据库中
将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...
- 使用“bulk insert ”进行批量插入数据
本文转自csdn中文章,再次感谢他给我们分享. Bulk Insert命令详细 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中.语法: BULK INSERT [ [ 'da ...
- 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方 ...
- Excel表数据导入Sql Server数据库中
Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nv ...
- C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
作者: Aicken(李鸣) 来源: 博客园 发布时间: 2010-09-08 15:00 阅读: 4520 次 推荐: 0 原文链接 [收藏] 摘要: ...
- 将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?
先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库 ...
- 用代码将Excel数据导入Sql Server
这里直接用小例子说明. 1.打开VS2010—>文件—>新建—>网站,选择ASP.NET空网站并设置存放路径以创建空网站.(我这里路径设置为D:\excelEduceToSql) 2 ...
- 不同服务器数据库之间的数据定时同步到sql server (支持mysql,oracle数据库同步到sql server)
1,在目标数据库新增服务器对象->连接到服务器->新建服务器连接 2,编写数据同步业务PROC ALTER PROC TestProc AS BEGIN --打开完全事物回滚 SET XA ...
随机推荐
- Edwin windows下基本命令:
Ctrl-Alt-z: 对区域内所有代码求值. Ctrl-x Ctrl-e: 对光标左边或上一个表达式求值. Ctrl-c Ctrl-x: 中断当前求值. Ctrl-a: 移动到行首. Ctrl-e: ...
- ORA-04021
编译或删除存储过程的时候,系统会卡住,一段时间后出现ora-04021错误. 1.可能被锁住查看v$locked select b.sid,b.serial#,b.machine,b.terminal ...
- CGRectInset CGRectoffset UIEdgeInsetsInsetRect 这三个函数的使用情况
//CGRectInset 将原来的矩形放大或者缩小,正表示缩小,-表示放大. CGRect rect= CGRectMake(20, 50, 100, 80); CGRect rect1=CGRec ...
- CentOS6.5 PHP基础环境搭建 [个人整理-亲测可用]
** * CentOS6.5 搭建基础PHP环境(yum安装) * http://www.aiplaypc.com/160.html ** #安装需要的包,有依赖关系,自动帮你解决 yum ins ...
- poj1127 Jack Straws(线段相交+并查集)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Jack Straws Time Limit: 1000MS Memory L ...
- Objective-C中的copy协议
NSObject对象是否可以copy自己 NSObject类没有实现NSCopying或者NSMutableCopying协议,但是却有copy以及mutableCopy实例方法.然而,如果用NSOb ...
- Python学习笔记总结(二)函数和模块
一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句 例子 Calls myfunc(‘diege', ...
- php 过滤html标签的函数
1:strip_tags(string,allow)用来过滤html标签,参数string必须,allow是指定允许哪些标签通过. 例如: <?php $info='<a href=&qu ...
- 抗忙,,建个MAVEN的私服仓库-NEXUS
公司最近需求越来越上轨道,MAVEN的私服仓库-NEXUS构架起来哟.. 参考文档URL: http://www.linuxidc.com/Linux/2011-07/39578p3.htm http ...
- 【转】linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解----不错
原文网址:http://blog.csdn.net/liaoxinmeng/article/details/5004743 首先: 1.终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算 ...