SQL Server, объект Locks

Область применения: SQL Server

Объект SQLServer:Locks в Microsoft SQL Server предоставляет сведения о блокировках SQL Server для отдельных типов ресурсов. Блокировки хранятся на ресурсах SQL Server, таких как строки, считываемые или измененные во время транзакции, чтобы предотвратить параллельное использование ресурсов различными транзакциями. Например, если исключительная (X) блокировка получена транзакцией на строку в таблице, никакая другая транзакция не сможет изменить эту строку, пока блокировка не будет освобождена. Минимизация использования блокировок повышает параллелизм, что может улучшить общую производительность. Одновременно может отслеживаться несколько экземпляров объекта Locks , каждый из которых будет представлять собой блокировку отдельного вида ресурсов.

В этой таблице описаны счетчики блокировки SQL Server.

Счетчики SQL Server Locks Description
Среднее время ожидания блокировки (мс) Средняя длительность ожидания (в миллисекундах) для всех запросов блокировки, при которых потребовалось ожидание.
Базовое время ожидания Только для внутреннего пользования.
Запросов блокировок/с Количество новых блокировок и преобразований блокировок за секунду, запрошенное у диспетчера блокировок.
Время ожидания блокировки (тайм-аут > 0)/с Количество запросов блокировок в секунду, время ожидания которых истекло, кроме запросов блокировок NOWAIT
Превышений времени ожидания блокировки в секунду Количество запросов блокировок в секунду, время ожидания которых истекло, включая запросы блокировок NOWAIT
Время ожидания блокировки (мс) Суммарное время ожидания (в миллисекундах) блокировок за последнюю секунду.
Ожиданий блокировок/с Количество запросов блокировок в секунду, которые потребовали ожидания участника.
Количество взаимоблокировок/с Количество запросов блокировок за секунду, которые завершились взаимоблокировками.

SQL Server может заблокировать эти ресурсы.

Позиция Description
_Total Данные по всем блокировкам.
AllocUnit Блокировка на единицу распределения.
Приложение Блокировка на определяемый приложением ресурс.
База данных Блокировка на базу данных, она включает все объекты базы данных.
Экстент Блокировка последовательной группы из 8 страниц.
Файл Блокировка на файл базы данных.
Куча/дерево B-дерева Куча или дерево B-дерева. Блокировка кучи страниц данных или структуры дерева B индекса.
Ключ Блокировка для строки в индексе.
Метаданные Блокировка элемента данных каталога, также называемого метаданными.
Объект Блокировка для таблицы, хранимой процедуры, представления и т.п., включающая все данные и индексы. Объект может быть любым объектом, в который есть sys.all_objectsзапись.
Построение индекса в режиме "в сети" Блокировка ресурса для блокировок построения индекса в режиме "в сети", в частности для таблицы отслеживания бизнес-приложения, используемого для построения индекса в режиме "в сети".
Страница Блокировка для 8-килобайтовой (КБ) страницы в базе данных.
RID Идентификатор строки. Блокировка одной строки в куче.
RowGroup Блокировка ресурса для группы строк индекса columnstore.
Xact Блокировка ресурса для транзакций.

Примечание.

В документации термин B-tree обычно используется в ссылке на индексы. В индексах rowstore ядро СУБД реализует дерево B+. Это не относится к индексам columnstore или индексам в таблицах, оптимизированных для памяти. Дополнительные сведения см. в руководстве по архитектуре и проектированию индексов SQL Sql Server и Azure.

Пример

Вы начинаете изучать счетчики производительности запросов в этом объекте, используя этот запрос T-SQL в динамическом административном представлении sys.dm_os_performance_counters:

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Locks%';