Я использую следующий скрипт для вставки 100 000 записей в таблицу. В основном int от 500001 до 600 000. Я вставляю целое число в строку и вставляя coz, как я хочу его в таблице (целое число в виде строки). Я использую слияние, чтобы проверить, существует ли запись или нет.Самый быстрый способ вставить 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 минут. Я делаю что-то ужасно неправильно, но не могу проследить где. Примечание: таблица имеет уникальный некластеризованный индекс в столбце идентификатора.
«ts занимает более 2 минут для загрузки» - и почему вы думаете, что это слишком много? Мы не знаем настройки вашего оборудования. –
Его часть процесса загрузки в нашем приложении. Я читал о молниеносных вставках миллионов записей, и это 100 000 записей. Я предполагаю, что я делаю что-то неправильно, поэтому хочу пояснить это. i7 Процессор с 8 ГБ RAM 64-разрядной ОС - это моя системная конфигурация – Vinoth