|
Какой именно диапазон заблокирован в Range?
|
|||
---|---|---|---|
#18+
Добрый день Коллеги, помогите разобраться - хочу понять, как узнать от сервера, какой именно диапазон ключей заблокирован при serializable. Прочитал по этой теме много веток на форуме и на других сайтах. Пока что вижу что это можно сделать только рассуждая логически, т.е. нет явной информации, что такой то диапазон заблокирован. Или можно все таки это сделать явно? Например есть таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Чтением получаем разные диапазоны в блокировках. Примеры выполнял в разных транзакциях Код: sql 1. 2. 3.
Вот блокировки каждого селекта, которые получил из dm_tran_locks Код: sql 1.
20resource_typeresource_subtyperesource_database_idresource_descriptionresource_associated_entity_idresource_lock_partitionrequest_moderequest_typerequest_statusrequest_reference_countrequest_lifetimerequest_session_idrequest_exec_context_idrequest_request_idrequest_owner_typerequest_owner_idrequest_owner_guidrequest_owner_lockspace_idlock_owner_addressKEY14(0bdec3f2b948)720575940448092160RangeS-SLOCKGRANT0335544325600TRANSACTION5169790x0000000178218C10:1:10x0000000176F7F580KEY14(69c872e07e60)720575940448092160RangeS-SLOCKGRANT0335544325600TRANSACTION5169790x0000000178218C10:1:10x0000000176F80B0030 30resource_typeresource_subtyperesource_database_idresource_descriptionresource_associated_entity_idresource_lock_partitionrequest_moderequest_typerequest_statusrequest_reference_countrequest_lifetimerequest_session_idrequest_exec_context_idrequest_request_idrequest_owner_typerequest_owner_idrequest_owner_guidrequest_owner_lockspace_idlock_owner_addressKEY14(199f61d4d268)720575940448092160RangeS-SLOCKGRANT0335544325600TRANSACTION5169800x0000000178218C10:1:10x0000000176F7F580KEY14(0bdec3f2b948)720575940448092160RangeS-SLOCKGRANT0335544325600TRANSACTION5169800x0000000178218C10:1:10x0000000176F80B00 40resource_typeresource_subtyperesource_database_idresource_descriptionresource_associated_entity_idresource_lock_partitionrequest_moderequest_typerequest_statusrequest_reference_countrequest_lifetimerequest_session_idrequest_exec_context_idrequest_request_idrequest_owner_typerequest_owner_idrequest_owner_guidrequest_owner_lockspace_idlock_owner_addressKEY14(ffffffffffff)720575940448092160RangeS-SLOCKGRANT0335544325600TRANSACTION5169810x0000000178218C10:1:10x0000000176F7F580KEY14(199f61d4d268)720575940448092160RangeS-SLOCKGRANT0335544325600TRANSACTION5169810x0000000178218C10:1:10x0000000176F80B00 в таблицах везде request_owner_guid=00000000-0000-0000-0000-000000000000 Получается, что dm_tran_locks по блокировкам диапазона можеть выдать ровно две строки с одним значением request_mode. А к чему относится значение (ffffffffffff): к +inf или -inf нужно уже понять самому, исходя из порядка индекса и того какое значение resource_description во второй записи Range. Правильно ли я это понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 18:36 |
|
Какой именно диапазон заблокирован в Range?
|
|||
---|---|---|---|
#18+
Диапазон всегда (prev KEY, KEY] (ffffffffffff) это +inf ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2020, 18:59 |
|
Какой именно диапазон заблокирован в Range?
|
|||
---|---|---|---|
#18+
invm, спасибо вот еще ссылочку нагуглил https://www.sql.ru/forum/1289002/napravlenie-sortirovki-klasternogo-indeksa-i-range-locks ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2020, 17:57 |
|
|
start [/forum/topic.php?fid=46&msg=39998466&tid=1685653]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 386ms |
0 / 0 |