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

Откуда: Кишинёв
Сообщений: 6723
Как мы знаем есть опция для таблицы как LOCK_ESCALATION
К примеру установив её в Auto или Disable мы можем предотвратить проблему укрупнения до уровня таблицы на больших объёмах (хотя относительной всей таблицы относительно малых).
Но если для таблиц это спасает, то для индексированных представлений (VIEW) этой опции нет и всё сходит на нет.
Более того, нет такой опций и на запрос (OPTION).

Какие предложите советы, кроме:
1. Естественно уменьшить объём данных, разбить на куски
2. Поставить флаг 1211 на момент операции

Иногда это нельзя сделать, иногда нужно время для внедрения изменений. В системе всегда должны быть костыли для временного обхода проблемы.

Вообще меня удивляет что по умолчанию LOCK_ESCALATION = Table
Это вообще не безопасно. Понятно что может не хватить ресурсов на большом количестве, но и блокировка таблицы в неподходящий момент не лучше. Это напоминает закрытие глаз на проблему.
А то что добавили индексы на VIEW, но при этом не позаботились о всех связанных факторов - это вообще не профессионально. Индусы блин.

И стоит ли ввести данную опцию (LOCK_ESCALATION) для VIEW?
Просто с одной стороны, если на базовых таблицах укрупнение блокировок запрещена, то почему она разрешает для представлений, (хотя представление может быть фильтровано, т.е. быть заведомо меньше таблы на порядки, но это скорее отмазка), интерполирование опции для меня логично.
11 сен 12, 12:55    [13145297]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 599
Ну если View индексированная, то мы можем немного управлять уровнем эскалации опциями
ALLOW_PAGE_LOCKS
ALLOW_ROW_LOCKS
в индексах
Нет?
11 сен 12, 15:52    [13146949]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Andrey Sribnyak
ALLOW_PAGE_LOCKS
ALLOW_ROW_LOCKS
в индексах
Да, но обычно его выбрасывает до уровня локировки всей VIEW, что в принципе и надо предотвратить.
ALLOW_TABLE_LOCKS_ESCALATION = OFF

Если честно я не очень понимаю эти опции для индекса. Какой в них практический смысл ?

Можно же ведь в конкретной операции задать уровень опциями (RowLock, PagLock, TabLock). Понимаю если была опция на уровне всей таблицы, но на уровне индекса это сверх тонкая настройка - хотя основной то и нет, нормальной.

Это больше напоминает пережиток прошлого чем сегодняшняя необходимость.
Кто иного мнения?
11 сен 12, 16:19    [13147194]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37198
Mnior
Если честно я не очень понимаю эти опции для индекса. Какой в них практический смысл ?

Можно же ведь в конкретной операции задать уровень опциями (RowLock, PagLock, TabLock).
Практический смысл один - чтобы не писать в каждой конкретной операции, коих быть может несколько больше, чем таблиц. Хотя сами мы не воспользовались, предпочли зафиксать в каждом стейтменте (дело было в рамках борьбы с дедлоками), хотя объективных причин, почему так, не назову.
11 сен 12, 16:23    [13147225]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гавриленко Сергей Алексеевич,
На конкретных стейтментах фиксируется стратегия для всей таблы, а не индекса.
Так что почему это на уровне индекса, а не таблиц пока нет вариантов.

Оно то против дедлоков может быть гипотетически, НО обычно смотрят на порядок команд. А если вместо RowLock оно будет непредсказуемо прыгать, в зависимости от индекса, до PagLock или наоборот - то скорее такая нелинейность ухудшает ситуацию, а не помогает. Не так ли? Это не говоря о предсказуемости.

И то что на практике не наблюдается так и предполагается. Ждём того кто пользовался. :)
11 сен 12, 16:41    [13147392]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37198
Mnior
Гавриленко Сергей Алексеевич,
На конкретных стейтментах фиксируется стратегия для всей таблы, а не индекса.
Так что почему это на уровне индекса, а не таблиц пока нет вариантов.

Оно то против дедлоков может быть гипотетически, НО обычно смотрят на порядок команд. А если вместо RowLock оно будет непредсказуемо прыгать, в зависимости от индекса, до PagLock или наоборот - то скорее такая нелинейность ухудшает ситуацию, а не помогает. Не так ли? Это не говоря о предсказуемости.

И то что на практике не наблюдается так и предполагается. Ждём того кто пользовался. :)
Мы как раз паг-локи и запрещали.
11 сен 12, 16:51    [13147471]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Lock_Escalation for Indexed Views

Налетай, плюсы расставляй
11 сен 12, 20:13    [13148500]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37198
Плюсанул.
11 сен 12, 21:21    [13148638]     Ответить | Цитировать Сообщить модератору
 Re: Lock_Escalation on Indexed Views  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Неплохо. Так быстро столько плюсов.
12 сен 12, 10:28    [13150038]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить