我正在使用以下脚本将100,000条记录插入到表中。基本上int从500,001到600,000被插入。我将整型转换为一个字符串,然后在表格中以字符串的形式插入一个整数。我正在使用合并来检查记录是否已经存在。将100000条记录插入SQL Server的最快方法
DECLARE @first AS INT
SET @first = 500001
DECLARE @step AS INT
SET @step = 1
DECLARE @last AS INT
SET @last = 600000
BEGIN TRANSACTION
WHILE(@first <= @last)
BEGIN
MERGE dbo.Identifiers As target
USING (SELECT CAST(@first as varchar(10)) AS Identifier) AS source
ON (source.Identifier = target.Identifier)
WHEN NOT MATCHED THEN
INSERT (Identifier)
VALUES (source.Identifier);
SET @first += @step
END
COMMIT TRANSACTION
它需要2分钟以上的加载。我正在做一些非常错误的事情,但无法追查到哪里。 注意:该表在标识符列上具有唯一的非聚簇索引。
“加载时间超过2分钟” - 您为什么认为这太多?我们不知道您的硬件设置。 – 2014-09-11 07:05:35
它是我们应用程序中加载过程的一部分。我读了数百万条记录的快速插入,这是10万条记录。我假设我做了一些错误的事情,所以想澄清一下。 i7处理器与8 GB的RAM 64位操作系统是我的系统配置 – Vinoth 2014-09-11 07:10:16