Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Немного отойду в сторону от темы. Кстати такое количество блокировок может приводить еще и к тормозам. Столкнулись как то. При этом то что блокировки создаются в базе Х а тормозит база Y координатор блокировок не волнует - все равно проходит через одну ветвь алгоритма. Мало того даже если занять монопольно базу и в транзакции нагенерировать блокировок(разумеется если отключена эскалация ну и для большего эффекта отключены страничные блокировки) то эффект будет ровно таким же.(например будут замедлятся в этой транзакции операции на чтение)
11 фев 16, 11:34    [18803251]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
o-o
Guest
МуМу
Что бы столько памяти отъесть под обслуживание блокировок это нужно постараться.

столько сколько?
вы мой пост прочли о том, какую память он может под блокировки использовать, и какую нет?
хоть терабайт ему дайте, он (2000-ый) у ТС -- х86.
и под блокировки AWE использовать не может
11 фев 16, 11:36    [18803263]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Я прочитал ваш пост. Я понимаю что такое AWE и т.п. Также я понимаю что даже 250 Мб под блокировки это много(при правильной архитектуре).
11 фев 16, 11:42    [18803292]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Кстати простым методом дедукции я могу даже утверждать(уверен на 99 из 100-а) что проблема у автора топика решается простым отключением определенных опций. Могу поспорить на ящик хорошего пива. Либо один из ответов автора не верен, либо нужно проверить немного не то. Ключевое слово эскалация. При включенной "по умолчанию" эскалации нужно очень постараться что бы отъесть 250 МБ (есть еще опция эскалация таблицы, и отключение в конкретной сессии. не помню по памяти есть ли в 2000 но если ответ автора на серверную эскалацию верен - следует вывод что есть)
11 фев 16, 11:56    [18803387]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Ладно, раз уж все секреты выдал. Совет автору топика.Тогда рекомендую запустить select from syslockinfo и сгруппировать по objectID(на память пишу, короче по таблице) а также по spid - ответ сразу станет очевиден. Если поможет то присылайте мне по почте ящик пива:)
11 фев 16, 12:04    [18803435]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
o-o
Guest
Проверить флаги, отрубаюшие эскалацию, было предложено еще на первой странице.
Со ссылкой.
Потабличного в 2000ом еще не было.
И без всякого пива.
Меня от его запашища выворачивает Картинка с другого сайта.
11 фев 16, 12:23    [18803532]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Ну значит как говорит доктор Хаус - все врут:) НЕ верю я, не складывается картинка.(либо серверу дали мало памяти - принудительно) Впрочем syslockinfo как то пролил бы на это информацию. Впрочем автор топика видимо уже решил свою проблему.
11 фев 16, 18:18    [18805509]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
o-o
Guest
почему сразу он врет?
можно всяко постараться, чтобы кучу локов за раз накладывать.
может, все транзакции у них SERIALIZABLE.
может, автошринк базе выставлен.
и если стэйтмент не дотягивает до 5,000 локов (4,999 например) на таблицу,
эскалация тоже не сработает.
так что если очень хочется, все можно устроить не сильно заморачиваясь

