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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2011, 17:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
DynamicsAxSCM: Back ported features from Dynamics AX 2012 to Dynamics AX 2009
Источник: http://blogs.msdn.com/b/dynamicsaxsc...s-ax-2009.aspx
==============

Some of the new functionality that is created in the Dynamics AX development cycle brings about so much feedback from customers and partners that we decide to back port the features to previous versions of Dynamics AX products. The back ported features become available as part of hot fixes or service packs to previous versions of Dynamics AX.

Today, we would like to bring your attention to the great SCM features that were developed as part of the Dynamics AX 2012 release cycle and which are already included in Dynamics AX 2009 Service Pack 1 (Hotfix rollup 5 for Microsoft Dynamics AX 2009 Service Pack 1)

Close non-financial transfers

This feature significantly improves performance for the inventory closing and inventory recalculation processes. The essence of the feature is the fact that inventory transactions which represent the physical transfers are disregarded during cost calculation. For example, inventory transactions might indicate a physical item movement between different warehouses or warehouse locations. However, from a costing perspective, the movement does not contribute to the final item cost.

With the new approach, the cost calculation process becomes significantly faster and more accurate. Please refer to the following white paper to learn more about the feature. Microsoft Dynamics AX 2009 White Paper: Close Non-Financial Transfers

Inventory Reconciliation and Reporting

The Inventory value report framework allows you to report and reconcile Inventory and WIP values on one report. The new report framework replace six individual reports and manual adjustments, which were required in previous versions of Dynamcs AX to achieve the same result.

Also, the Potential conflicts report can be used to report transactions that violate rules as defined by parameter settings in various modules. This report significantly reduces the time spent on identifying the causes of discrepancies between Inventory and General ledger values. Please refer to the following white paper to learn more about the feature. Microsoft Dynamics AX 2009 White Paper: Inventory Reconciliation and Reporting



Disclaimer

All the information about AX 2012 posted here is a pre-release. Any feature is a subject to be changed before the release without notice.
This disclaimer is applicable to all posts about AX 2012 in this blog.





Источник: http://blogs.msdn.com/b/dynamicsaxsc...s-ax-2009.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 06.06.2011, 20:19   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Close non-financial transfers - хреновая штука, при тестировании, которое коллега проводил, создавало блокировки и могло бы потенциально остановить работу предприятия.
Старый 07.06.2011, 10:00   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от EVGL Посмотреть сообщение
Close non-financial transfers - хреновая штука, при тестировании, которое коллега проводил, создавало блокировки и могло бы потенциально остановить работу предприятия.
Там все нефинансовые переносы закрываются в одной транзакции. При этом на каждую группу складских аналитик генерится один нехилый update. (Можно посмотреть в inventCostNonFinancialTransferHandler.updateInventTrans()). Как только число обновляемых записей в одном update превысит порог в 5000 (кажется такой порог сейчас в SQL Server 2005/2008), начнется эскалация блокировок с записей на страницы и кучу невинных пользователей заблокируют нахрен.

Возможное решение проблемы - переписать этот класс на обновление по одной номенклатуре, и переместить вызов куда-нить в inventCostItemDim.updateItem(), в ту веточку которая только на нулевой итерации отрабатывает. Я, правда,этого не пробовал.
Кроме того, мне не нравиться что эти складские проводки закрываются вообще без создания записей в inventSettlement. Почему-то для закрытых проводок по услугам, такие записи создаются, а для нефинансовых переносов - нет...
Старый 07.06.2011, 12:04   #4  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Спасибо за отзывы. Интересно!

Цитата:
5000 (кажется такой порог сейчас в SQL Server 2005/2008),
Порог там вроде 50.000-70.000, но это конечно ничего не меняет.

Цитата:
начнется эскалация блокировок с записей на страницы и кучу невинных пользователей заблокируют нахрен.
Хм, тут наши ПМы очень хотят понять что имено будет блокироваться, как долго и почему это так критически. Пожалуйста опишите более детально. Спасибо!

