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

Откуда:
Сообщений: 204
Добрый день! Вопрос в следующем: Есть таблица phone, в ней 9 млн. записей. Update таблицы phone происходит довольно долго. В этот момент могут идти запросы select из табл. phone от пользователей и они получают блокировку. Как блокировать в таблице только строки при update? или как решить эту проблему?
13 ноя 15, 12:06    [18411322]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
relav,

если позволяют бизнес-требования к выборкам, используйте грязное чтение.
13 ноя 15, 12:11    [18411362]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
relav
Member

Откуда:
Сообщений: 204
Владислав Колосов,

А выполнение данной инструкции SET TRANSACTION ISOLATION LEVEL read uncommited где необходимо размещать? Ее можно разместить в процедуре?
13 ноя 15, 12:16    [18411417]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
Glory
Member

Откуда:
Сообщений: 104751
relav
В этот момент могут идти запросы select из табл. phone от пользователей и они получают блокировку.

И за какие же 2 ресурса ведут борьбу ваши select и update ?
13 ноя 15, 12:20    [18411441]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
relav,

где Вам нужно, там и устанавливайте, поведение этой настройки подробно расписано в справке.
13 ноя 15, 12:34    [18411543]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
relav
Member

Откуда:
Сообщений: 204
Владислав Колосов,

опция SET TRANSACTION ISOLATION LEVEL read uncommitted действует только на сессию в которой она выполнилась или она влияет на сервер в целом?
13 ноя 15, 15:34    [18412819]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
relav,

прочтите справку, пожалуйста. У меня нет никакого желания её цитировать.
13 ноя 15, 15:40    [18412856]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки(deadlock)  [new]
Есть таблица phone
Guest
relav,

дедлок надо поймать и смотреть на граф
селекты, которые ждут завершения апдейта - это очередь, а не дедлок

uncommitted нужен если это тяжелый случай и много усилий потрачено, варианты перебраны и уже деваться некуда

наверняка у вас там с индексами туго и где-то вместо одной строки/набора строк постоянно скан гоняется
13 ноя 15, 15:46    [18412899]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить