日期:2014-05-18  浏览次数:20506 次

一下插入4W条数据到数据库,怎么样的效率最高 ?
做B/S的时候啊


一下插入4W条数据到数据库,怎么样的效率最高  


------解决方案--------------------
使用bulk insert

如果原表记录数超级庞大就先删除索引再插入,插入完成后在建回原来的索引

这种情况是插入操作非常频繁才这样做
------解决方案--------------------
insert tbName2(col, ...)
select top 40000 col, ... from tbName1
------解决方案--------------------
用bcp
1.以竖线形式分隔各字段
EXEC master..xp_cmdshell 'bcp "select top 40000 col1,col2,col..,coln from database.dbo.table " queryout e:\test.txt -c -U "sa " -P "mima " -t "| " '
2.根据文档导入数据
EXEC master..xp_cmdshell 'bcp databse.dbo.table in e:\test.txt -c -q -U "sa " -P "mima " -t "| " '
3.在第二步骤之前先检查索引,如包含索引对表的影响会较大的情况下,drop index indexname ON dbo.table,导入之后再create index indexname ON dbo.table(col)

------解决方案--------------------
或用
BULK INSERT dbo.table
FROM 'e:\test.tbl '
WITH
(
FIELDTERMINATOR = ' | ',
ROWTERMINATOR = '\n '
)
在索引对插入影响较小的情况下四万条记录marco08(天道酬勤)的最快。