powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли узнать как долго уже наложена блокировка на ресурс
10 сообщений из 10, страница 1 из 1
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035349
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос который выдает блокировки.

SELECT * FROM sys.dm_tran_locks

Можно ли как то узнать как долго уже существует блокировка. Чтобы мониторить зависшие и предпринимать меры какиенибудь.
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035365
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys.dm_os_waiting_tasks
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035367
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonix,

блокировка существует в определенном контексте, смотрите на поле request_owner_type если оно TRANSACTION
то request_owner_id это transaction_id
далее лезете в sys.dm_tran_database_transactions и находите время начала транзакции.

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

хотите более точно отслеживать время наложения: создавайте XE сессию с мониторингом событий наложения блокировок.

блокировки априори не бывают "зависшыми".
если сессия не может по какой то причине получить блокировку на ресурс request_status будет к примеру WAIT
то вы можете посмотреть чего именно ждет сессия в sys.dm_os_waiting_tasks
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035372
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
sys.dm_os_waiting_tasks


Посмотрел. Не понял. Это ожидания вроде. Мою блокировку может никто не ждать или подождали и откатились.
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035381
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
leonix,

блокировка существует в определенном контексте, смотрите на поле request_owner_type если оно TRANSACTION
то request_owner_id это transaction_id
далее лезете в sys.dm_tran_database_transactions и находите время начала транзакции.


спасибо, вроде то что надо

авторблокировки априори не бывают "зависшыми".

Если клиент начал транзакцию, заблокировал кучу ресурсов и завис. Блокировка типа зависшая будет.
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035420
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonix,

"завис" это очень условное определение. этим термином оперируют люди а не машины, пытаясь интерпретировать время исполнения некоего рабочего процесса в временные рамки удобные для их восприятия.

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

Если у вас клиентское приложение написано так что оно оперирует длинными транзакциями это поводов посмотреть в сторону изменения самого клиентского приложения, нежели пытаться на сервере разрулить внешнюю проблему.

чисто имхо.
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035429
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
leonix,

Если у вас клиентское приложение написано так что оно оперирует длинными транзакциями это поводов посмотреть в сторону изменения самого клиентского приложения, нежели пытаться на сервере разрулить внешнюю проблему.

чисто имхо.


Абсолютно согласен. Чем я и занимаюсь. У меня 1000 пользователей. Пытаюсь понять какие сессии держат долгие блокировки и почему.
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035436
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonix
Чтобы мониторить зависшие и предпринимать меры какиенибудь.


DBCC OPENTRAN также может помочь

https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-opentran-transact-sql?view=sql-server-ver15
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035439
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonix,

DBCC OPENTRAN, права потребуются.
...
Рейтинг: 0 / 0
Можно ли узнать как долго уже наложена блокировка на ресурс
    #40035446
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonix
Пытаюсь понять какие сессии держат долгие блокировки и почему.
Для этого нужно учитывать не только наличие блокировок, но и состояние сессии. Если грубо, то
running - запрос просто долго выполняется
suspended - запрос ожидает высвобождения какого-то ресурса
awaiting command - запустивший транзакцию ушел курить/обедать/домой/ в отпуск не завершив ее
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли узнать как долго уже наложена блокировка на ресурс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]