История у этой фичи такая, что она ускоряет IC чуть не в 3 раз для наших TAP AX 2012 и Dynamics AX 2009 пользователей (которые с ней работают сегодня). То есть, ее перенесли на прошлую версию иммено потому что она конкретно ускоряет IC. Более того, это первый раз мы получаем негативный отзыв о фичи за 2 года..

Блокировки, к сожалению, присутствуют когда выполняеться IC в мульти поточной среде, но это проблема не фичи, а всего IC подхода.

Цитата:
Возможное решение проблемы - переписать этот класс на обновление по одной номенклатуре,
По разным причинам (не предмет обсуждения) эта фича так и реализована в Dynamics AX 2012 .

Цитата:
Кроме того, мне не нравиться что эти складские проводки закрываются вообще без создания записей в inventSettlement. Почему-то для закрытых проводок по услугам, такие записи создаются, а для нефинансовых переносов - нет...
Наши ПМы убедеждены что этого делать не надо, чтобы не терять времени. По-этому для не финансовых переносов убрали. Для услуг - это легаси код, который не меняли.
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/
Старый 07.06.2011, 12:40   #5  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Про полезность фичи, никто не спорит. Но как-то отрыв inventTrans от inventSettlement несколько смущает.В прочем на фоне того что натворили в DAX2012, это не самая большая проблема совместимости.
Эскалация блокировок (если верить MSDN), случается если "A single Transact-SQL statement acquires at least 5,000 locks on a single nonpartitioned table or index."
Теперь представь картину:
1. У нас есть 10 групп складской аналитики
2. По каждой группе система одним update'ом помечает нефинансовые переносы закрытыми. Есть большие шансы что часть этих updateов будет обновлять более 5000 записей и блокировки будут эскалированы до уровня страниц.
3. Я, конечно, не до самого конца понимаю, как как эскалация блокировок работает, но рискну предположить что по кластерному индексу окажутся заблокированы записи с соседними inventTransId, которые (вполне возможно) не имеют отношения к текущему закрытию и вообще еще в статусе Ordered/onOrder.
4. Как результат, либо закрытие будет ждать пользователей, которые заблокировали записи, не имеющие отношения к закрытию, либо наоборот - пользователи будут ждать закрытия.
5. Поскольку блокировки будут создаваться не все сразу, в порциями по одному созданию (и ожиданию) блокировок на одну группу складских аналитик, шансы на создание дидлока или, по крайней мере, дерева блокировок, резко возрастают.

То есть - идея состоит не в том чтобы от механизма отказаться, в просто в том чтобы постараться не генерировать update-statement, которые обновляют слишком много складских проводок в одной операции...

Последний раз редактировалось fed; 07.06.2011 в 13:17.
Старый 07.06.2011, 12:44   #6  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Кстати - насчет двух лет: Фича была включена в ru6, которая вышла не так уж давно. До этого она существовала в качестве патча (который не так уж много кто ставил). В ru6 и ru7, чтобы фича работала, нужно включить галочку, про которую мало кто знает...
Возможно статистика за 2 года, она не совсем представительная...
Старый 07.06.2011, 13:09   #7  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
Наши ПМы убедеждены что этого делать не надо, чтобы не терять времени. По-этому для не финансовых переносов убрали. Для услуг - это легаси код, который не меняли.
В качестве конструктивного предложения: Может для приходов закрытых без использования inventSettlement, устанавливать какую-то новую птичку в inventTrans ? Чтобы можно было бы легко подкурочить всякие самописные отчеты на неиспользование таких проводок...
Старый 07.06.2011, 14:36   #8  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Спасибо за детальный ответ! Проблема ясна, более того SQL lock manager довольно быстро ескалайтит описанную ситуацию до полного блокинга всей таблицы.

