Вместо SELECT + UPDATE использовать Upsert с учетом
https://michaeljswart.com/2017/07/sql-server-upser...
По сути что оно делает. Берет XML файл. Собирает из него массив того что надо загрузить в базу.
И по каждому элементу массива смотрит, если в базе есть (ещет по коду), то обновляет свойства, если нет, добавляет новый элемент.
А если речь о прейскуранте, когда данные прейскуранта обычно заменяются старые на новые целиком, тогда имеет смысл создать новую таблицу с одного XML, а старую удалить. Тогда таблица текущего прейскуранта не будет запираться на обновление.
Если импорт из XML настолько ресурсоемкая операция, что влияет на продакшн, то можно понизить приоритет процесса импорта. Или же выполнять с другого сервера.