Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Возникла массовая блокировка, по памяти не помню на чем именно.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Собственно говоря вопрос по сабж и достаточно срочный для меня.(сейчас сам гуглю)
Возникли массовые блокировки. В трассу почему то попали далеко не все(это отдельный вопрос). Но sysprocesses показал следующие результаты RID:DatabaseID:FileID:PageID:Slot (row) на этом висит на одном и том же значении много сессий. Как понять по FileID:PageID:Slot (row) к какой таблице относится? Как понимать эту блокировку? Почему она получила массовый характер? После отключения одной сессии все пошло. Почему в большинстве(95%) своем блокировки не попали в трассу?

Пока читаю данную статью...
https://danieladeniji.wordpress.com/2014/01/30/technical-microsoft-sql-server-wait-resource/
Может кто сразу скрипты подкинет с помощью которых можно локализовать объект?
7 сен 15, 13:14    [18118235]     Ответить | Цитировать Сообщить модератору
 Re: Возникла массовая блокировка, по памяти не помню на чем именно.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Пока что подозрение на таблицу в которой нет индексов но есть допустим identiti поле. Массово чего то пишут либо вставляют. Но нужно перепроверить...
7 сен 15, 13:19    [18118276]     Ответить | Цитировать Сообщить модератору
 Re: Возникла массовая блокировка, по памяти не помню на чем именно.  [new]
Glory
Member

Откуда:
Сообщений: 104751
http://www.sqlskills.com/blogs/paul/finding-table-name-page-id/
7 сен 15, 13:20    [18118281]     Ответить | Цитировать Сообщить модератору
 Re: Возникла массовая блокировка, по памяти не помню на чем именно.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
То Glory. Уже нашел;) На Insert with(rowlock) с идентити.
7 сен 15, 13:27    [18118331]     Ответить | Цитировать Сообщить модератору
 Re: Возникла массовая блокировка, по памяти не помню на чем именно.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
А может и поторопился. Update по неиндексированному identity полю дает такой результат. Но в коде только insert. Интересно можно ли при массовой вставке получить такую блокировку по identity?(сейчас пишу нагрузочный тест)
7 сен 15, 13:35    [18118382]     Ответить | Цитировать Сообщить модератору
 Re: Возникла массовая блокировка, по памяти не помню на чем именно.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
С причиной вроде разобрался. Select(rowlock) конфликтует с Insert(rowlock). Но более интересно другое. Блокировки было видно по sysprocesses. Также видно операции в трассе по duration в которых большое время выполнения и минимальный CPU. Но почему то они не попали в трассу по блокировкам. Никто не встречал подобного поведения SQL сервера? (трассы работали, другие события(блокировки) попали, а вот этот момент целиком не попал...)
7 сен 15, 16:54    [18119927]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить