首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

从 Excel 导入到 SQL 的大数据效率有关问题

2013-01-25 
从 Excel 导入到 SQL 的大数据效率问题导入数据量:10W。环境:Sql server 2008 R2导入用时 29分钟。每条执行

从 Excel 导入到 SQL 的大数据效率问题
导入数据量:10W。
环境:Sql server 2008 R2
导入用时 29分钟。
每条执行语句:

那可以先插入到一个临时表(可以是实体临时表),然后再做sql层面的匹配吗?
[解决办法]
USE test
GO


-->生成表tb

if object_id('tb') is not null 
drop table tb
Go
Create table tb([Type] nvarchar(1))
Insert into tb
Select N'A'
Union all Select N'B'


INSERT INTO TB 
SELECT * FROM OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','EXCEL 12.0;HDR=YES;IMEX=2;DATABASE=H:\test.xls',[Sheet1$]) AS t
WHERE NOT EXISTS(SELECT 1 FROM tb AS x
WHERE x.Type=t.TYPE
)

/*
(4 個資料列受到影響)
*/       

SELECT * FROM tb
/*
Type
----
A
B
C
D
E
F

*/

[解决办法]
不要一条条搞,1000-10000条先取出ID集中delete,然后用bulkcopy插入,如果用.net,sql2008支持datatable传入表变量,可以通过exists来删除一批数据。



io无压力的话,预计每10000数据插入需1s,删除看目标表数据量,但也就几秒能够搞定。1分钟处理几十万元没问题

热点排行