Обновление Top для чанков

У нас есть цикл для обновления таблицы с несколькими миллионами строк кусками.

В настоящее время мы тестируем блоки размером 50 КБ, но некоторые итерации фактически обновляют немного меньше (например, 49983).

Это общая структура цикла, который мы используем:

WHILE @Row<=@loop
BEGIN
    update top (50000) MR
    set mr.Id_P = mp.PKey
    from DWH.[MResults] MR join DWH.MappingP MP
    on MR.P_Root=MP.Id_Root and MR.P_Ext=MP.Id_Ext
    and MR.id_p is null

set @Row=@Row+1
END

Разве каждая итерация не должна затрагивать 50 тыс. Строк? Чем это вызвано?

Спасибо!

Не могли бы вы задать свой вопрос редактировать и добавить SQL-сервер, который вы используете?

Corion 18.12.2018 11:51

Я думаю, это может произойти, если ваш join имеет несколько совпадений в обновляемой таблице.

Gordon Linoff 18.12.2018 13:02

@GordonLinoff, почти уверен, что мы встречаем несколько совпадений в этом запросе. Вы можете объяснить, как это влияет на результат? Спасибо!

Gidil 18.12.2018 13:13

@Gidil. . . Для обновления выбрано 500 000 результатов от FROM, но они представляют менее 500 000 строк.

Gordon Linoff 18.12.2018 13:46
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
50
0

Другие вопросы по теме