powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
6 сообщений из 31, страница 2 из 2
Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
    #39801744
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgleonixНа просторах интернета нарыл вот такую таблицу. Не знаю, насколько ей можно доверять.
Мой случай выделил.

Ваш случай самый первый

У меня в транзакции.
Это в проведении документа. Проведение в транзакции.
Режим управления блокировками Управляемый.
Как определить какой у меня уровень изоляции? В профайлере?
...
Рейтинг: 0 / 0
Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
    #39801749
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonixalexeyvgпропущено...
Ваш случай самый первый

У меня в транзакции.
Это в проведении документа. Проведение в транзакции.
Режим управления блокировками Управляемый.
Как определить какой у меня уровень изоляции? В профайлере?

nolock - это синоним read uncommited
...
Рейтинг: 0 / 0
Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
    #39801751
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonixalexeyvgпропущено...
Ваш случай самый первый

У меня в транзакции.
Это в проведении документа. Проведение в транзакции.
Режим управления блокировками Управляемый.
Как определить какой у меня уровень изоляции? В профайлере?

мама дорогая, вам уже несколько раз повторили у вас в запросе использовано явное хинтование
Код: sql
1.
FROM dbo._AccumRg34172 T2 WITH(NOLOCK)

у всех таблиц табличное указание read uncommitted уровня изоляции, в таком случае у вас для чтения из этих таблиц поведение будет как на уровне изоляции read uncommitted, и совершенно пофигу что у вас изначально ваш уровень изоляции read committed


Код: sql
1.
2.
set transaction isolation level READ COMMITTED;
select * from [dbo].[table] with(nolock);


эквивалентно
Код: sql
1.
2.
set transaction isolation level READ UNCOMMITTED;
select * from [dbo].[table];



поэтому совмещаемых блокировок на уровне строк для ваших читаемых таблиц накладываться не будет. будут только блокировки sch-S на уровне таблиц.

вот если у вас в запросе на уровне изоляции read committed к примеру будет инструкция
Код: sql
1.
2.
3.
4.
set transaction isolation level read committed;
select * 
from [dbo].[table1] t1 with(nolock) 
    join [dbo].[table2] t2 on t2.[id] = t1.[id]



то table1 будет читаться без блокировки строк, а вот на строки table2 S-блокировки строк будут запрошены, также будут наложены IS на уровне страниц и объекта. (или еще возможна эскалация)
...
Рейтинг: 0 / 0
Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
    #39801770
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня на этой таблице блокировок много.
Тогда получается, что если одна транзакция меняет хотябы одну строку в этой таблице, т.е. наложила x блокировку, то этот запрос не сможет выполниться, т.к. он пытается наложить s блокировку на все 10 млн. записей. Отсюда постоянные блокировки.
Я правильно понял?
...
Рейтинг: 0 / 0
Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
    #39801772
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonixУ меня на этой таблице блокировок много.
Тогда получается, что если одна транзакция меняет хотябы одну строку в этой таблице, т.е. наложила x блокировку, то этот запрос не сможет выполниться, т.к. он пытается наложить s блокировку на все 10 млн. записей. Отсюда постоянные блокировки.
Я правильно понял?
Не, блокировки не будет.

Всем спасибо! Пойду искать где блокировки возникают.
...
Рейтинг: 0 / 0
Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
    #39801810
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonixВсем спасибо! Пойду искать где блокировки возникают.Так вы гадаете, глядя на запросы?
Не проще просто посмотреть? Например, sp_WhoIsActive
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите по плану выполнения запроса. Сколько будет заблокировано строк?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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