转载自:http://database.51cto.com/art/201108/282631.htm

BULK INSERT如何将大量数据高效地导入SQL Server

本文我们详细介绍了BULK INSERT将大量数据高效地导入SQL Server数据库的方法,希望本次的介绍能够对您有所帮助。

AD:
WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统

在实际的工作需要中,我们有时候需将大量的数据导入到数据库中。这时候我们不得不考虑的就是效率问题。本文我们就介绍了一种将大量数据高效地导入SQL Server数据库的方法,该方法是使用BULK INSERT来实现的,接下来就让我们来一起了解一下这部分内容。

源数据(文本文件)

下载了大量的股票历史数据,都是文本格式的:

每个文件第一行包含股票代码,股票名称,数据类型.第二行是数据列的名称:

数据表

在数据库中新建了一个数据表TestStock,并设置以下字段,但没有关于"成交额"的字段,因为以后的计算不会用到这个数据。另外这里关于价格的字段没有使用money数据类型,decimal足矣。

编写格式化文件

当前数据的格式化文件为:

  1. <?xmlversionxmlversion="1.0"?>
  2. <BCPFORMAT
  3. xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5. <RECORD>
  6. <FIELDIDFIELDID="1"xsi:type="CharTerm"TERMINATOR=","/>
  7. <FIELDIDFIELDID="2"xsi:type="CharTerm"TERMINATOR=","/>
  8. <FIELDIDFIELDID="3"xsi:type="CharTerm"TERMINATOR=","/>
  9. <FIELDIDFIELDID="4"xsi:type="CharTerm"TERMINATOR=","/>
  10. <FIELDIDFIELDID="5"xsi:type="CharTerm"TERMINATOR=","/>
  11. <FIELDIDFIELDID="6"xsi:type="CharTerm"TERMINATOR=","/>
  12. <FIELDIDFIELDID="7"xsi:type="CharTerm"TERMINATOR="\r\n"/>
  13. </RECORD>
  14. <ROW>
  15. <COLUMNSOURCECOLUMNSOURCE="1"NAME="Date"xsi:type="SQLDATE"/>
  16. <COLUMNSOURCECOLUMNSOURCE="2"NAME="OpenPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
  17. <COLUMNSOURCECOLUMNSOURCE="3"NAME="HighPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
  18. <COLUMNSOURCECOLUMNSOURCE="4"NAME="LowPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
  19. <COLUMNSOURCECOLUMNSOURCE="5"NAME="ClosePrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/>
  20. <COLUMNSOURCECOLUMNSOURCE="6"NAME="Volumn"xsi:type="SQLINT"/>
  21. </ROW>
  22. </BCPFORMAT>

暂且先保存在C盘目录下吧,文件名叫BCPFORMAT.xml

编写BULKINSERT语句:

  1. BULKINSERTTestStock
  2. FROM'C:\SH600475.txt'
  3. WITH(
  4. FORMATFILE='C:\BCPFORMAT.xml',
  5. FIELDTERMINATOR=',',
  6. ROWTERMINATOR='\r\n')

执行BULKINSERT的速度很快,结果如下:

同样的效果,如果从文本中读一行记录,执行一次INSERTINTO语句的话,需要10秒左右,由此可见BULKINSERT的高效。

关于使用BULK INSERT将大量数据导入SQL Server数据库的知识就介绍到这里了,希望本次的介绍能够对您有所帮助。

转载于:https://www.cnblogs.com/XuZhu-FengQingYang/p/3783449.html

BULK INSERT如何将大量数据高效地导入SQL Server相关推荐

  1. BULK INSERT如何将大量数据高效地导入SQL Server(转)

    在实际的工作需要中,我们有时候需将大量的数据导入到数据库中.这时候我们不得不考虑的就是效率问题.本文我们就介绍了一种将大量数据高效地导入SQL Server数据库的方法,该方法是使用BULK INSE ...

  2. Python 批量处理 Excel 数据后,导入 SQL Server

    作者 | 老表 来源 | 简说Python 1.前言 2.开始动手动脑 2.1 拆解+明确需求 2.2 安装第三方包 2.3 读取excel数据 2.4 特殊数据数据处理 2.5 其他需求 2.6 完 ...

  3. Python批量处理Excel数据后,导入SQL Server

    1.前言 2.开始动手动脑 2.1 拆解+明确需求 2.2 安装第三方包 2.3 读取excel数据 2.4 特殊数据数据处理 2.5 其他需求 2.6 完整调用代码 3.后言后语 1.前言 今天我们 ...

  4. 如何将数据从Excel文件导入SQL Server数据库

    There are many ways to import data from an Excel file to a SQL Server database using: 有多种方法可以使用以下方法将 ...

  5. Bulk Insert:将文本数据(csv和txt)导入到数据库中

    将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INS ...

  6. 使用SSIS包导入SQL Server FILESTREAM数据

    初始配置 (Initial configuration) We have been exploring the SQL Server FILESTREAM feature in this ongoin ...

  7. net以execl做数据库_C#.NET Excel文件数据导入SQL Server数据库完整代码

    展开全部 在日常的项目中,Excel,Word,txt等格式的数62616964757a686964616fe58685e5aeb931333337626235据导入到数据库中是很常见 这里将分为.n ...

  8. 将Excel数据导入SQL Server数据库

    遇到了一个需求,需要将Excel中的数据导入SQL Server数据库中,当然,不是使用企业管理器之类的直接导入数据的那种,而是要做到程序中.本来我最初的考虑是将Excel中的数据读到dataset中 ...

  9. python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库

    如何用python将excel数据导入到postgresql数据库中 把excel表格另存为csv文件 python将exce文件含有多个sheet同时l导入sqlserver数据库 需要使用xlrd ...

最新文章

  1. pandas将dataframe原有的数据列名称转化为整数数值列名称(convert dataframe column labelsl into integers)
  2. RxJavaMVPRetrofit
  3. response设置content-type
  4. Apple Music 会员免费领啦!
  5. [转]深入理解 __doPostBack
  6. IPC$连接常见问答
  7. B站百万播放量Java零基础教程视频(适合Java 0基础,Java初学入门),史上最细Java零基础教学视频
  8. Raft算法的Leader选举和日志复制过程
  9. 通用窗口类 Inventory Pro 2.1.2 Demo1(中)
  10. C#socket编程序(二)
  11. c++常用备忘(持续更新)
  12. 软件实习项目4——校园一卡通管理系统(实验准备与设计)
  13. IDA Pro使用技巧及大杂烩
  14. web_0207_1
  15. 慕课软件质量保证与测试(第九章.程序中隐藏错误数量估计)
  16. Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7
  17. com、cn域名到期删除时间
  18. IDE输入import语句自动消失
  19. FS2222可调过压过流芯片IC,40V耐压过压保护可调OVP可调OCP
  20. 当语音遇到人工智能,走进《智能语音时代》

热门文章

  1. 很励志的故事(尸山代码)
  2. 小米门卡协议加载失败_小米门禁卡没反应怎么回事
  3. ajax上传 java,javaWeb中使用ajax上传文件
  4. 计算机专业的就业前景怎么样?
  5. 小数乘分数怎么算过程_小数乘分数如何计算?
  6. P4735 最大异或和 01可持久化Trie树模板
  7. [luogu] P4735 最大异或和
  8. 生成化学表达式下标、上标数字
  9. Swagger-ui.html页面简单的修改
  10. 华中科技大学计算机专业排名2018,2018华中科技大学专业排名及分数线 王牌专业有哪些...