Lock vs STATEMENT
От: Tom Россия http://www.RSDN.ru
Дата: 05.10.06 13:11
Оценка:
Есть какой то лок, можно ли как то узнать каким SQL STATEMENT-ом этот лок был вызван.

SQL2005
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re: Lock vs STATEMENT
От: godmother Украина  
Дата: 05.10.06 15:53
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Есть какой то лок, можно ли как то узнать каким SQL STATEMENT-ом этот лок был вызван.


Tom>SQL2005


Не совсем поняла — в каком виде "есть лок"? Просто известно, что он где-то какой-то есть?..
вобщем, исходную информацию, плизз))
Потому что посмотреть, какие запросы выполняются в данный момент, что и кого блокирует — можно и в Activity Monitor

Можно обратиться к динамическим системым вьюхам — типа —
SELECT DISTINCT
req.session_id, lock.request_mode,lock.resource_type, lock.request_status,
(SELECT text FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
FROM sys.dm_exec_requests req INNER JOIN sys.dm_tran_locks lock
ON lock.request_session_id=req.session_id


Вобщем, узнать можно Как конкретно — зависит от того, что известно об этом самом локе, и какую информацию, кроме текста запроса нужно еще получить — потому что в приведенный выше запрос, если честно, накидала инфу от фонаря)..
Re[2]: Lock vs STATEMENT
От: Tom Россия http://www.RSDN.ru
Дата: 05.10.06 17:04
Оценка:
Здравствуйте, godmother, Вы писали:

G>Вобщем, узнать можно Как конкретно — зависит от того, что известно об этом самом локе, и какую информацию, кроме текста запроса нужно еще получить — потому что в приведенный выше запрос, если честно, накидала инфу от фонаря)..


Ок, вот словили мы дедлок. Некоторые локи висят на таблицах. И теперь хочется узнать какими SQL STATEMENT-ами данные локи были вызваны. В идеале конечно посмотреть всю трассу до STATEMENT-а, который наложил лок
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[3]: Lock vs STATEMENT
От: _d_m_  
Дата: 06.10.06 02:24
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Ок, вот словили мы дедлок. Некоторые локи висят на таблицах. И теперь хочется узнать какими SQL STATEMENT-ами данные локи были вызваны. В идеале конечно посмотреть всю трассу до STATEMENT-а, который наложил лок


Deadlocks Involving Locks
When a deadlock involves locks, Trace Flag 1204 reports the resource on which the deadlock is waiting, the lock mode in effect and being requested, and the threads participating in the cycle of dependency.

Examples
A Complete 1204 Report on Deadlock Involving Locks
In this example, SPID 51 is blocked from its request for an exclusive (X) lock on Table 2:2009058193 because SPID 52 already has an exclusive lock on it. In Node 2, SPID 52 is blocked from its request for an exclusive lock on Table 2:1993058136 because SPID 51 has an exclusive lock on it.

SQL Server chose SPID 52 as the deadlock victim to break the deadlock, as indicated by the Victim Resource Owner entry.

Deadlock encountered .... Printing deadlock information

Wait-for graph

Node:1
 TAB: 2:2009058193 []           CleanCnt:1 Mode: X Flags: 0x0
 Grant List::
   Owner:0x1c3b5260 Mode: X        Flg:0x0 Ref:1 Life:02000000 SPID:52 ECID:0
   SPID: 52 ECID: 0 Statement Type: SELECT Line #: 1
   Input Buf: Language Event: select * from a (tablockx)

 Requested By:
   ResType:LockOwner Stype:'OR' Mode: X SPID:51 ECID:0 Ec:(0x1c657890) Value:0x1c3b51c0 Cost:(0/0)

Node:2
 TAB: 2:1993058136 []           CleanCnt:1 Mode: X Flags: 0x0
 Grant List::
   Owner:0x1c3b52e0 Mode: X        Flg:0x0 Ref:1 Life:02000000 SPID:51 ECID:0
   SPID: 51 ECID: 0 Statement Type: SELECT Line #: 1
   Input Buf: Language Event: select * from b (tablockx)

 Requested By:
   ResType:LockOwner Stype:'OR' Mode: X SPID:52 ECID:0 Ec:(0x1c593890) Value:0x1c3b5380 Cost:(0/0)
Victim Resource Owner:
 ResType:LockOwner Stype:'OR' Mode: X SPID:52 ECID:0 Ec:(0x1c593890) Value:0x1c3b5380 Cost:(0/0)
Re[3]: Lock vs STATEMENT
От: IB Австрия http://rsdn.ru
Дата: 06.10.06 07:34
Оценка: 12 (1)
Здравствуйте, Tom, Вы писали:

Tom> И теперь хочется узнать какими SQL STATEMENT-ами данные локи были вызваны. В идеале конечно посмотреть всю трассу до STATEMENT-а, который наложил лок


Здесь есть почти все: http://rsdn.ru/?article/?460
Автор(ы): Иван Бодягин
Дата: 05.05.2004
В статье рассматривается проблема взаимоблокировок, даются примеры успешного создания подобных ситуаций, а также их разрешения. Материал разбирается на примере MS SQLServer 2000.


Плюс, профайлер в 2005-м рисует весь граф ожидания в красивых картинках и может тебе его даже в xml-е откинуть, если возникнет такое желание.
Мы уже победили, просто это еще не так заметно...
Re[4]: Lock vs STATEMENT
От: Tom Россия http://www.RSDN.ru
Дата: 21.10.06 12:13
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, Tom, Вы писали:


Tom>> И теперь хочется узнать какими SQL STATEMENT-ами данные локи были вызваны. В идеале конечно посмотреть всю трассу до STATEMENT-а, который наложил лок


IB>Здесь есть почти все: http://rsdn.ru/?article/?460
Автор(ы): Иван Бодягин
Дата: 05.05.2004
В статье рассматривается проблема взаимоблокировок, даются примеры успешного создания подобных ситуаций, а также их разрешения. Материал разбирается на примере MS SQLServer 2000.


IB>Плюс, профайлер в 2005-м рисует весь граф ожидания в красивых картинках и может тебе его даже в xml-е откинуть, если возникнет такое желание.

Да, граф красивый, только жалко поле statement нету (
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[4]: Lock vs STATEMENT
От: Tom Россия http://www.RSDN.ru
Дата: 24.10.06 08:18
Оценка:
IB>Здесь есть почти все: http://rsdn.ru/?article/?460
Автор(ы): Иван Бодягин
Дата: 05.05.2004
В статье рассматривается проблема взаимоблокировок, даются примеры успешного создания подобных ситуаций, а также их разрешения. Материал разбирается на примере MS SQLServer 2000.


IB>Плюс, профайлер в 2005-м рисует весь граф ожидания в красивых картинках и может тебе его даже в xml-е откинуть, если возникнет такое желание.

В общем всё, что нужно для полного счастья — включить Deadlock Graph и указать XML файл, при отображении самого графа STATEMENT-ов не видно, за то в XML-ле всё есть, что сразу помогло выщемить пару дедлоков.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.