日期:2014-05-17  浏览次数:20425 次

access导入SQL Server,慢死
有四个表,从另一台电脑的SQL Server导入到access,也是很快的(客户操作的,我不知道具体时间,但不至于无法忍受)。
同样的数据,我从access再导入到我的电脑的SQL Server

我是用select * from 这样把数据查出来,(几乎瞬间查出来),再通过拼SQL语句,一条一条的insert进去,
刚开始的时候,还能瞬间一千来行,越到后来越慢,现在1秒都没有一行了,吃了个饭回来,才加了500来行。SQL Server 2005 进程持续占用CPU25%,别的进程几乎是0。

为了插的时候方便,暂时把表的ID列的主键属于也去掉了。

到底是什么原因呢?

------解决方案--------------------
不要在程序端循环insert,在SQL Server端做循环insert

CREATE TABLE #tempTable([Item ID] [bigint], [Item Name] nvarchar(30)) 
DECLARE @counter int 
SET @counter = 1 
WHILE (@counter < 100000) 
BEGIN 
INSERT INTO #tempTable VALUES (@counter, 'Hammer') 
SET @counter = @counter + 1 
END 
SELECT * FROM #tempTable 
DROP TABLE #tempTable
------解决方案--------------------
可以使用bcp ,backup insert 等批量插入命令