Наши ПМы рассуждают так:
1. Блокировка всей таблицы может возникнуть только если за последний период существует большое количество не финансовых переносов. С их опыта и опыты кастомеров что используют фичу такое не случаеться у них на практике (бизнесы такие наверное). Я так понял что речь идет о интервале в 1 месяц.
2. IC рекомендуеться запускать когда система минимально используеться пользователями и тут нам важно скорость выполнения. Например, в MRP некоторые транзакции удаляються по номенклатурам. При этом подходе само выполнени естественно медленее, но блокировок значительно меньше может быть. В нашем случае - это не target сценарий, ибо IC запускаеться на огромные обьемы данних не каждый день.
3. Из пункта 1 следует что в самом плохом случаи идет речь о обновлении несколько тысяч записей. Сколько это займет на современном сервере? На моей машине (далеко до самого современного сервера) 1 мил. записей занимает вроде 2-5 минут, точно не помню.

Выводы (не окончательные)
1. Проблема если и случаеться, то должа случаться крайне редко. Блокировка может мериться в секундах.

Евгений,
Расскажы пожалуйста немного о ваших данных на которых тестировали.

Чтобы все понимали - у нас в МС ваши отзывы все утро обсуждаем :0)
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/

Последний раз редактировалось Ievgenii; 07.06.2011 в 14:38.
Старый 07.06.2011, 15:25   #9  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
Выводы (не окончательные)
1. Проблема если и случаеться, то должа случаться крайне редко. Блокировка может мериться в секундах.
Понимаете в чем вопрос-то - если в момент эскалации есть блокировки на другие номенклатуры/аналитики, то этот самый lock manager остановится и будет ждать! Соответственно то что он успел залочить так и будет лоченое. Далее все нарастает лавиной - другие юзеры начинают становиться в ожидание, тоже залочив какие-то записи и т.д. - до полной победы блокировок над всеми пользователями!
И поверьте - при кол-ве пользователе от 100 это дело 10 секунд!
Поэтому, если есть возможность - нужно избегать подобных алгоритмов, ну или сразу лочить таблицу, делать что надо и отпускать - так будет действительно быстро и надежно.
__________________
Axapta 3.0 sp - хз какой, kr2
Старый 07.06.2011, 15:27   #10  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Не забывай что:
1. Кроме эскалации блокировок до уровня таблицы есть еще и эскалация блокировок до уровня страниц. Она как раз гораздо чаще случается.
2. Проблема в том, что да, каждый индивидуальный апдейт идет быстро ( секунд 10-15). Но, поскольку вся операция идет в одной транзакции, то после очередного апдейта записи (а скорее - страницы) остаются заблокироваными в то время пока система ждет доступности блокировок записей по очередной группе складских аналитик. Получается что мы можем заметную часть активных (не очень старых) записей в inventTrans заблокировать, а потом впасть в зависание потому что кто-то из пользователей почему-то заблокировал запись которую мы хотим обновить. В итоге - у нас куча записей (точнее страниц) заблокирована, а мы никого не пускаем и ждем пока какой-то отщепенец, работающий по ночам, освободит свою единственную обновленную запись.
То есть - можно попробовать решить проблему просто заменив одну большую транзакцию на несколько не очень больших ( по одной транзакции для каждой группы складских аналитик). Конечно экскалации при этом остануться (и это по прежнему нехорошо), но ситуации когда мы какие-то записи (скорее страницы) мы заблокировали, и с заблокированными страницами чего-то ждем - удастся избежать...

P.S. Привет AEGу

Последний раз редактировалось fed; 07.06.2011 в 16:24.
Старый 07.06.2011, 16:19   #11  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от fed Посмотреть сообщение
В качестве конструктивного предложения: Может для приходов закрытых без использования inventSettlement, устанавливать какую-то новую птичку в inventTrans ? Чтобы можно было бы легко подкурочить всякие самописные отчеты на неиспользование таких проводок...
Оказывается галочка-то уже есть. Называется NonFinancialTransferInventClosingRecId и содержит ссылку на inventClosing.recId, по которой данная запись была закрыта. Осталось в этот же механизм услуги засунуть, и все более или менее логично получится...
Старый 07.06.2011, 16:57   #12  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Ясно. Посмотрим что можно сделать.
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/
Старый 07.06.2011, 18:56   #13  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
...
Наши ПМы рассуждают так:
...
Хм. Но ведь для 2012-й проблемы блокировок нет, сделали все так как и fed предлагал.
Уж так и бы и сказали что не хотят ничего менять в 2009-й