и кстати, если человек не появляется на форуме в течение 10 часов,
это скорее говорит о том, что ему есть, чем заняться,
чем о том, что он все внезапно решил
11 фев 16, 19:14    [18805826]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Я задумался, а возможен ли такой тест при котором возможна подобная ошибка при включенной эскалации? Да -возможен. Но это нужно постараться.(динамик SQL + куча таблиц в руки) Я легко могу такой "убийственный" тест написать. Но как должны сложится звезды что бы в промышленной системе так случилось? - Невероятно! А насчет "Все врут" - это профессиональный юмор. Разумеется нужно трактовать - "все ошибаются". Ну иначе это нужно признать отсутствие логики и признать какое то шаманство. К слову перевести Navision 3.7. систему на 2012 возможно, но это совершенно другая по трудоемкости задача.
Ну либо какое то из утверждений не верно. Например :Размер выделенной памяти для MSSQL, отключенная опция эскалации, справедливость статьи(хотя я сам как то давно читал подобную).
11 фев 16, 20:25    [18806087]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
МуМу
Я задумался, а возможен ли такой тест при котором возможна подобная ошибка при включенной эскалации? Да -возможен. Но это нужно постараться.(динамик SQL + куча таблиц в руки) Я легко могу такой "убийственный" тест написать. Но как должны сложится звезды что бы в промышленной системе так случилось? - Невероятно!
Да разве? Достаточно чтобы другая транзакция заблокировала одну строку в этой же таблице и будут вам постоянные escalation attempt fail, пока память не закончится.
11 фев 16, 22:36    [18806548]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Сколько должно быть таких транзакций и "escalation attempt fail"(что важнее как я понимаю) что бы память закончилась?
11 фев 16, 22:51    [18806591]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Типа если подвисла одна транзакция с блокировкой то эскалация не возможна? Не знаю, не помню. Мне кажется что координатор блокировок должен обрабатывать эту ситуацию - ведь блокировка идет от меньшему к большему(а не наоборот, что крайне важно).
11 фев 16, 22:55    [18806608]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Хотя не исключаю. Я приводил ранее пример с монопольной блокировкой базы(монопольный доступ) - все равно от эскалации замедление есть. Так что вполне возможно. Но еще раз повторюсь - для этого нужна как минимум одна большая, большая транзакция.
11 фев 16, 22:58    [18806625]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Оговорился, опять вспомните мне эскалацию.. Разумеется я имел ввиду другое, совсем наоборот.(при отключении эскалации и страничных блокировок)
11 фев 16, 23:01    [18806634]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
invm
Member

Откуда: Москва
Сообщений: 9400
МуМу
Сколько должно быть таких транзакций и "escalation attempt fail"(что важнее как я понимаю) что бы память закончилась?
Одной достаточно.
МуМу
Мне кажется что координатор блокировок должен обрабатывать эту ситуацию - ведь блокировка идет от меньшему к большему(а не наоборот, что крайне важно).
Вам кажется.
Эскалация - это конвертация I* -> * на уровне таблицы. Если на таблице уже есть несовместимая с * блокировка - эскалация невозможна.
11 фев 16, 23:03    [18806643]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
А что если ROW_LOCKS попробовать выключить для проблемных индексов? На сколько интересно concurrency просядет?
12 фев 16, 03:12    [18807019]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Спасибо(Invm, не сарказм)! Самостоятельно - проверю. Мне например тоже казалось - какие блокировки в БД при монопольном доступе(к этой же БД)?
Как в казино ставлю ставки :
1) Поменяли настройки с эскалацией.(самое вероятное событие)
2) Поменяли настройки с выделением памяти к MSSQL.
3) Чего то жуткое сделали с регламентными заданиями(например пере проведение периода в незакрытой транзакции).
12 фев 16, 04:05    [18807035]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
o-o
Guest
пришло время пятничной картинки
и развеивания мифов.

вашему вниманию предлагается 2000-ый сервер со своей базой PUBS,
куда добавлена кластерная табличка в 12 млн строк (Nums_Str_10).
первая сессия хватает и удерживает IX на таблицу,
меняя в ней одну строку (where n = 12000000).
вторая сессия идет читать Nums_Str_10 where n < 12000000,
нагребая нужное для эскалации число локов.
когда приходит время эскалации (построчность в табличность),
т.е. хочется получить S на таблицу,
конвертация IS --> S не удается (там висит IX)
все счастливы, 1204.

прошу обратить внимание на то, что нам не нужны:
1. звезды, динамика и куча таблиц
МуМу
Я задумался, а возможен ли такой тест при котором возможна подобная ошибка при включенной эскалации? Да -возможен. Но это нужно постараться.(динамик SQL + куча таблиц в руки) Я легко могу такой "убийственный" тест написать. Но как должны сложится звезды что бы в промышленной системе так случилось? - Невероятно!

