|
![]() |
#1 |
Участник
|
Цитата:
Передай большое человеческое спасибо разработчикам модуля логистики
![]() Цитата:
борюсь с непреодолимым желанием уйти в запой на недельку
![]() Эти доки - только самые первые, я думаю далеко не все моменты были освещены, по этому не стоит спешить с выводами. Все что не делаеться - делаться только на благо (или покрайней мере с найлутшими намериниями).
__________________
Thx, Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/ ![]() |
|
![]() |
#2 |
Administrator
|
Цитата:
Другое дело, что в АХ исторически сложилось писать select * from таблица, т.е. выбирать все поля, а не поштучно. Это конечно удобно для разработчика, но с т.з. быстродействия все же лучше в коде указать список полей для выборки, нежели "пилить" таблицу. Посмотрим конечно - но уже сейчас на форуме то и дело проскакивают сообщения об общей тормознутости АХ 2009 после АХ 4.0 и тем более 3.0. Уже страшно предположить что будет в АХ 2012 на реальных данных. Цитата:
Особенно мне понравился тот факт (это из другого документа), что хотя в АХ 2012 и не отказались от RLS - от него планируется отказаться в будущих версиях. Оно и понятно - отчеты на SSRS тяжело строить с проверкой всех прав. Но .... это ж ключевая технология - как от нее отказываться?
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Logger (3). |
![]() |
#3 |
Участник
|
А зачем RLS, когда можно создать 100500 таблиц клиентов и товаров.
Dax 12 - почувствуй нашу любовь %) Последний раз редактировалось imir; 12.04.2011 в 06:53. |
|
![]() |
#4 |
Microsoft Dynamics
|
Цитата:
Сообщение от sukhanchik
![]() Это с каких это пор нормализация давала улучшения в производительности? Наоборот - выборка из одной денормализованной таблицы гораздо быстрее, чем из пачки мелких.
Другое дело, что в АХ исторически сложилось писать select * from таблица, т.е. выбирать все поля, а не поштучно. Это конечно удобно для разработчика, но с т.з. быстродействия все же лучше в коде указать список полей для выборки, нежели "пилить" таблицу. Посмотрим конечно - но уже сейчас на форуме то и дело проскакивают сообщения об общей тормознутости АХ 2009 после АХ 4.0 и тем более 3.0. Уже страшно предположить что будет в АХ 2012 на реальных данных. "Благими намерениями дорога в ад вымощена" (с). Все дела в мире делаются исключительно с благими намерениями. Жизнь покажет - насколько такие архитектурные решения были оправданы. Особенно мне понравился тот факт (это из другого документа), что хотя в АХ 2012 и не отказались от RLS - от него планируется отказаться в будущих версиях. Оно и понятно - отчеты на SSRS тяжело строить с проверкой всех прав. Но .... это ж ключевая технология - как от нее отказываться? Вместо RLS предлагается Extensible Data Security Framework (XDS), который, в общем, похож на RLS по принципу работы, но требует модификации соответствующих Policy в AOT Последний раз редактировалось mifi; 12.04.2011 в 10:18. |
|
|
За это сообщение автора поблагодарили: sukhanchik (4). |
![]() |
#5 |
Moderator
|
Хотя это, вероятно, офтопик дла данного раздела, но на самом деле, в большинстве случаев, разницы никакой нету. Все равно читается вся запись из БД и оттуда вынимаются все данные (даже если в запросе перечислена всего одна колонка). Единственные два исключения - покрывающие индексы и clustered views (которые, по моему, в 2012 не поддерживаются). Если у тебя есть, индекс по custAccount+salesId, то запрос select salesId from table where custAccount='blah' будет обрабатываться только чтением из индекса, в то время как запрос select * from table where custAccount='blah', будет приводить к чтению из индекса и из самой таблицы (ну или кластерного индекса если он есть).
|
|
![]() |
#6 |
Microsoft Dynamics
|
Цитата:
Сообщение от fed
![]() Хотя это, вероятно, офтопик дла данного раздела, но на самом деле, в большинстве случаев, разницы никакой нету. Все равно читается вся запись из БД и оттуда вынимаются все данные (даже если в запросе перечислена всего одна колонка). Единственные два исключения - покрывающие индексы и clustered views (которые, по моему, в 2012 не поддерживаются). Если у тебя есть, индекс по custAccount+salesId, то запрос select salesId from table where custAccount='blah' будет обрабатываться только чтением из индекса, в то время как запрос select * from table where custAccount='blah', будет приводить к чтению из индекса и из самой таблицы (ну или кластерного индекса если он есть).
|
|
|
За это сообщение автора поблагодарили: Vadik (1). |
![]() |
#7 |
Moderator
|
Угу - забыл перечислить. Кстати - гораздо более жизненный пример - таблица reqLog. У меня на проекте форма reqLog открывалась порядка 30 минут при примерно 60 записях.
|
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от fed
![]() Хотя это, вероятно, офтопик дла данного раздела, но на самом деле, в большинстве случаев, разницы никакой нету. Все равно читается вся запись из БД и оттуда вынимаются все данные (даже если в запросе перечислена всего одна колонка). Единственные два исключения - покрывающие индексы и clustered views (которые, по моему, в 2012 не поддерживаются). Если у тебя есть, индекс по custAccount+salesId, то запрос select salesId from table where custAccount='blah' будет обрабатываться только чтением из индекса, в то время как запрос select * from table where custAccount='blah', будет приводить к чтению из индекса и из самой таблицы (ну или кластерного индекса если он есть).
При большом размере записи будет за один раз меньше кол-во переданных на клиент данных Простой запрос select * from InventTable на моих данные в два с половиной - три раза медленнее, чем select itemId from InventTable
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#9 |
Участник
|
Бесспорно, т.к. во втором случае серверу БД нет необходимо читать данные из всей таблицы с кучей полей, а достаточно воспользоваться одним из некластерных индексов содержащих ItemId (GroupItemIdx, TypeIdx, DimGroupItemIdx, и т.д.)
|
|
![]() |
#10 |
Участник
|
Цитата:
В обоих запросах используется как-раз таки кластерный ключ по ItemId, что эквивилентно пробегу по странцам с данными
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#11 |
Moderator
|
Цитата:
![]() |
|
![]() |
#12 |
Участник
|
2 AndyD
На сколько я понял, структура данных АХ 2012, описанная в Implementing_InventTrans_refactoring_for_Microsoft_Dynamics_AX_Applications_AX2012.pdf не соответствует действительности. |
|
![]() |
#13 |
Участник
|
Т.к. при использовании некластерного индекса для получения результата перебирается меньше данных.
Цитата:
X++: SELECT * FROM INVENTTABLE SELECT ItemId FROM INVENTTABLE |
|
Теги |
ax2012 |
|
![]() |
||||
Тема | Ответов | |||
Проблема с поиском в InventTrans после changeCompany (DAX4) | 11 | |||
Связь таблиц InventTrans и PurchLine | 2 | |||
Русская локализация Axapta 3 ? | 59 |
|