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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.03.2008, 10:59   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Очень интересная дискуссия, давайте как- то зафиксируем промежуточные результаты?

1. Щас есть два решения для хранения аналитик - InventDim и Dimensions

2. Недостатки InventDim

- требуется лишний джоин
интересно, есть ли данные насколько такой джоин дорог в количественном отношении?

- невозможность пострения составного индекса для поиска по полю таблицы и полю InventDim
для запросов типа
X++:
select * from InventTrans 
     where InventTrans.ItemID == _itemID
     join InventDim 
             where InventTrans.InventDimID ==  InventDim.InventDimID
                      &&
                       InventDim.InventLocationID == _inventLocationID
тут нельзя сделать составной индекс по <ItemID, inventLocationID> так как они в разных таблицах
Это мне кажется ограничение скорее аксапты - в SQL server, насколько я знаю, есть возможность строить индексы по функциям общего вида => мало что мешает строит индексы по полю связанной таблицы

- требуется лазить в дополнительную таблицу для получения оттуда данных

3. Недостатки Dimensions

- если объем InventDim существенно меньше объема inventTans, то inventTrans распухнет при переходе к схеме Dimensions (с другой стороны, есть менее постоянные аналитики, для которых это оправдано)

- нетипизированность ( все значения должны быть одного размера) - это ограничение наложенное аксаптой так как нет типа "структура" а есть тип "массив"

4. недостатки перехода InventDim --> Dimensions

- отвалятся модификации использующие существующую архитектуру

Я все правильно понял или что-то упустил?

С моей точки зрения недостатки inventDim в какой-то степени можно нивелировать развитием движка аксапты, SQL сервера или возможности использования второго первым...
За это сообщение автора поблагодарили: mazzy (5).
Старый 27.03.2008, 11:08   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Я все правильно понял или что-то упустил?
Вроде правильно.
Спасибо за резюме.
Надо подумать.
__________________
полезное на axForum, github, vk, coub.
Старый 27.03.2008, 11:31   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от belugin Посмотреть сообщение
3. Недостатки Dimensions
- нетипизированность ( все значения должны быть одного размера) - это ограничение наложенное аксаптой так как нет типа "структура" а есть тип "массив"
Тут еще и все значения должны быть одного типа.
InventDim поддерживает аналитики не только строкового типа.
Я так понимаю, это практически никто не использует, но, насколько я понмю, мы на каком-то проекте таки использовали
Старый 27.03.2008, 12:21   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Тут еще и все значения должны быть одного типа.
InventDim поддерживает аналитики не только строкового типа.
Я так понимаю, это практически никто не использует, но, насколько я понмю, мы на каком-то проекте таки использовали
Вот я имею ввиду сделать Edt типа структура. она ведет себя как таблица при редактировании из АОТ а при добавлении в таблицу просто включенные в нее поля добаляются этой таблице. А потом образщаться типа:

inventTrans.SelectiveDims.SerialNo
Старый 27.03.2008, 11:41   #5  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от belugin Посмотреть сообщение
Это мне кажется ограничение скорее аксапты - в SQL server, насколько я знаю, есть возможность строить индексы по функциям общего вида => мало что мешает строит индексы по полю связанной таблицы
Сейчас полазил по доке на SQL на предмет освежить сведения по индексам - что-то не нашел такой возможности ! Для такого вида запросов наилучшим решением были-бы индексированные вьюшки - они действительно дают большой прирост производительности.
Старый 27.03.2008, 12:18   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Вот это Creating Indexes on Computed Columns

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

Другое дело что проблему "селективных аналитик" это не решит - InventDim будет пухлым.

Возможно стоит сделать, чтобы селективные были в типа Dimension, а неселективные - в InventDim.

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

Тут такие мысли:

1. Найти такой код легко - он просто перестанет компилироваться

2. Для корректно написынных форм с редактированием InventDim можно, наверное, сделать автоматический конвертер

3. Для кода с InventDim надо как-то сделать, чтобы можно было легко преобразовывать старый код в новый и список рекомендаций - вот тут мне на ум ничего не приходит...
Теги
axapta, faq, inventdim, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsmatters: Performance and Inventdim PII Blog bot DAX Blogs 17 01.07.2009 16:03
dynamicsmatters: Dynamics AX Base Data Model Part II Blog bot DAX Blogs 0 08.05.2007 19:40
Dynamics AX Geek: #InventDimJoin Blog bot DAX Blogs 0 28.10.2006 16:40

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:30.