Часто встречаются SELECT, UPDATE, BULK INSERTS, происходящие в базе данных. Таблицы и интенсивная блокировка происходят, и каждый раз BULK INSERT выбирается как жертва взаимоблокировки, и мы теряем некоторые данные из-за сбоя BULK INSERT.Решение проблем с тупиком
SELECT блокирует BULK INSERT, или UPDATE блокирует BULK INSERT каждый раз или наоборот, и все эти утверждения (запросы) поступают из приложения. Мы не используем какие-либо хранимые процедуры (к сожалению, мы не можем использовать хранимые процедуры)
Снимки базы данных READ Готовая, простая модель восстановления, правильно проиндексирована и не обнаружена фрагментация. Статистика обновлена, MAXDOP настроен правильно, оптимизирован для ad hoc workloads = 1, AUTO_UPDATE_STATISTICS_ASYNC ON, Автоматический рост - 500 МБ для mdf и ldf, темп автоматического роста tempdb - 500 мб для mdf и ldf ..btw, все базы данных сидят на такой же диск. Память составляет 6 ГБ. Общий размер баз данных составляет 60 ГБ. SQL Server 2012 Std edition. PageFile.Sys - 9.8 ГБ. Wait Stats - LCK_M_IX (59%), PAGEIOLATCH_SH (25%)
Мне было интересно, если есть способ решить эту проблему?
Есть ли способ заставить Кодекс, исходящий из приложения (план запроса) использовать NO LOCK на SELECT? или любым способом принудительно выполнить любой запрос или любое приложение для входа в xyz для использования NO LOCK?
Есть ли изменение уровня ИЗОЛЯЦИИ, ЧТОБЫ ПРОЧИТАТЬ НЕОБХОДИМОЕ помощь?
Установить приоритет блокировки LOW?
Это довольно большая тема для SO, но вы заглянули в детали, почему это затормозит? Выбирают ли читающие огромные части таблицы или закрывают всю таблицу? –
... что вы ожидаете? «BULK INSERT» предназначен для самостоятельной работы или одновременно с другими операциями «BULK INSERT». Это определенно не будет хорошо сочетаться с другими заявлениями в одной таблице. Можете ли вы «BULK INSERT» в промежуточном столе вместо этого, а затем сделать регулярный «INSERT» оттуда? –
Можете ли вы изменить часть своей рабочей нагрузки на более мелкие партии? Я уверен, что есть более элегантные решения, но это может обеспечить временное облегчение, и это означало бы, что вам не придется перезагружать всю объемную вставку. –