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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2011, 12:57   #21  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Alexius Посмотреть сообщение
1. Почему название поля InventTransOrigin с названием таблицы ? Логичнее кажется добавить для единообразия суффикс Id
Поле InventTransOrigin - это ссылка на поле recId в таблице InventTransOrigin. Возможно, поэтому и не стали добавлять суффикс
Цитата:
Сообщение от Alexius Посмотреть сообщение
2. Есть ли таблица InventTransOrigin и по каким полям она связывается с InventTrans и InventTransOriginSalesLine (и т.д.) или ее поля перекочевали в InventTransOriginSalesLine (и т.д.), что согласуется с примером запроса, но не структурой БД ?
Таблицу InventTransOrigin следует использовать, если идти от InventTrans - по ней можно узнать, какой модуль сгенерировал проводку и дальше провалиться в модулные проводки через inventTransId
Цитата:
Сообщение от Alexius Посмотреть сообщение
3. Поле InventTrans.InventTransOrigin на сколько я понял из запроса сделано уникально для идентификации записи InventTrans?
Там четыре поля
DATAAREAID, INVENTTRANSORIGIN, INVENTDIMID, RECID
Индекс - кластерный
Цитата:
Сообщение от Alexius Посмотреть сообщение
4. Зачем поле OriginatingTable в таблицах InventTransOriginSalesLine (и т.д.) ?
Не нашел такое
Если имеет в виду InventTransOrigin<OriginatingTable>::findInventTransOriginId(…), то InventTransOrigin<OriginatingTable> - это название таблицы, InventTransOriginSalesLine, к примеру
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 12.04.2011 в 12:59.
Старый 12.04.2011, 13:00   #22  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от AndyD Посмотреть сообщение
Простой запрос select * from InventTable на моих данные в два с половиной - три раза медленнее, чем select itemId from InventTable
Бесспорно, т.к. во втором случае серверу БД нет необходимо читать данные из всей таблицы с кучей полей, а достаточно воспользоваться одним из некластерных индексов содержащих ItemId (GroupItemIdx, TypeIdx, DimGroupItemIdx, и т.д.)
Старый 12.04.2011, 13:08   #23  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Alexius Посмотреть сообщение
А как же банальная формочка просмотра проводок, если в нее попадает несколько сотен записей, то скорость работы с объединенными табличками скорее всего будет близка к скорости работы с одной, но если туда будут попадать тысячи записей, то накладные расходы сервера на объединение будут ощутимыми.
Скорее всего сделают связь с модульными таблицами в режиме Delayed, а не InnerJoin.
Старый 12.04.2011, 13:09   #24  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Alexius Посмотреть сообщение
Бесспорно, т.к. во втором случае серверу БД нет необходимо читать данные из всей таблицы с кучей полей, а достаточно воспользоваться одним из некластерных индексов содержащих ItemId (GroupItemIdx, TypeIdx, DimGroupItemIdx, и т.д.)
Не понятно, почему именно некластеным?
В обоих запросах используется как-раз таки кластерный ключ по ItemId, что эквивилентно пробегу по странцам с данными
__________________
Axapta v.3.0 sp5 kr2
Старый 12.04.2011, 13:15   #25  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от AndyD Посмотреть сообщение
Не понятно, почему именно некластеным?
В обоих запросах используется как-раз таки кластерный ключ по ItemId, что эквивилентно пробегу по странцам с данными
Рискну предположить, что у вас в рознице слишком уж много полей в inventTable и при этом сама таблица прочно закэширована в памяти SQL Server. Поэтому начинают играть затраты на передачу данных по сети, поскольку затраты на чтение с диска минимизированы. Но все равно - в большинстве случаев, затратами на передачу данных между сервером и клиентом - можно пренебречь.
Старый 12.04.2011, 13:21   #26  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
2 AndyD
На сколько я понял, структура данных АХ 2012, описанная в Implementing_InventTrans_refactoring_for_Microsoft_Dynamics_AX_Applications_AX2012.pdf не соответствует действительности.
Старый 12.04.2011, 13:25   #27  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от AndyD Посмотреть сообщение
Не понятно, почему именно некластеным?
Т.к. при использовании некластерного индекса для получения результата перебирается меньше данных.
Цитата:
Сообщение от AndyD Посмотреть сообщение
В обоих запросах используется как-раз таки кластерный ключ по ItemId, что эквивилентно пробегу по странцам с данными
Т.е. план выполнения запросов на MS SQL одинаковый для обоих запросов ?
X++:
SELECT * FROM INVENTTABLE

