AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2008, 15:00   #1  
avlg is offline
avlg
Участник
 
3 / 10 (1) +
Регистрация: 10.08.2007
Thumbs up
вопрос к опытным оптимизаторам производительности Nav:
Имеем клиента Nav 4.0 SP3 и БД на MS SQL 2000, страдаем от эскалации блокировок и следующих за ней дедлоков. Терпимо, но неприятно

Начиная с Nav 4.0 SP2, MS добавил в таблицу $ndo$dbproperty поле hardrowlock (в интерфейсе клиента доступно через Файл->База Данных->Изменить, закладка Дополнительно, флажок "Блокировка строк - всегда").
В хелпе сказано
Цитата:
Блокировка строк — всегда: этот параметр позволяет указать, чтобы в Navision всегда использовалась блокировка на уровне строк, а не блокировка на уровне страниц и таблиц
Т.е. теоретически позволяет бороться с эскалацией блокировок ценой большего использования RAM на MS SQL. Но как именно это делается и зависит ли от версии MS SQL - не сказано.

Флажок я поставил, perfmon'ом смотрю счетчики SQLServer:MemoryManager:Lock Memory(KB) (вырос после установки флажка) и SQLServer:Locks:Number of Deadlocks/sec (вроде упал, но т.к. наблюдаю с сегодняшнего утра, выводы делать рано). Кто-нибудь имеет положительный опыт от установки данного флажка при использовании MS SQL 2000?
Старый 28.08.2008, 02:43   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
далеко не весь функционал Nav блокирует таблицы при работе. найдите проблемные участки и попробуйте их разнести либо организационно, либо на уровне системы.
Старый 28.08.2008, 10:08   #3  
avlg is offline
avlg
Участник
 
3 / 10 (1) +
Регистрация: 10.08.2007
Цитата:
Сообщение от Sancho Посмотреть сообщение
далеко не весь функционал Nav блокирует таблицы при работе. найдите проблемные участки и попробуйте их разнести либо организационно, либо на уровне системы.
В данной теме очень хочется получить ответ на конкретный вопрос, поставленный в первом сообщении.
Общей информации по борьбе с блокировками/дедлоками на этом форуме достаточно.
Старый 29.08.2008, 11:17   #4  
foxsoft2005 is offline
foxsoft2005
Участник
Аватар для foxsoft2005
 
93 / 10 (1) +
Регистрация: 21.11.2006
Счетчики - это, конечно, хорошо.. А что говорят пользователи? Как там одновременный учет документов разными юзерами?

Цитата:
Сообщение от avlg Посмотреть сообщение
В данной теме очень хочется получить ответ на конкретный вопрос, поставленный в первом сообщении.
Общей информации по борьбе с блокировками/дедлоками на этом форуме достаточно.
Данная галка всего-лишь добавляет хинт ROWLOCK к некоторым запросам.

Еще для всех индексов принудительно ставится флаг AllowRowLocks = TRUE. Этот флаг принуждает оптимизатор SQL сервера ВСЕГДА использовать блокировку на уровне строк в обход других блокировок. Вообще говоря, обход оптимизатора делать не рекомендуют, так как в разных случаях доступа к данным таблицы может использоваться РАЗНЫЙ механизм блокировок. Таким образом, в одном случае Вас спасет флаг, а в других сделает только хуже.

Например, блокировка на уровне строк может крайне плачевно сказаться на отчетности.
__________________
"И лишь патологоанатом не берет работу на дом" (с) Вишневский
Старый 29.08.2008, 14:36   #5  
avlg is offline
avlg
Участник
 
3 / 10 (1) +
Регистрация: 10.08.2007
Цитата:
Сообщение от FoxSoft2005 Посмотреть сообщение
Счетчики - это, конечно, хорошо.. А что говорят пользователи? Как там одновременный учет документов разными юзерами?

Данная галка всего-лишь добавляет хинт ROWLOCK к некоторым запросам.

Еще для всех индексов принудительно ставится флаг AllowRowLocks = TRUE. Этот флаг принуждает оптимизатор SQL сервера ВСЕГДА использовать блокировку на уровне строк в обход других блокировок. Вообще говоря, обход оптимизатора делать не рекомендуют, так как в разных случаях доступа к данным таблицы может использоваться РАЗНЫЙ механизм блокировок. Таким образом, в одном случае Вас спасет флаг, а в других сделает только хуже.

Например, блокировка на уровне строк может крайне плачевно сказаться на отчетности.
Спасибо за ответ!

А что могут говорить пользователи, кроме как "ничивонеработаит" даже тогда, когда система летает? Одновременный учет идет не хуже чем до установки галки, но в час пик все равно проскакивают единичные дедлоки (вижу сам на соседнем мониторе с перфмоном, он постоянно перед глазами). В целом система работает вполне удовлетворительно, но с появлением свободного времени сделаю следующее (в порядке убывания приоритета):
1. апгрейд на SQL 2005 и на некоторых таблицах ALTER INDEX...SET(ALLOW_PAGE_LOCKS=OFF)
2. внимательный анализ кода, изменяющего таблицы, на которых рубятся дедлоки. Есть подозрение, что где-то блокируется больший набор записей, чем нужно для текущей транзакции.
3. применю методики, описанные в этой статье:
http://dynamicsuser.net/blogs/stryk/archiv...sql-server.aspx
Старый 03.09.2008, 13:04   #6  
foxsoft2005 is offline
foxsoft2005
Участник
Аватар для foxsoft2005
 
93 / 10 (1) +
Регистрация: 21.11.2006
Цитата:
1. апгрейд на SQL 2005 и на некоторых таблицах ALTER INDEX...SET(ALLOW_PAGE_LOCKS=OFF)
Да, да, да... А на некоторых еще и ALLOW_ROW_LOCKS = OFF... Например, для всяких книжек (Ledger Entry) есть смысл оставить только блокировки на уровне таблиц, а остальные нафик убрать...

Цитата:
2. внимательный анализ кода, изменяющего таблицы, на которых рубятся дедлоки. Есть подозрение, что где-то блокируется больший набор записей, чем нужно для текущей транзакции.
И тут Вы верно заметили . Именно внимательный анализ кода. Иначе будет риск задвоения чего либо важного .

Цитата:
3. применю методики, описанные в этой статье:
http://dynamicsuser.net/blogs/stryk/archiv...sql-server.aspx
Угу.. Там, кстати, рекомендуют ваще обсуждаемую галку не ставить...
__________________
"И лишь патологоанатом не берет работу на дом" (с) Вишневский
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:45.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.