Эксплуатация SQL Server

Блокировки, ожидания и head blocker в SQL Server

Длинный список заблокированных сеансов делает каждый запрос подозрительным. Обычно одна транзакция в начале цепочки определяет длительность и масштаб инцидента.

Блокировки, ожидания и head blocker в SQL Server

Длинный список заблокированных сеансов делает каждый запрос подозрительным. Обычно одна транзакция в начале цепочки определяет длительность и масштаб инцидента.

Что измерять

Соберите цепочку, тип и ресурс ожидания, начало транзакции, открытый оператор, isolation level, приложение и недавний план. Отделите блокировки от CPU, I/O, памяти и параллелизма.

Практический подход

Найдите head blocker до завершения нижестоящих сеансов, выясните причину открытой транзакции, сократите ее, улучшите обоснованные пути доступа и выявляйте забытые транзакции.

Чего следует избегать

Не завершайте все заблокированные сеансы, не анализируйте накопленные ожидания без интервала и не применяйте NOLOCK без согласия на неверные результаты.

Эксплуатационный результат

Правильная реакция восстанавливает сервис и сохраняет доказательства для предотвращения повторения.

Проверка перед production

Зафиксируйте исходные показатели и определите ожидаемое улучшение. Проверьте решение на репрезентативных данных и при реальной параллельной нагрузке. Сохраните исходную настройку или план, подготовьте откат и наблюдайте следующий обычный пик нагрузки.

Чтобы применить этот подход к конкретной среде SQL Server, используйте форму ниже и укажите версию SQL Server, размер базы, профиль нагрузки и уже собранные данные.

Вопрос по статье

Есть вопрос по этой теме?

Расскажите, что вы оцениваете или с какой проблемой столкнулись. Мы ответим с практической рекомендацией.

Inquiries are not enabled in this preview.

Задать вопрос по этой статье