|
|
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
ERP'шник, сложность понятие относительная. Добраться до затылка кистью правой руки через левую лопатку служно конечно, согласен. Попробуйте просто почесать рукой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2009, 18:44 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
belugin То есть проблема в том что на Аксапте возможно существование кривого партнерского решения? Проблема в том, что база подается как манна небесная, а остальное пишут люди. И без разницы на чем, С#, Delphi, X++ belugin ок. если можно со слоя dis и ниже. я хз, что такое слой dis :-) я пришлю код Аксапты и SQL запрос :-) belugin Вы дочитали до того места, где описывается, как сделали в 4?[/b] Читал. А Вы это читали? Вдумайтесь в цифры. База 3 раза может поместиться в ОЗУ! никакой проблемы с железом нет.. Процы, круче гор и оврагов... А эта ПОСТРОЧНАЯ АКСАПТА.... перемалывает и блокирует записи по одной штучке.... Маразм.. Читал и Плакал... beluginЯ наверное, чего-то не понимаю в SQL сервере, но объясните, как избежать грязного чтения InventSum без блокировок. Например, если после обновления InventSum транзакцию придется откатить по причине какого-то сбоя, не получится ли так, что другая транзакция сможет списать оприходованное количество, а оно потом исчезнет в результате роллбека. Видимо я не понимаю ничего. Зачем при приходе товара блокировать!!!! При продаже кстати тоже... блокировки не нужны :-))) Вопрос, как видите не с MS SQL а к логике, архитектуре. Именно ее я считаю ущербной... belugin Я нашел некий топик про то, как сделать аналог того, что делает конструкция merge на SQL2008. Мне было бы интересно скорее архитектурное решение. Как бы вы сделали непострочную обработку более сложного процесса, чем просто обновление остатков. В аксапте же кроме этого бухгалтерская разноска, чтение и учет всяких скидок по оплате, накладных расходов и еще куча всего. Тут я пас.. хз о чем речь.. belugin В-общем, насколько я понял, у вас стоит Ax3, причем не обновлявшаяся, года, наверное 3 (поддержку SQL2005 сделали тогда, выход релиза 2002 год) стоит SQL 2000 (2000 г. релиза) поверх этого партнерское решение, возможно кривое поверх него какие-то модификации на слое usr, кривые Все это сочетание тормозит, что является недостатком Аксапты. Кстати, если у вас такие объемы как у вас RecID не кончились - тоже вроде могли бы пожаловаться (в версии 3 они были 32 битные и сквозные на всю БД, в 4 они 64 битные и потаблиучные) Так и есть. Но логика построчной обработки записей, накладывает ущербный отпечаток на кодеров... Они не могут мыслить таблицами, большими объемами данных. В итоге даже код на MS SQL они пишут через курсоры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 02:48 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Volochkova belugin ок. если можно со слоя dis и ниже. я хз, что такое слой dis :-) Пять баллов! Volochkova belugin Мне было бы интересно скорее архитектурное решение. Как бы вы сделали непострочную обработку более сложного процесса, чем просто обновление остатков. В аксапте же кроме этого бухгалтерская разноска, чтение и учет всяких скидок по оплате, накладных расходов и еще куча всего. Тут я пас.. хз о чем речь.. Но зато человеку достоверно известно: Volochkova Но логика построчной обработки записей, накладывает ущербный отпечаток на кодеров... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 02:51 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Volochkova beluginЯ наверное, чего-то не понимаю в SQL сервере, но объясните, как избежать грязного чтения InventSum без блокировок. Например, если после обновления InventSum транзакцию придется откатить по причине какого-то сбоя, не получится ли так, что другая транзакция сможет списать оприходованное количество, а оно потом исчезнет в результате роллбека. Видимо я не понимаю ничего. Зачем при приходе товара блокировать!!!! Предположим такой сценарий Есть две транзакции A и B. А приходует товары a1 и a2 на склад С1. B перемещает товар a1 c С1 на склад C2. Сценарий 1. A увеличила остаток a1 на C1 2. В посмотрела на этот остаток (так как блокировки нет, она не знает что он "грязный" и что нельзя закоммититься) перенесла его на склад C2. 3. А пытается увеличить остаток a2 на С1 но что-то происходит и транзакция откатывается. Итого: - Нет ни одной приходной накладной - На складе С2 есть остаток, который неизвестно откуда взялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 06:33 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
mazzyVolochkova belugin ок. если можно со слоя dis и ниже. я хз, что такое слой dis :-) Пять баллов! Volochkova belugin Мне было бы интересно скорее архитектурное решение. Как бы вы сделали непострочную обработку более сложного процесса, чем просто обновление остатков. В аксапте же кроме этого бухгалтерская разноска, чтение и учет всяких скидок по оплате, накладных расходов и еще куча всего. Тут я пас.. хз о чем речь.. Но зато человеку достоверно известно: Volochkova Но логика построчной обработки записей, накладывает ущербный отпечаток на кодеров... Я пока от Вас ни одного опровержения не видел. Мне одного того что для каждой записи RecID генерируется на клиенте достаточно.. Могу в картинках... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 08:55 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Если вы думаете что при апдейте записи на более "правильном" слое, записи на базе не блокируются. То тут точно 5 баллов! И то что отпечаток накладывается, знаю... Мне Код: plaintext Переписал на массовую обработку, так процедура вместо 20 часов!!!!! работает 2 минуты :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 08:57 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
belugin Предположим такой сценарий Есть две транзакции A и B. А приходует товары a1 и a2 на склад С1. B перемещает товар a1 c С1 на склад C2. Сценарий 1. A увеличила остаток a1 на C1 2. В посмотрела на этот остаток (так как блокировки нет, она не знает что он "грязный" и что нельзя закоммититься) перенесла его на склад C2. 3. А пытается увеличить остаток a2 на С1 но что-то происходит и транзакция откатывается. Итого: - Нет ни одной приходной накладной - На складе С2 есть остаток, который неизвестно откуда взялся. Яркий пример такого отпечатка :-) Видимо я путаю механизмы транзакции и блокировки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 08:59 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Еще немного бреда... Вот табличка.. уж ХЗ насколько она стандартная.. мне от не ведомо.. за половину рабочего дня.. у нее фрагментация 16% остается после 100% сделанных в ночь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 09:02 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
belugin Предположим такой сценарий Есть две транзакции A и B. А приходует товары a1 и a2 на склад С1. B перемещает товар a1 c С1 на склад C2. Сценарий 1. A увеличила остаток a1 на C1 2. В посмотрела на этот остаток (так как блокировки нет, она не знает что он "грязный" и что нельзя закоммититься) перенесла его на склад C2. 3. А пытается увеличить остаток a2 на С1 но что-то происходит и транзакция откатывается. Итого: - Нет ни одной приходной накладной - На складе С2 есть остаток, который неизвестно откуда взялся. если такие сценарии решаются при помощи физических блокировок записей в БД, то грустно, очень. А описанные Вами пунктики 1 и 3 как раз то, о чем говорит Волочкова (построчная обработка). С момента появления реляционных СУБД такой стиль работы выглядит даже дико. Нужно посмотреть, но может пример неудачный? Или действительно так? под рукой нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 10:26 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Volochkova Но зато человеку достоверно известно: Volochkova Но логика построчной обработки записей, накладывает ущербный отпечаток на кодеров... Я пока от Вас ни одного опровержения не видел. Мне одного того что для каждой записи RecID генерируется на клиенте достаточно.. Могу в картинках...[/quot] Вам же уже сказали: 1. читайте доку про update_recordset, insert_recordset 2. построчно на клиента переносятся результаты запросов. Запросы с агрегирующими функциями (типа select count(recid) from custtable group by custaccount) выполняются на сервере. Получившиеся результаты построчно переносятся на клиента. Но строк в результате гораздо меньше, чем в исходной таблице. Так работает курсор. В общем, пилите дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:15 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
iscrafmbelugin Предположим такой сценарий Есть две транзакции A и B. А приходует товары a1 и a2 на склад С1. B перемещает товар a1 c С1 на склад C2. Сценарий 1. A увеличила остаток a1 на C1 2. В посмотрела на этот остаток (так как блокировки нет, она не знает что он "грязный" и что нельзя закоммититься) перенесла его на склад C2. 3. А пытается увеличить остаток a2 на С1 но что-то происходит и транзакция откатывается. Итого: - Нет ни одной приходной накладной - На складе С2 есть остаток, который неизвестно откуда взялся. если такие сценарии решаются при помощи физических блокировок записей в БД, то грустно, очень. А описанные Вами пунктики 1 и 3 как раз то, о чем говорит Волочкова (построчная обработка). С момента появления реляционных СУБД такой стиль работы выглядит даже дико. Нужно посмотреть, но может пример неудачный? Или действительно так? под рукой нет. Дикость прямо с самой презентации видна, невооруженным взглядом. :-) Только в том примере, который тут в 3 строчки дали.... а если строк 10 скажем? и блокировки прут на уровни MS SQL, т.к. данные сильно фрагментированы и индексы тяжелые... т.к. по текстовым полям.. В итоге маразм выглядит так.. Первый пользователь... Взяли первую строку... заблокировали ( заблокировалась целая страница данных)... Взяли вторую строку... заблокировали ( заблокировалась целая страница данных)... Взяли третью строку... заблокировали ( заблокировалась целая страница данных)... А четвертую строку взять не можем, т.к. второй пользователь... наблокировал своих страничек... и ждет когда мы отпустим первую ... И так блокировками поростает весь сервер... И про 100 человек одновременно работающих... лично я не верю.. Выше описано... если база данных.. 3 раза помещается в ОЗУ... то проблема тормозов в архитектура БД и принципах обработки.. Это как приговор.. И полумерами.. описанными в презентации, вынесение... в промежуточные таблицы.. это еще один путь в коллапс... только более жестокий.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:17 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Volochkovaу нее фрагментация 16% остается после 100% сделанных в ночь. /topic/650982&pg=7#7209568 Разберитесь наконец с индексами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:17 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
mazzyVolochkova Но зато человеку достоверно известно: Volochkova Но логика построчной обработки записей, накладывает ущербный отпечаток на кодеров... Я пока от Вас ни одного опровержения не видел. Мне одного того что для каждой записи RecID генерируется на клиенте достаточно.. Могу в картинках... Вам же уже сказали: 1. читайте доку про update_recordset, insert_recordset 2. построчно на клиента переносятся результаты запросов. Запросы с агрегирующими функциями (типа select count(recid) from custtable group by custaccount) выполняются на сервере. Получившиеся результаты построчно переносятся на клиента. Но строк в результате гораздо меньше, чем в исходной таблице. Так работает курсор. В общем, пилите дальше.[/quot] Это и есть построчная гемороидалья.... Можно дальше не пилить... :-) Вместо отправки на сервер запроса - проведи документ и получить результат... Пользователь сидит и ждет.. когда же для каждой строки отработают куча маленьких запросиков.. Достаточно взглянуть SQL профайлером, что делает процесс... как бегает курсором по таблицам.. :-) Так что красивые маркетинговые фишки... это не клиент серверная обработка. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:20 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
mazzyVolochkovaу нее фрагментация 16% остается после 100% сделанных в ночь. /topic/650982&pg=7#7209568 Разберитесь наконец с индексами. Гы.. и что там не так? Индекс что кластерный, что нет.. эффект одинаковый.. база стоит колом :-))) только с кластенрым при 20 пользователях.. а без него на 5 :-) Порядок полей ( если вернуть как было в Аксапте) база стоит раком в принципе :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:22 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Ой... А что это за табличка? Индексы не трогал.... А что за пробелы такие левые???? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:25 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
iscrafmесли такие сценарии решаются при помощи физических блокировок записей в БД, то грустно, очень. А описанные Вами пунктики 1 и 3 как раз то, о чем говорит Волочкова (построчная обработка). С момента появления реляционных СУБД такой стиль работы выглядит даже дико. Блокировочники, а MS SQL 2000 - чистый блокировочник, именно так и работают. Другое дело, что блокировки не должны накладываться на все время пользовательского ввода (работы с формой), а только на время записи операции в базу. Но вряд ли аксапта блокирует записи на время жизни формы - это и сделать-то не очень просто. А 20 часов на закрытие магазина - ТС можно только посочувствовать, там видимо после всех оптимизаций и доработок все поразъехалось, и все это хозяйство на него(нее?) вывалилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:28 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Bладимир Блокировочники, а MS SQL 2000 - чистый блокировочник, именно так и работают. это к чему, уточните плз. p.s. как работают блокировочники и то, что SQL2k чистый блокировочник наверняка все знают. Только речь идет совсем о другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:39 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Volochkova Вот табличка.. уж ХЗ насколько она стандартная.. мне от не ведомо.. Да уж. Когда я начинал изучать Axapt-у, то что такое слои было в первый день. Ради интереса сдул пыль с книг по разработке. Ax 3.0 - 20 стр, Ax 4.0 - 40 стр. Советую ещё раз вдумчиво почитать одну из этих книг. Прежде чем мне доверили что-то оптимизировать, прошло месяца три не меньше. Но я тогда уже основы знал как отче наш. И простых задач, но актуальных для организации много наделал. Знал не только как правильно, но и почему. Да и у нас практиковался такой метод, как просмотр кода более старшими товарищами. Axapta - отличная система, уже почти 3 года программирую на ней и средства что-то ускорить в ней есть. Я вообще стараюсь не лезть в БД. То что действительно бывают проблемы как со скоростью или с неудачным архитектурным решением, это да. Но 98% случаях, это не стандартная Axapta, а то что написали либо партнёры (внедренцы) или на клиенте. А вы не понимая, кто-что сделал наводите панику. На axforum.info создать тему вы по какой-то причине боитесь или не хотите, чтоб вам помогли. Пишите на непрофильном форуме, вполне конкретные проблемы вперемешку с поверхностными выводами. Если проблем много, а подсказать доброжелательных старших товарищей нет, таких которые были в своё время у меня. Это плохо. Могу помочь, стать тем самым старшим товарищем, 1-2 часа в день (по мере вашей в этом необходимости) проводить консультации по телефону или любыми другими удалёнными средствами. Если интересно, то детали можно обсудить по почте kolosov82@inbox.ru. PS: Сразу оговорюсь, на всякий случай, не терплю хамства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:50 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
iscrafmBладимир Блокировочники, а MS SQL 2000 - чистый блокировочник, именно так и работают. это к чему, уточните плз. К тому что блокировочники борются с грязным чтением именно блокировками. Вот описанная ситуация: belugin Есть две транзакции A и B. А приходует товары a1 и a2 на склад С1. B перемещает товар a1 c С1 на склад C2. Сценарий 1. A увеличила остаток a1 на C1 2. В посмотрела на этот остаток (так как блокировки нет, она не знает что он "грязный" и что нельзя закоммититься) перенесла его на склад C2. 3. А пытается увеличить остаток a2 на С1 но что-то происходит и транзакция откатывается. Итого: - Нет ни одной приходной накладной - На складе С2 есть остаток, который неизвестно откуда взялся. К нему был Ваш коменнтарий: iscrafm если такие сценарии решаются при помощи физических блокировок записей в БД, то грустно, очень. Может быть Вы раскажете, как с такой ситуацией надо бороться без блокировок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 11:57 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Bладимир, почитайте про понятие POSTING. В аксапте даже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 12:16 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
iscrafmBладимир, почитайте про понятие POSTING. В аксапте даже. Давайте подробнее. Для меня, например, ваша мысль непонятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 12:33 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
mazzy Давайте подробнее. Для меня, например, ваша мысль непонятна. если документ не "проведен", то его записи не учавствуют в учете (товар не оприходован). А учитывается весь документ или ничего. Одна транзакция. Поэтому и непонятно, как можно взять одну запись из документа в тот момент, пока транзакция не завершена. Подозрение только на то, что записи обрабатываются построчно, а не в одной транзакции (о чем говорит Волочкова). Могу ошибаться, посмотреть негде сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 13:01 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
VolochkovaВидимо я не понимаю ничего Вы действительно ОЧЕНЬ многого не понимаете авторМне одного того что для каждой записи RecID генерируется на клиенте достаточно.. Вы это каким образом определили? Вообще RecId на сервере геренируется в большинстве случаев (за исключением толстого клиента) авторЗачем при приходе товара блокировать!!!! При продаже кстати тоже... блокировки не нужны :-))) Вопрос, как видите не с MS SQL а к логике, архитектуре. Именно ее я считаю ущербной... Такие понятия, как ACID , для нас пустой звук, но архитектуры обсуждать любим.. Вам бы выйти из режима агрессивного отрицания (см. "маразм" в каждом сообщении) и начать задавать правильные вопросы на профильных форумах. А пока что резюме такое - Снятая с поддержки версия приложения - Снятая с поддержки версия СУБД - Непонятной кривизны партнерское решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 13:23 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
Два вопроса касательно партнерского решения: 1. Предоставляет ли базовая поставка Dynamics AX функционал для розничной торговли (я так понимаю, что Volochkova пользует именно эту сферу бизнеса)? 2. Как партнер, предоставивший обсуждаемое решение позиционирует себя сам и как к этому относится MS? Суть второго вопроса в том, что если это - официальный партнер со всякими регалиями, то на MS лежит значительная доля ответственности за решения этого партнера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 13:34 |
|
||
|
Поругайте MS Dynamics AX (AXAPT`У)
|
|||
|---|---|---|---|
|
#18+
sobolevДва вопроса касательно партнерского решения: 1. Предоставляет ли базовая поставка Dynamics AX функционал для розничной торговли (я так понимаю, что Volochkova пользует именно эту сферу бизнеса)? 2. Как партнер, предоставивший обсуждаемое решение позиционирует себя сам и как к этому относится MS? Суть второго вопроса в том, что если это - официальный партнер со всякими регалиями, то на MS лежит значительная доля ответственности за решения этого партнера. Базовая не включает. Но есть решения партнеров для розничной торговли. Например Корус или Коламбус. Что за решение у Volochkova - вот в чем вопрос :) Да и думаю там и местные программисты успели пошаманить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 13:40 |
|
||
|
|

start [/forum/topic.php?fid=29&msg=36005011&tid=1526681]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 473ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...