SELECT ItemId FROM INVENTTABLE
Старый 12.04.2011, 13:25   #28  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Да, розница
Но этот запрос я делал на тестовом сервере, где людей вообще нет.
Да и затраты здесь идут не от прокачки бо'льших объемов по сети, а от используемых серверных курсоров и операции фетча, вызовы которой дают значительный оверхед на операции
__________________
Axapta v.3.0 sp5 kr2
Старый 12.04.2011, 13:31   #29  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от AndyD Посмотреть сообщение
Да, розница
Но этот запрос я делал на тестовом сервере, где людей вообще нет.
Да и затраты здесь идут не от прокачки бо'льших объемов по сети, а от используемых серверных курсоров и операции фетча, вызовы которой дают значительный оверхед на операции
Может вы туда еще и container-field добавили ? Просто, насколько я помню, обычно в запрсое используются легкие курсоры (это fast forward кажется), но если в таблице есть BLOB-поля,то легкие курсоры автоматически апгрейдятся SQL-server до нелегких. (Не помню точно каких).
Старый 12.04.2011, 13:35   #30  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Alexius Посмотреть сообщение
Т.к. при использовании некластерного индекса для получения результата перебирается меньше данных.Т.е. план выполнения запросов на MS SQL одинаковый для обоих запросов ?
X++:
SELECT * FROM INVENTTABLE

SELECT ItemId FROM INVENTTABLE
Вы правы, индексы в данном случае разные.

Но переделка запроса на поле, не участвующее ни в одном индексе картину не поменяло - скорость различается на те же 2,5-3 раза
__________________
Axapta v.3.0 sp5 kr2
Старый 12.04.2011, 13:37   #31  
mifi is offline
mifi
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
173 / 89 (3) ++++
Регистрация: 24.07.2002
В чем я вижу преимущество данной модели - добавление полей для кастомизации хорошо ложиться на данную модель. Очень часто на проектах встречается, что в InventTrans добавлено с десяток полей, причем в основном не типа CostAmount, а как раз очень сильно зависящих от источника. Даже не говоря о производительности, будет намного более понятно и логично, если их разложить по InvenTransOriginам. Хотя, IMHO, количество Originов действильно немного большее, чем достаточное
Старый 12.04.2011, 13:44   #32  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от AndyD Посмотреть сообщение
Но переделка запроса на поле, не участвующее ни в одном индексе картину не поменяло - скорость различается на те же 2,5-3 раза
Занятно, я ожидал уменьшения разницы. Видимо действительно в этом примере так велики затраты на формирования набора записей со всеми полями и возвращение его клиенту (АОСу). В любом случае запросы с избыточным числом полей ЗЛО
Старый 12.04.2011, 13:49   #33  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mifi Посмотреть сообщение
В чем я вижу преимущество данной модели - добавление полей для кастомизации хорошо ложиться на данную модель. Очень часто на проектах встречается, что в InventTrans добавлено с десяток полей, причем в основном не типа CostAmount, а как раз очень сильно зависящих от источника. Даже не говоря о производительности, будет намного более понятно и логично, если их разложить по InvenTransOriginам. Хотя, IMHO, количество Originов действильно немного большее, чем достаточное
Я предполагал что они выделят таблички типа inventTransProd (с данными о маршруте и спецификации), inventTransCustVend (с данными о закупках/продажах, может еще налогах), inventTransJournal (для складских журналов) и inventTransOther (помойка - для всего остального). В общем - ничего кроме 'over-normalization', сказать не могу...
Старый 12.04.2011, 14:26   #34  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от fed Посмотреть сообщение
Может вы туда еще и container-field добавили ? Просто, насколько я помню, обычно в запрсое используются легкие курсоры (это fast forward кажется), но если в таблице есть BLOB-поля,то легкие курсоры автоматически апгрейдятся SQL-server до нелегких. (Не помню точно каких).
Блоб-полей нет
В обоих случаях тип курсора Fast forward-only cursor
__________________
Axapta v.3.0 sp5 kr2
Старый 12.04.2011, 20:14   #35  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
День добрый,

