自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

BULK INSERT如何將大量數(shù)據(jù)高效地導(dǎo)入SQL Server

數(shù)據(jù)庫(kù) SQL Server
本文我們?cè)敿?xì)介紹了BULK INSERT將大量數(shù)據(jù)高效地導(dǎo)入SQL Server數(shù)據(jù)庫(kù)的方法,希望本次的介紹能夠?qū)δ兴鶐椭?/div>

在實(shí)際的工作需要中,我們有時(shí)候需將大量的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。這時(shí)候我們不得不考慮的就是效率問(wèn)題。本文我們就介紹了一種將大量數(shù)據(jù)高效地導(dǎo)入SQL Server數(shù)據(jù)庫(kù)的方法,該方法是使用BULK INSERT來(lái)實(shí)現(xiàn)的,接下來(lái)就讓我們來(lái)一起了解一下這部分內(nèi)容。

源數(shù)據(jù)(文本文件)

下載了大量的股票歷史數(shù)據(jù),都是文本格式的:

BULK INSERT如何將大量數(shù)據(jù)高效地導(dǎo)入SQL Server

每個(gè)文件第一行包含股票代碼,股票名稱,數(shù)據(jù)類型.第二行是數(shù)據(jù)列的名稱:

BULK INSERT如何將大量數(shù)據(jù)高效地導(dǎo)入SQL Server

數(shù)據(jù)表

在數(shù)據(jù)庫(kù)中新建了一個(gè)數(shù)據(jù)表TestStock,并設(shè)置以下字段,但沒(méi)有關(guān)于"成交額"的字段,因?yàn)橐院蟮挠?jì)算不會(huì)用到這個(gè)數(shù)據(jù)。另外這里關(guān)于價(jià)格的字段沒(méi)有使用money數(shù)據(jù)類型,decimal足矣。

BULK INSERT如何將大量數(shù)據(jù)高效地導(dǎo)入SQL Server

編寫格式化文件

當(dāng)前數(shù)據(jù)的格式化文件為:

  1. <?xmlversionxmlversion="1.0"?> 
  2.  
  3. <BCPFORMAT 
  4.  
  5. xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
  6.  
  7. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
  8.  
  9. <RECORD> 
  10.  
  11. <FIELDIDFIELDID="1"xsi:type="CharTerm"TERMINATOR=","/> 
  12.  
  13. <FIELDIDFIELDID="2"xsi:type="CharTerm"TERMINATOR=","/> 
  14.  
  15. <FIELDIDFIELDID="3"xsi:type="CharTerm"TERMINATOR=","/> 
  16.  
  17. <FIELDIDFIELDID="4"xsi:type="CharTerm"TERMINATOR=","/> 
  18.  
  19. <FIELDIDFIELDID="5"xsi:type="CharTerm"TERMINATOR=","/> 
  20.  
  21. <FIELDIDFIELDID="6"xsi:type="CharTerm"TERMINATOR=","/> 
  22.  
  23. <FIELDIDFIELDID="7"xsi:type="CharTerm"TERMINATOR="\r\n"/> 
  24.  
  25. </RECORD> 
  26.  
  27. <ROW> 
  28.  
  29. <COLUMNSOURCECOLUMNSOURCE="1"NAME="Date"xsi:type="SQLDATE"/> 
  30.  
  31. <COLUMNSOURCECOLUMNSOURCE="2"NAME="OpenPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/> 
  32.  
  33. <COLUMNSOURCECOLUMNSOURCE="3"NAME="HighPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/> 
  34.  
  35. <COLUMNSOURCECOLUMNSOURCE="4"NAME="LowPrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/> 
  36.  
  37. <COLUMNSOURCECOLUMNSOURCE="5"NAME="ClosePrice"xsi:type="SQLDECIMAL"PRECISION="6"SCALE="2"/> 
  38.  
  39. <COLUMNSOURCECOLUMNSOURCE="6"NAME="Volumn"xsi:type="SQLINT"/> 
  40.  
  41. </ROW> 
  42.  
  43. </BCPFORMAT> 

暫且先保存在C盤目錄下吧,文件名叫BCPFORMAT.xml

編寫B(tài)ULKINSERT語(yǔ)句:

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

執(zhí)行BULKINSERT的速度很快,結(jié)果如下:

BULK INSERT如何將大量數(shù)據(jù)高效地導(dǎo)入SQL Server

同樣的效果,如果從文本中讀一行記錄,執(zhí)行一次INSERTINTO語(yǔ)句的話,需要10秒左右,由此可見(jiàn)BULKINSERT的高效。

關(guān)于使用BULK INSERT將大量數(shù)據(jù)導(dǎo)入SQL Server數(shù)據(jù)庫(kù)的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴鶐椭?/p>

【編輯推薦】

  1. SQL Server 2005數(shù)據(jù)庫(kù)nolock使用詳解
  2. SQL Server 2005無(wú)法連接到本地服務(wù)器的解決
  3. SQL Server如何查詢當(dāng)前服務(wù)器有多少連接請(qǐng)求
  4. SQL Server通過(guò)整理索引碎片和重建索引提高速度
  5. SQL Server 2008安裝無(wú)法通過(guò)性能計(jì)數(shù)器一致性的解決
責(zé)任編輯:趙鵬 來(lái)源: 博客園
相關(guān)推薦

2011-08-01 09:09:07

SQL Server SQL Server 數(shù)據(jù)庫(kù)

2017-11-21 08:36:00

MongoDB關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入

2011-07-08 14:54:38

系統(tǒng)監(jiān)視器 SQL Server

2018-10-22 14:48:39

KafkaHadoop代碼

2010-04-16 14:26:14

bulk Insert

2011-07-28 18:08:51

SQL Server MySQL

2010-06-24 09:47:47

SQL Server

2011-07-12 13:01:11

ExcelOracleSql Server

2019-09-27 12:44:03

數(shù)據(jù)建模企業(yè)數(shù)據(jù)存儲(chǔ)

2021-01-28 09:00:00

SQL數(shù)據(jù)庫(kù)NoSQL

2011-07-28 15:53:06

SQL Server數(shù)合并查詢

2018-10-15 13:57:38

Hadoop數(shù)據(jù)庫(kù)MySQL

2021-03-08 07:46:53

Git開(kāi)源控制系統(tǒng)

2011-03-11 13:26:23

SQL Server數(shù)導(dǎo)入數(shù)據(jù)

2023-12-29 07:04:28

Go項(xiàng)目Docker編寫

2022-05-11 09:51:10

云計(jì)算公共云

2021-08-05 18:34:55

IntelliJ ID高效

2023-02-17 12:07:45

ChatGPTPython

2019-10-17 09:45:02

照片SD卡Windows 10

2017-06-28 08:14:57

數(shù)據(jù)庫(kù)區(qū)塊鏈比特幣
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)