2. совершенно ни при чем:
а. настройки эскалации
б. настройки памяти (никаких ограничений)
в. регламентные задания (сервер пустует, какие нафиг еще задания)
МуМу
1) Поменяли настройки с эскалацией.(самое вероятное событие)
2) Поменяли настройки с выделением памяти к MSSQL.
3) Чего то жуткое сделали с регламентными заданиями(например пере проведение периода в незакрытой транзакции).


К сообщению приложен файл. Размер - 106Kb
12 фев 16, 16:12    [18810040]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Хм... xlock - ну да про него я забыл:) Правда к Navision 3.7. это не имеет отношения. Но пожалуй да... Пример конечно не самый показательный - я бы сказал даже надуманный. Но в целом при определенном уровне криворукости наверное такая ситуация моделируется проще чем мне показалось на первый взгляд.
12 фев 16, 16:41    [18810210]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Впрочем, дождемся что нам скажет автор топика. Как я уже сказал проще всего было бы посмотреть по syslockinfo а потом делать выводы.
12 фев 16, 16:43    [18810227]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
o-o
Guest
МуМу
Хм... xlock - ну да про него я забыл:) Правда к Navision 3.7. это не имеет отношения. Но пожалуй да... Пример конечно не самый показательный - я бы сказал даже надуманный. Но в целом при определенном уровне криворукости наверное такая ситуация моделируется проще чем мне показалось на первый взгляд.

да какой же вы упорный
первая сессия *апдэйтит* строку.
что такого криминального в апдэйте???
редкое являние, достойное занесения в красную книгу?
и да, в транзакции, потому что от этой таблицы нужна одна эта строка,
а потом еще что-то там выполняется.

у меня просто куча тестов была,
надо было картинку с апдэйтом завесить,
а то текст от апдэйта, а на картинке такой "надуманный xlock".
да у меня миллион таких картинок сегодня сменилось,
т.к. шел процесс поиска конкретного числа -- максимального числа локов, когда упадет

К сообщению приложен файл. Размер - 69Kb
12 фев 16, 17:02    [18810394]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
invm
Member

Откуда: Москва
Сообщений: 9400
МуМу
Хм... xlock - ну да про него я забыл:) Правда к Navision 3.7. это не имеет отношения.
А что нивижн не модифицирует данные в таблицах? Соответственно, xlock никогда не случается?
МуМу
Пример конечно не самый показательный - я бы сказал даже надуманный.
Возьмите одну пишущую транзакцию и вместо одного 300 читателей, которые сканируют по 40000 строк на TIL repeatable read или serializable - станет не надуманно.
12 фев 16, 17:10    [18810454]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Да понял, я понял:) Просто конструкции типа rowlock ,xlock и т.п к Navision 3.7 не имеют отношения. Я только это и имел ввиду. Согласен, пример моделирования такой ситуации более простой чем мне показалось на первый взгляд. Ящик пива?;)
12 фев 16, 17:11    [18810456]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
Crimean
Member

Откуда:
Сообщений: 13148
спасибо, было интересно!
12 фев 16, 17:17    [18810500]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с LOCK-блокировками.  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Тем не менее по своему опыту - такого количества блокировок(250МБ!) в промышленных системах типа Navision 3.7. я практически не встречал. Так что в плане диагноза остаюсь при своем мнении. Понятно что может быть 300 читателей и т.п. Но в этом случае автор в первую очередь писал бы про блокировки, таймауты и деадлоки . Впрочем это уже софистика и предположения. Согласен что пример был более простым - наверное начинающий программист вполне может вставить подобные хинты и уровни изоляции. Поэтому подобная ситуация наверное возможна -просто я с подобным не сталкивался.
12 фев 16, 17:18    [18810507]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить