Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
sky Member Откуда: Сообщений: 281 |
Коллеги, помогите разобраться с такой проблемой. Периодически на сервере возникают блокировки, которые парализуют работу пользователей. Вся необходимая работа по оптимизации запросов проведена - очень долгих нет. Все select выполняются с хинтами NOLOCK или при уровне изоляции READ UNCOMMITED. При помощи запросов и программы SQLBlocks выяснил, что "вешают" всех запросы, у которых статус awaiting command, но количество открытых транзакций не равно 0. Ясно, что такого быть не должно. К сожалению, я могу увидеть только последнюю выполненную блокирующим SPID команду (это так?), но зачастую, команда совершенно безобидная и не может блокировать ресурсов, то есть "намусорил" кто-то другой. Почитал, что такое может быть, когда используются вложенные транзакции (здесь они имеют место быть), какая-то внутренняя отваливается без rollback а XACT_ABORT не установлен. Как отловить цепочку запросов, которая приводит к такому результату и как на тестовых данных спровоцировать такую ситуацию. Предполагаю, что отловить можно Profiler-ом, но блокировки возникают не постоянно, а держать его включенным постоянно не хочется, поэтому думаю каким-то образом спровоцировать возникновение такой блокировки и примерить это все к подозрительному месту. |
28 май 13, 14:38 [14359582] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
На каком ресурсе ждут "парализованные" пользователи? |
28 май 13, 14:39 [14359594] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||
28 май 13, 14:41 [14359602] Ответить | Цитировать Сообщить модератору |
sky Member Откуда: Сообщений: 281 |
Гавриленко Сергей Алексеевич, Блокированные процессы висят с типом блокировки LCK_M_S (по ключу) |
28 май 13, 14:51 [14359670] Ответить | Цитировать Сообщить модератору |
sky Member Откуда: Сообщений: 281 |
спасибо, почитаю, будем вместе с разработчиками клиентской части разбираться |
28 май 13, 14:52 [14359675] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||
28 май 13, 14:54 [14359701] Ответить | Цитировать Сообщить модератору |
sky Member Откуда: Сообщений: 281 |
Значит будем искать, где оное пропущено, пока не все подозрительные места пересмотрел. Спасибо! |
28 май 13, 15:02 [14359768] Ответить | Цитировать Сообщить модератору |
ambarka_max Member Откуда: Россия Сообщений: 517 |
Фишка в том, что после этого
приложение должно осознавать проблему и сбрасывать транзакцию, а не работать в ней далее. Иначе появятся такие летучие голландцы, что замучаешься потом что-то доказывать. |
||
28 май 13, 17:46 [14361026] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |