|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
Есть запрос который выдает блокировки. SELECT * FROM sys.dm_tran_locks Можно ли как то узнать как долго уже существует блокировка. Чтобы мониторить зависшие и предпринимать меры какиенибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 12:20 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
sys.dm_os_waiting_tasks ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 12:53 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
leonix, блокировка существует в определенном контексте, смотрите на поле request_owner_type если оно TRANSACTION то request_owner_id это transaction_id далее лезете в sys.dm_tran_database_transactions и находите время начала транзакции. понятное дело что транзакция может началась достаточно давно а какой то лок на какой либо конкретный ресурс был повешен относительно недавно, но такая информация не несет в себе практической пользы. хотите более точно отслеживать время наложения: создавайте XE сессию с мониторингом событий наложения блокировок. блокировки априори не бывают "зависшыми". если сессия не может по какой то причине получить блокировку на ресурс request_status будет к примеру WAIT то вы можете посмотреть чего именно ждет сессия в sys.dm_os_waiting_tasks ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 12:53 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич sys.dm_os_waiting_tasks Посмотрел. Не понял. Это ожидания вроде. Мою блокировку может никто не ждать или подождали и откатились. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 13:00 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
felix_ff leonix, блокировка существует в определенном контексте, смотрите на поле request_owner_type если оно TRANSACTION то request_owner_id это transaction_id далее лезете в sys.dm_tran_database_transactions и находите время начала транзакции. спасибо, вроде то что надо авторблокировки априори не бывают "зависшыми". Если клиент начал транзакцию, заблокировал кучу ресурсов и завис. Блокировка типа зависшая будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 13:19 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
leonix, "завис" это очень условное определение. этим термином оперируют люди а не машины, пытаясь интерпретировать время исполнения некоего рабочего процесса в временные рамки удобные для их восприятия. машина или выполняет работу или простаивает. (есть частные случаи исключительных ситуаций связанных с потенциальными сбоями, которые разработчики не удосужились учесть) Если у вас клиентское приложение написано так что оно оперирует длинными транзакциями это поводов посмотреть в сторону изменения самого клиентского приложения, нежели пытаться на сервере разрулить внешнюю проблему. чисто имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 14:15 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
felix_ff leonix, Если у вас клиентское приложение написано так что оно оперирует длинными транзакциями это поводов посмотреть в сторону изменения самого клиентского приложения, нежели пытаться на сервере разрулить внешнюю проблему. чисто имхо. Абсолютно согласен. Чем я и занимаюсь. У меня 1000 пользователей. Пытаюсь понять какие сессии держат долгие блокировки и почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 14:35 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
leonix Чтобы мониторить зависшие и предпринимать меры какиенибудь. DBCC OPENTRAN также может помочь https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-opentran-transact-sql?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 14:46 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
leonix, DBCC OPENTRAN, права потребуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 14:47 |
|
Можно ли узнать как долго уже наложена блокировка на ресурс
|
|||
---|---|---|---|
#18+
leonix Пытаюсь понять какие сессии держат долгие блокировки и почему. running - запрос просто долго выполняется suspended - запрос ожидает высвобождения какого-то ресурса awaiting command - запустивший транзакцию ушел курить/обедать/домой/ в отпуск не завершив ее ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2021, 14:55 |
|
|
start [/forum/topic.php?fid=46&msg=40035446&tid=1685220]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
225ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 329ms |
0 / 0 |