P.S.
Вопрос наверно для другой ветки, но неужели MS до сих пор не может решить проблему эскалации блокировок ? Неужели нельзя сделать настоящий версионник, а-ля Оракл, Postgre, FireBird и не мучаться ? Мы сейчас живем на оракл - вообще не знаем таких слов "эскалация". Очень радует

Последний раз редактировалось Logger; 07.06.2011 в 19:10.
Старый 07.06.2011, 19:08   #14  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
Ясно. Посмотрим что можно сделать.
Кстати, а по поводу этого
пересчет себестоимости в журналах переноса?

ПМ-ы ничего нового не решили ?
Переносы и заполненные лоты возврата в будущем продолжат себестоимости разных аналитик перемешивать ? (по-моему, так это просто дыра в архитектуре - пока она не вылечена - нет смысла говорить о LIFO, FIFO при расчете себестоимости)
Старый 07.06.2011, 19:09   #15  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Logger Посмотреть сообщение
Вопрос наверно для другой ветки, но неужели MS до сих пор не может решить проблему эскалации блокировок ? Неужели нельзя сделать настоящий версионник, а-ля Оракл, Postgre, FireBird и не мучаться ?
Версионник уже давно сделали. Но блокировки все равно нужны для:
1. Предотвращения конфликтов записи
2. Ситуаций, грубо говоря, продажи билетов на поезд. Когда надо обеспечить чтобы между чтением ресурса и его обновлением он был заблокирован и недоступен для обновления другими сессиями.

Кроме того, сами по себе эскалация блокировок - не такое уж зло. Если у тебя таблица построчных блокировок разростается в памяти, то каждая новая операция обновления занимает все больше времени, поскольку надо все больше и больше времени искать в таблице блокировок ID текущего объекта. И во многих случаях, эскалация на самом деле повышает производительность работы с БД. Идеальным вариантом, на мой взгляд, была бы возможность отключать эскалацию каким-то хинтом в конкретном запросе, а главное - интерфейс к этому хинту из X++.
Старый 07.06.2011, 19:18   #16  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
Версионник уже давно сделали. Но блокировки все равно нужны для:
1. Предотвращения конфликтов записи
2. Ситуаций, грубо говоря, продажи билетов на поезд. Когда надо обеспечить чтобы между чтением ресурса и его обновлением он был заблокирован и недоступен для обновления другими сессиями.
Денис, я немного о другом писал. Про эскалацию блокировок. Неточно выразился. Версионник конечно есть, но с эскалацией блокировок это несильно радует. Выше как раз обсуждали ситуацию когда могут быть заблокированы проводки со статусами, которые закрытие не трогает или вообще из других компаний.

Цитата:
Сообщение от fed Посмотреть сообщение
Кроме того, сами по себе эскалация блокировок - не такое уж зло. Если у тебя таблица построчных блокировок разростается в памяти, то каждая новая операция обновления занимает все больше времени, поскольку надо все больше и больше времени искать в таблице блокировок ID текущего объекта. И во многих случаях, эскалация на самом деле повышает производительность работы с БД. Идеальным вариантом, на мой взгляд, была бы возможность отключать эскалацию каким-то хинтом в конкретном запросе, а главное - интерфейс к этому хинту из X++.
Ключевое слово - "памяти". Денис, ты неявно предполагаешь какую то конкретную реализацию механизма блокировок (как я понимаю майкрософтовскую) и говоришь о её недостатках. Если не ошибаюсь оракл хранит инфу о блокировках на диске в самих записях, так что при большом числе блокировок памяти дополнительной не тратится. Работает достаточно шустро.

