Блокирующие запросы и взаимоблокировки в базах данных Ключ-АСТРОМ

Материал из Документация Ключ-АСТРОМ
Версия от 12:42, 21 сентября 2026; IKuznetsov (обсуждение | вклад) (Новая страница: « = Блокирующие запросы и взаимоблокировки в базах данных Ключ-АСТРОМ = == Обзор == Конфликты блокировок, блокирующие запросы и взаимоблокировки — одни из самых распространённых причин снижения производительности баз данных. Приложение '''Базы данных''' о...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Блокирующие запросы и взаимоблокировки в базах данных Ключ-АСТРОМ

Обзор

Конфликты блокировок, блокирующие запросы и взаимоблокировки — одни из самых распространённых причин снижения производительности баз данных. Приложение Базы данных отображает метрики блокировок и ожиданий с отслеживаемых экземпляров баз данных, чтобы вы могли обнаруживать конфликты на ранней стадии, выявлять участвующие запросы и устранять проблемы до того, как они повлияют на производительность приложения.

Ключевые термины

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

  • Блокирующий запрос
 Сессия, которая удерживает блокировку ресурса (строки, страницы или таблицы), необходимого другой сессии. Ожидающая сессия блокируется до снятия блокировки или истечения тайм-аута. Одна длительная транзакция может заблокировать множество сессий одновременно, снижая пропускную способность.
  • Взаимоблокировка
 Две или более сессий удерживают блокировки, необходимые друг другу, поэтому ни одна не может продолжить работу. Движок обнаруживает цикл и завершает одну сессию (жертву взаимоблокировки), которая должна повторить попытку. Блокировка — это очередь; взаимоблокировка — это цикл.
  • Событие ожидания
 Сигнал движка, фиксирующий, почему сессия приостановилась. Ожидания блокировок — одна из категорий; другие включают ввод-вывод, планирование CPU, сеть и конфликты защёлок. Анализ событий ожидания вместе с метриками блокировок и взаимоблокировок показывает, где база данных тратит время на ожидание, а не на выполнение.

Оповещения о конфликтах блокировок

Создавайте оповещения о здоровье на основе метрик блокировок и ожиданий, чтобы получать уведомления при достижении конфликтами порогового значения. Используйте вкладку Шаблоны оповещений в приложении Базы данных или настройте пользовательские детекторы в приложении Обнаружение аномалий. Категория оповещений Запросы охватывает запросы, которые могут вызывать блокировки; категория Активность экземпляра базы данных охватывает нижестоящие эффекты, такие как количество подключений и доступность.

Пробелы в мониторинге

Если данные метрик блокировок или ожиданий отсутствуют для экземпляра базы данных, вкладка Рекомендации в приложении Базы данных отмечает это в разделе Проверка пробелов в мониторинге. Используйте это представление, чтобы выявить неполную видимость и понять, какие изменения конфигурации необходимы, например включение набора функций waitEvents для Oracle или включение инструментирования Performance Schema для MySQL или MariaDB.