Hidhoud1991 Ответов: 1

Уникальная вставка в SQL


Привет,

У меня есть таблица базы данных SQL server с более чем 30 миллионами записей, как лучше всего вставить уникальные значения в эту таблицу

Любое предложение.

Что я уже пробовал:

Я пытался:

если не существует (выберите * из MyTable, где Name = @Name и ... )
начать
вставьте в MyTable (Name,...) значения (@Name,...)
конец

Но это займет много времени, чтобы выполнить

Я создал индекс для каждого столбца, проверяя, существует ли он

0x01AA

Почему бы не _one_ уникальный индекс над столбцами, которые у вас есть в предложении "where"?

Hidhoud1991

они будут превышать 900 байт, разрешенных для размера индекса

0x01AA

Я понимаю. Может быть, это даст вам идею, но я предполагаю, что вы уже все знаете: Гостиная с SQL&амп;#8217;ы 900 байт индекса длины ключа предел &амп;#8211; Барт Дункан и amp;#039;с SQL блог с [^]

1 Ответов

Рейтинг:
11

Vignesh Mani

Я думаю, что вам нужно вставить данные одной таблицы в другую таблицу.

INSERT INTO destTable
SELECT Field1,Field2,Field3,... 
FROM srcTable
WHERE NOT EXISTS(SELECT * 
                 FROM destTable 
                 WHERE (srcTable.Field1=destTable.Field1 and
                       SrcTable.Field2=DestTable.Field2...etc.)
                 )




insert into test.t2(name2) 
select distinct name1 from test.t1 t1 where NOT EXISTS(select name2 from test.t2 t2 where t1.name1=t2.name2);