|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
SQL 2012 Имеем 1 юзер лочит других ( в том числе системных к-е использутся для репликации ) на одном филиале последние 3 дня на других 12 все ОК. полс. время очень часто через sp_WhoIsActive я вижу что виснет эта сессия на ф-ции GetCurrentDocExtDiscountClient_Partner эта ф-ция вызывается в запросе FROM Goods_Pos gp WITH(XLOCK) ... LEFT JOIN DocExtDiscountClientDetail dedcd ON dedcd.Id_DocExtDiscountClientTitle = [dbo]. GetCurrentDocExtDiscountClient_Partner (b2.Id_Partner, @Date_ttn, 3, @id_cm_client, @id_TypeOutlet, gp.id_goods) AND dedcd.Id_Goods = gp.id_goods в ф-ции GetCurrentDocExtDiscountClient_Partner везде стоят WITH(NOLOCK) в другой (более поздней) сессии (репликация) идет вставка в таблицу к-я есть в этой ф-ции insert into DocExtDiscountClientDetail и сессия лочится 1-й ( вижу через sp_WhoIsActive ) (предполагаю что проблема может быть именно в этом) Также лочится куча других сессий и все это висит пока не делаешь kill. Когда делаем kill сессии 1 юзера то все сразу ок. 1?) Может ли Xlock применяться не только к таблице Goods_Pos а эскалироваться и на DocExtDiscountClientDetail 2?) Общая идея как отловить такой вот случай когда вылазит блокировки у одного юзера ( м.б потому что она чаще всего делает эту операцию ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 15:06 |
|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
Гулин Федор 1?) Может ли Xlock применяться не только к таблице Goods_Pos а эскалироваться и на DocExtDiscountClientDetail нет Гулин Федор 2?) Общая идея как отловить такой вот случай когда вылазит блокировки у одного юзера ( м.б потому что она чаще всего делает эту операцию ) в sys.dm_os_waiting_tasks есть и блокирующая сессия, и описание заблокированного ресурса ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 15:16 |
|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
Yasha123 Гулин Федор 1?) Может ли Xlock применяться не только к таблице Goods_Pos а эскалироваться и на DocExtDiscountClientDetail нет Гулин Федор 2?) Общая идея как отловить такой вот случай когда вылазит блокировки у одного юзера ( м.б потому что она чаще всего делает эту операцию ) в sys.dm_os_waiting_tasks есть и блокирующая сессия, и описание заблокированного ресурса да я вижу блокирующую сессию - это 1-я ищу причину (а точнее воркарануд чтобы обойти это) ибо повторяется уже 3 день ps Upd о ОПЯТЬ оно вылезло ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 15:18 |
|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
ну так какие именно локи и где? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 15:22 |
|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
Гулин Федор, это же скалярная функция, внутри мега запрос, небось. что Вы ожидаете от этого? Низкая производительность вот и результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 15:53 |
|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
Владислав Колосов Гулин Федор, это же скалярная функция, внутри мега запрос, небось. что Вы ожидаете от этого? Низкая производительность вот и результат. на других то пашет и без пролем там в резалтсете было 3 строки когда висело с помощью (Yasha123 СПС ей нашел pagelock fileid=1 pageid=4449832 dbid=5 subresource=FULL id=lockd9b019800 mode=IX associatedObjectId= 72057600119734272 SELECT * FROM sys.dm_tran_locks where request_session_id = 113 and resource_associated_entity_id = 72057600119734272 resource_type resource_subtype resource_database_id resource_description resource_associated_entity_id resource_lock_partition request_mode KEY 5 (34770efa668e) 72057600119734272 0 X PAGE 5 1:4449832 72057600119734272 0 IX А сессия висит от этого юзера и держит других Нашел имя таблицы к-я блокируется - ( но в другой сессии она без проблем читается по read commited ) но пока не нашел воркараундв ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 15:57 |
|
Вопрос про Xlock
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
WAITER SPID BLOCKER SPID DATABASE RESOURCE TYPE BLOCKING OBJECT LOCK REQ MODE WAIT TIME 92 113 MD_TT_UNILEVER PAGE 72057600119734272 S 2539403 147 113 MD_TT_UNILEVER PAGE 72057607254638592 S 2101423 156 113 MD_TT_UNILEVER OBJECT NULL IX 652225 67 113 MD_TT_UNILEVER KEY 72057598722703360 S 465773 144 113 MD_TT_UNILEVER KEY 72057598504599552 S 214322 114 113 MD_TT_UNILEVER PAGE 72057606214778880 S 789565 106 113 MD_TT_UNILEVER PAGE 72057599291490304 S 2490865 127 113 MD_TT_UNILEVER KEY 72057603815178240 X 936360 131 113 MD_TT_UNILEVER PAGE 72057598504665088 S 2491552 107 113 MD_TT_UNILEVER PAGE 72057598504861696 S 71063 143 113 MD_TT_UNILEVER PAGE 72057602239627264 U 2479729 собвственно я и так знаю что 113 держит всех и уже 2 раз за день а вот причины не ясны остальные сессии - в осн. репликации PS Upd : я вот вспомнию тему с (Nolock) - а они в функции этой везде стоят WITH(NOLOCK) которая показывается в Blocker_Stmt ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 16:13 |
|
|
start [/forum/topic.php?fid=46&msg=39928503&tid=1686466]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 366ms |
total: | 507ms |
0 / 0 |