Published on

November 30, 2016

Выявление и устранение тупиковых ситуаций в SQL Server

При поддержке стороннего приложения важно выявлять и устранять любые проблемы производительности, которые могут возникнуть. Одной из распространенных проблем является возникновение тупиковых ситуаций, которые могут значительно влиять на производительность приложения. В этой статье мы рассмотрим, как выявить основные таблицы, затронутые тупиковыми ситуациями, и предоставить доказательства поставщику для их устранения.

Включение флагов трассировки

Для получения дополнительной информации о тупиковых ситуациях мы можем включить флаги трассировки 1204 и 1222 в SQL Server. Эти флаги трассировки предоставляют подробную информацию о ресурсах, типах блокировок и текущих командах, затронутых тупиковыми ситуациями. Включив эти флаги трассировки, мы можем получить больше информации в журналах ошибок.

Создание таблиц и хранимых процедур

Для извлечения и сохранения информации о тупиковых ситуациях из журналов ошибок нам необходимо создать три таблицы: DeadlockTable, DeadlockVictim и DeadockObject. В этих таблицах будет храниться соответствующая информация, такая как дата журнала, информация о процессе и текст, связанный с тупиковой ситуацией.

Кроме того, нам нужно создать три хранимые процедуры: usp_RefreshDeadockObject, usp_RefreshDeadockVictim и usp_RefreshDeadlockTable. Эти хранимые процедуры заполнят таблицы информацией о тупиковых ситуациях, извлеченной из журналов ошибок с использованием системной хранимой процедуры xp_readerrorlog.

Заполнение таблиц

Мы можем запланировать выполнение хранимых процедур на ночь и заполнить таблицы информацией о тупиковых ситуациях. Это гарантирует, что таблицы регулярно обновляются последними данными о тупиковых ситуациях.

Запрос таблиц

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

Предоставление доказательств поставщику

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

Заключение

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

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.