В настоящее время я изучаю проблему с одной из наших баз данных SQL 2008, которая, как представляется, блокируется. Он будет работать в течение нескольких часов, а затем все наши приложения, использующие эту базу данных, перестанут работать. Это происходит уже около 2 недель, до этого не было никаких проблем. Ничего особенного не изменилось за это время, конечно, ничего, что должно было вызвать эту проблему.
У меня запущен SQL Profiler, чтобы попытаться выяснить, что происходит. Он показывает, что сотни запросов выполняются каждую секунду в течение дня без каких-либо проблем, а затем внезапно возникает 10-минутный промежуток, когда выполняется только несколько запросов. Осматривая это время, я обнаружил, что запрос вставки выполнялся чуть более часа. Один и тот же запрос (но разные данные) блокировался в базе данных несколько раз, когда все зависало.
Обычно, чтобы запустить его, нам нужно перезапустить службу сервера sql, что, очевидно, избавляет от любых блокировок и убивает любые запросы, и все происходит снова. Однако затем он снова останавливается, иногда в течение часа, а иногда несколько часов спустя.
Это простая вставка, которая в основном просто говорит: «вставьте в таблицу (x, y, z) выберите x, y, x из исходной таблицы». Когда я запускаю часть выбора оператора, которая занимала час, она не занимает времени (буквально она говорит 00:00:00), поэтому я не совсем понимаю, что происходит.
Некоторое время назад появлялось несколько ошибок, говорящих о том, что одна из таблиц может быть повреждена (но не место назначения или источник оператора вставки). Мы выполнили команду DBCC для этой таблицы, но она не сообщала об ошибках.
Я собираюсь взглянуть на наше приложение .net, которое выполняет этот оператор, чтобы увидеть, есть ли что-то там, что его вызывает, но вряд ли и интересно, видел ли кто-нибудь что-то подобное раньше и знает, что может быть причиной?
Заранее спасибо.