我正在使用以下腳本將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