Ну там речь была про разовый перелив данных, здесь эскалации не всегда в пользу, если система жива и проседает не её перфоманс, а сам мердж данных.
Но как видно выше речь была не в блокировках и их эскалациях, а в индексе.
в итоге я переписал запрос, несмотря на то, что индекс улучшил ситуацию. Выбираю данные, которые участвуют в мердже во временную таблицу, произвожу мердж между двумя временными таблицами и отдельные апдейт/инсерт/delete/
навеяло вот этим
https://www.sqlservercentral.com/forums/topic/big-performance-problem-with-merge-statementIn this case, you're using the WHEN NOT MATCHED predicate, which requires a Full Outer Join to include matched rows and unmatched rows in a single pass.
The individual DELETE and UPDATE statements do not suffer from this issue, so they actually perform better.
пы.сы могу быть не прав, но лок стал меньше, так как мердж лочит таблицу на все время, пока сопоставляет. А тут мерджим отдельно на временных таблицах, а отдельные операции вставкм/удаления работают быстро