Наверно есть и другие способы реализации механизма блокировок, экономно расходующие память и прочие ресурсы БД. Обсуждение куда-то в сторону уходит.

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

Последний раз редактировалось Logger; 07.06.2011 в 19:21.
Старый 08.06.2011, 10:01   #17  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
а OCC выключен для этих таблиц? или в данной задаче OCC не поможет?
или там принудительно включен PCC?
Старый 08.06.2011, 10:30   #18  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
Евгений,
Расскажы пожалуйста немного о ваших данных на которых тестировали.
Я попросил человека, который этим занимался, отписаться в тему по-английски. Надеюсь, в течение 2-3 дней он найдет время.

Цитата:
Наши ПМы рассуждают так:
1. Блокировка всей таблицы может возникнуть только если за последний период существует большое количество не финансовых переносов. С их опыта и опыты кастомеров что используют фичу такое не случаеться у них на практике (бизнесы такие наверное). Я так понял что речь идет о интервале в 1 месяц.
2. IC рекомендуеться запускать когда система минимально используеться пользователями и тут нам важно скорость выполнения. Например, в MRP некоторые транзакции удаляються по номенклатурам. При этом подходе само выполнени естественно медленее, но блокировок значительно меньше может быть. В нашем случае - это не target сценарий, ибо IC запускаеться на огромные обьемы данних не каждый день.
Чтобы пояснить: на наших подшефных предприятиях количество нефинансовых переносов зашкаливает, поскольку каждая машина подключена к складу, имеет входную и выходную ячейки. Каждые 100 штук в коробке получают серийный номер; один производственный заказ делает до 5 000 000 штук меньше, чем за неделю. Это связано со спецификой отрасли, где нужно отследить потенциально опасную партию, попавшую в соприкосновение с пищей (см. историю с микробами EHEC : ). Тем самым за 3 года набежало около 15 млн. складских проводок, из которых большая часть - переносы сер. номеров из ячейки А в ячейку Б.

Запустить закрытие склада тогда, когда хочется, можно не всегда. Подшефные заводы работают в режиме 24x7 или 24x5. Даже в последнем случае не всегда получается запустить закрытие на выходных, поскольку внутренный распорядок концерна предполагает закрытие месяца и подготовку отчетности в первые три рабочих дня. Если первый день месяца выпадает на понедельник - среду, то возможности ждать нет, а по опыту незакрытые приходы/расходы за месяц значительно искажают баланс.

Последний раз редактировалось EVGL; 08.06.2011 в 10:45.
Старый 08.06.2011, 10:33   #19  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
OCC помогает (точнее вообще хоть как-то работает и на что-то влияет), только в том случае, если ты сначала читаешь запись через select forupdate table, а потом обновляешь ее через table.update(). Если у тебя update_recordset, то записи выбираются, лочаться и обновляются одной операцией на сервере БД. При этом поднятые блокировки держаться до конца транзакции. Соответственно - OCC/PCC в этом случае никак не влияет.
Старый 08.06.2011, 10:52   #20  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
2 Logger
В MS SQL можно запретить эксклацию на уровне таблиц - LOCK_ESCALATION = DISABLE в команде ALTER TABLE

Кроме того, можно запретить эскалацию на уровне сервера б/д (или сессии) c помощью DBCC TRACEOFF для флагов 1211 (по используемой памяти) и 1224 (по кол-ву заблокированных строк)

PS MS рекомандует оключать только флаг 1224, если необходимо, что бы не получить ошибку Out of memory
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 08.06.2011 в 10:58.
За это сообщение автора поблагодарили: Logger (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
DynamicsAxSCM: Changes in Sales and Transfer Order Picking from Microsoft Dynamics AX 4.0 to Dynamics AX 2009 Blog bot DAX Blogs 0 18.05.2009 02:05
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

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

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