SQL Версия сервера: 2012
У нас есть процедура T- SQL, похожая на
И этот код выполняется несколькими потоками. Итак, что мы наблюдаем в среде масштабирования, так это ошибка вставки дубликата (2 потока обнаружили, что он не существует, и обе пытаются вставить его.
По нашему мнению, единственный выход - выполнить повторную попытку logi c on insert faluer. Один из вариантов - повторить logi c при обработке исключений, а другой вариант - перехватить исключение на уровне приложения (. NET) и повторить тот же pro c. Во-первых, мы должны переписать оператор обновления еще раз в исключении, и проблема со вторым вариантом заключается в том, что мы должны сначала перехватить исключение, проверить, имеет ли оно уникальное ограничение, а затем снова выполнить pro c.
Есть ли какие-либо улучшения / другие идеи в этом случае для многопоточного приложения?
Заранее спасибо.