Привет всем, у меня есть следующий сценарий слияния sql, который отлично работает для сравнительно небольшого числа строк (до 20 000 я нашел).Однако иногда данные, которые у меня есть в таблице B, могут содержать до 100 000 строк, и я пытаюсь объединить их с таблицей A (которая в настоящее время составляет 60 миллионов строк).Это занимает много времени для обработки, и это понятно, поскольку необходимо объединить 100 000 с 60 миллионами существующих записей!
Мне просто было интересно, есть ли лучший способ сделать это.Или возможно иметь какой-то счет, поэтому объедините 20 000 строк из таблицы B в таблицу A. Затем удалите эти объединенные строки из таблицы B. Затем выполните следующие 20 000 строк и так далее, пока в таблице B не останется строк?
Сценарий:
MERGE
Table A AS [target]
USING
Table B AS [source]
ON
([target].recordID = [source].recordID)
WHEN NOT MATCHED BY TARGET
THEN
INSERT([recordID],[Field 1]),[Field 2],[Field 3],[Field 4],[Field 5])
VALUES([source].[recordID],[source].[Field 1],[source].[Field 2],[source].[Field 3],[source].[Field 4],[source].[Field 5]
);