Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SQL_LCK_M_X_BLOCKING 1С:Предприятие и СУБД

Гайд 1С: Диагностика и устранение долгих блокировок LCK_M_X в SQL Server

Обновлено: 26.08.2026 · Официальная документация ↗

В моменты пиковой нагрузки в системе фиксируются критические задержки:

  • Массовое зависание пользователей с ошибкой Превышено время ожидания предоставления блокировки.
  • В системных представлениях SQL Server фиксируются ожидания типа LCK_M_X (Exclusive Lock) и LCK_M_IX (Intent Exclusive).
  • Появление длинных цепочек блокировок (Head Blocker), где один сеанс блокирует десятки остальных.

1. Поиск сеанса-источника блокировки (Head Blocker) через DMV

Выполните диагностический SQL-запрос для выявления корневого сеанса, удерживающего блокировку:

SELECT 
    r.session_id AS BlockedSession,
    r.blocking_session_id AS HeadBlocker,
    r.wait_type,
    r.wait_time AS WaitTime_ms,
    r.wait_resource,
    t.text AS SQL_Text,
    ib.text AS Blocker_SQL_Text
FROM sys.dm_exec_requests r
JOIN sys.dm_exec_connections c ON r.session_id = c.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
LEFT JOIN sys.dm_exec_requests br ON r.blocking_session_id = br.session_id
LEFT JOIN sys.dm_exec_connections bc ON r.blocking_session_id = bc.session_id
OUTER APPLY sys.dm_exec_sql_text(bc.most_recent_sql_handle) ib
WHERE r.blocking_session_id <> 0;

2. Сопоставление SPID SQL Server с сеансом 1С

В технологическом журнале 1С сопоставьте значение spid из SQL Server с контекстом встроенного языка через событие DBMSSQL:

<log location="/var/log/1c/logs/db_locks" history="12">
  <event>
    <eq property="name" value="DBMSSQL"/>
    <ge property="Duration" value="5000000"/>
  </event>
  <property name="all"/>
</config>

3. Устранение причин блокировок LCK_M_X

  • Длительные транзакции: выносите вызовы веб-сервисов, проведение других документов и тяжелые расчеты за пределы транзакции (ЗафиксироватьТранзакцию()).
  • Неявные сканирования таблиц: проверьте наличие покрывающих индексов по полям фильтрации в запросах модификации (UPDATE/DELETE), чтобы исключить эскалацию блокировок строк до страниц и таблиц (Lock Escalation).
💡 Практика специалистов: Всегда проверяйте, включен ли в свойствах базы данных 1С 'Управляемый' режим блокировок. Работа в устаревшем 'Автоматическом' режиме приводит к блокировке целых диапазонов таблиц на уровне СУБД даже при простых выборках.

Частые вопросы (FAQ)

Что означает тип блокировки LCK_M_X?

LCK_M_X — это ожидание захвата эксклюзивной блокировки (Exclusive Lock). Оно возникает, когда транзакция пытается изменить (INSERT, UPDATE, DELETE) ресурс, который в этот момент уже читается или модифицируется другой транзакцией.

Как влияет режим Read Committed Snapshot Isolation (RCSI) на блокировки LCK_M_X?

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

Как принудительно отключить эскалацию блокировок для конкретной таблицы 1С?

В SQL Server можно выполнить команду ALTER TABLE _InfoRg12345 SET (LOCK_ESCALATION = DISABLE); однако для 1С это крайняя мера, правильнее оптимизировать запросы и транзакции.

Почему время ожидания на блокировке 1С по умолчанию равно 20 секундам?

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

Полезные материалы
Рекомендуем