Цитата:
Назначение всех неслужебных таблиц должно быть объяснимо в терминах специалистов предметной области. Типа: CustInvoiceJour - шапки накладных, CustInvoiceTrans - строки накладных, CustTrans - субконто проводок по поставщику, CustSettlement - данные о сопоставлениях (закрытии друг на друга) платежей и оплат.
Боюсь что "эта ваша" схема разложения складских проводок не в состоянии преодолеть этот простой критерий
Согласен - и правило имеет смысл только для сущностей (не для отношений) и для концептуальных и логических схем (которых вы есстно не видели пока), но не для физических! К сожалению в аксапте АОТ не моделирует даже логические сущности, по-этому в некоторых случиях физическая модель может отличаться (опят таки ради производительности как правило или за ограничений аксапты).

Цитата:
1. Почему название поля InventTransOrigin с названием таблицы ? Логичнее кажется добавить для единообразия суффикс Id
Для Ах2012 логичнее как раз без ID чтобы было ближе к логической модели

Цитата:
5. Что хранит поле InventTransOrigin.ItemInventDim ?
Item inventory dimensions . На самом деле itemId + ItemInventDim по определению равны сслылке на Product ( посмотрите на Product item data managament). Незнаю как это на русский переведут - товар или продукт наверно !?
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/

Последний раз редактировалось Ievgenii; 12.04.2011 в 20:16.
Старый 12.04.2011, 23:06   #36  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
На самом деле itemId + ItemInventDim по определению равны сслылке на Product ( посмотрите на Product item data managament). Незнаю как это на русский переведут - товар или продукт наверно !?
SKU? По-русски, наверное, ближайшее - Артикул.
__________________
Ivanhoe as is..
Старый 14.04.2011, 00:52   #37  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Цитата:
SKU? По-русски, наверное, ближайшее - Артикул.
Очень надеюсь что наша локализация найдет что то достойное - только не Stock keeping unit или то что под этим у нас понимается.

В Dynamics Ax 2012 такие сущности как SKU и/или Handling Units пока не реализованы (ИМО), но рано или поздно появятся и это вообще отдельная история.

Надеюсь терминологию не попутают
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/

Последний раз редактировалось sukhanchik; 14.04.2011 в 13:13. Причина: Подправил орфографию во избежание повторных эксцессов по орфографии
Старый 14.04.2011, 10:26   #38  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
как я понял все эти рефакторинги inventtrans и ledgertrans в AX 2012, а также табличное наследование и переделка relations для поддержки улучшенного моделирования. Судя пр тренду они хотят улучшить моделирование процессов и их отражение.

поэтому весь этот рефакторинг затеяли ради моделей, и лучшего проецирования моделей на физические сущности.

я так понимаю дальше появится наверно какой то инструмент Modeller (возможно UML modeller с генератором классов и таблиц на основе моделей)
возможно в следующей версии, с которым можно будет подбирать и строить лучшие модели а все физические сущности и связки будет делать modeller.
(то есть таблицы, иерархии, отношения)

явное прослеживается Единность модели базовый класс и наследники Базовая таблица и таблицы спутников наследников.

Последний раз редактировалось Evgeniy2020; 14.04.2011 в 10:28.
Старый 14.04.2011, 10:32   #39  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,286 / 3494 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Эх... и никто не вспоминает из 3.0 MorphX Explorer (или как он там назывался) - который умел рисовать все вот эти модельки. Да, он был конечно бедный... но был.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: mazzy (2).
Старый 14.04.2011, 10:51   #40  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Эх... и никто не вспоминает из 3.0 MorphX Explorer (или как он там назывался) - который умел рисовать все вот эти модельки. Да, он был конечно бедный... но был.
Ну, скажем так, он, насколько я помню, умел только существующие таблицы отображать с их связями - а это и сейчас имеется, только называется по-другому и работает в Visio, что намного удобнее, имхо.
Теги
ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с поиском в InventTrans после changeCompany (DAX4) Raven Melancholic DAX: Программирование 11 13.03.2008 14:02
Связь таблиц InventTrans и PurchLine Pustik DAX: Программирование 2 25.11.2004 12:23
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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