|
![]() |
#1 |
Участник
|
Цитата:
Цитата:
AX 2012 got kernel support for surrogate key substitution. And not only in forms, but in Axd document services and even in the debugger.
Последний раз редактировалось S.Kuskov; 04.05.2011 в 11:54. |
|
![]() |
#2 |
Участник
|
![]()
__________________
Blog: http://axdaily.blogspot.com |
|
![]() |
#3 |
Участник
|
Цитата:
Кривовато, но рабочий вариант. Для отладки сгодится. Я думаю отладчик в 2012-й что-то подобное как раз и делает. Цитата:
![]() Последний раз редактировалось Logger; 04.05.2011 в 13:17. |
|
|
За это сообщение автора поблагодарили: shogel (1). |
![]() |
#4 |
Участник
|
Какой ВПР при импорте? ведь RecID (или другой суррогатный ключ) еще не сущесвует!!!
см. как приходилось импортировать recId раньше (консультант знает только код счета, а системе надо подсунуть recID) http://axapta.mazzy.ru/lib/import/ Цитата:
Теперь осталось добавить алгоритм, который по коду счета будет находить RecID. Для этого для поля AccountRecID на закладке Исходные тексты программ надо добавить алгоритм
X++: str convert(str input) { input = strfmt("%1", LedgerTable::find(input).RecID); return input; } |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Какой ВПР при импорте? ведь RecID (или другой суррогатный ключ) еще не сущесвует!!!
см. как приходилось импортировать recId раньше (консультант знает только код счета, а системе надо подсунуть recID) http://axapta.mazzy.ru/lib/import/ Но я немного о другом. Для того чтобы настроить группу определений как описано у вас, консультант должен уметь программировать или иметь при себе карманного программиста, который на ходу реализует его пожелания. Такое бывает не всегда. Кто кодировать не умеет - выгружает план счетов в Excel и там колдует со ссылками (превращает ссылки на код счета в ссылки по recId. Естественно это предполагает что план счетов уже импортирован ранее). Я именно это имел в виду когда упоминал про ВПР. |
|
![]() |
#6 |
Участник
|
Цитата:
Остается вопрос - как же консультанту импортировать новые записи ![]() |
|
![]() |
#7 |
Участник
|
Ух ты !
Классно. Кстати, получается мы в 2012-й Аксапте получили кардинальные изменения. Говоря по научному - смена парадигмы ![]() 1. А где нить есть статьи или публикации почему было принято именно такое решение ? Чем не устроил старый подход ? 2. Где нибудь проводилось сравнительное тестирование по скорости работы по старой схеме и с использованием суррогатных ключей ? В чем выиграли, в чем проиграли ... (Думаю если не было, народ не успокоится и начнет делать это самостоятельно. Я бы сделал. Интересно сравнить) |
|
![]() |
#8 |
Мрачный тип
|
По факту - радует, что наконец-то в недрах MBS собралась критическая масса адекватных людей и разум побеждает маразм. Использование унифицированного по типоразмеру суррогатного ключа в новой архитектуре - это то решение, которое стоит встретить аплодисментами, адресованными Core Team. Остается надеяться, что прикладники не подкачают.
P.S. вот и сделала DAX один шаг вдогонку одной т.н. СОП (нет, mazzy, не 1С ![]() P.P.S. Коллеги из партнеров-внедренцев - сочуствую, работы Вам подвалит ![]() P.P.P.S. Российский MBS немного даже жаль и немного даже страшновато - что ж такого от них ожидать в локализации DAX2012 ![]()
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#9 |
Участник
|
Цитата:
И тотального рефакторинга! |
|
![]() |
#10 |
Участник
|
Цитата:
![]() |
|
![]() |
#11 |
Moderator
|
У меня такое ощущение, что проектировщики решили пройтись по всем стандартным граблям, на которые наступает бывший системщик, которого ненароком занесло в прикладные программисты:
В итоге - грошовое увеличение производительности (не везде и не всегда), при заметном усложнении внедрения и поддержки. Не могу не процитировать самого себя 5летней давности: Microsoft Appoints Nadella to Lead Microsoft Business Solutions ![]() Мысль про системщиков, которых ненароком занесло в прикладную разработку продолжает оставаться актуальной. |
|
|
За это сообщение автора поблагодарили: Logger (2). |
![]() |
#12 |
Участник
|
Цитата:
Думаю, что уверенно можно говорить только после теста на большом объеме данных. Или ранее уже пробовали ? Поделитесь результатами. |
|
![]() |
#13 |
Moderator
|
Цитата:
1. Суррогатный ключ позволят сделать индексные ключи более короткими. А при уменьшении размера ключа с 20 байт до 8 (допустим для custAccount), число индексных входов в странице вырастет в 2,5 раза, соответственно - время доступа упадет в log(x*2,5)/log(x) раз. 2. Аналогичным образом - нормализация. Типа можно сэкономить место на диске за счет снижения избыточности (вынесли, например, из inventTrans часть повторяющихся полей в отдельную табличку). НО: Я на нескольких своих проектах экспериментировал с сжатием данных, которое появилось в SQL 2008. Так вот на практике, при сжатии популярных (и больших) таблиц, имеющих высокую избыточность и хороший коэфициент сжатия, результирующее время доступа для типичных запросов оставалось прежним (иногда чуть больше, иногда чуть меньше). При этом нагрузка на процессор заметно росла, а число физических чтений с диска падало, но не заначительно. Вывод из этого очень простой: В типичном современном сервере, памяти много (и ее легко добавить), дисковые массивы достаточно быстрые. Поэтому большая часть данных читается из кэша и от размера содержательной части данных зависит не очень сильно (ну конечно - при разумном уровне нормализации). Серьезный выигрыш от уменьшения размера хранимых данных может случиться только если идет запрос, который читает большой объем данных за большой период. Вполне могу поверить что в новой модели данных (или в скомпрессированных таблицах), отчет по inventTrans за 5 лет работает вполне быстрее чем в старой. Проблема в том, что такие запросы обычно гоняются через выделенную OLAP-систему. А в Аксапте наиболее типичный запрос - это джойн 2-3 таблиц, с максимум 50-100 записями в резульируюшей выборке. И если эти 2-3 таблицы, в результате нормализации или введения наследования, превратятся в 5-6, проигрыш от накладняков на джойны и компиляцию более сложного плана запроса заметно перекроют выигрыш от гипотетической экономии на чтении с диска/кэша. Про EAV тут уже обсуждали, так что не буду повторяться. Ну и могу заметить что, гм, пожелавшие остаться неназванными ![]() Уверен, что в пресс-релизах о выходе DAX2012 будет много сообщений о росте производительности в n раз. Вопрос в том, на какой выборке будет достигнута эта производительность и насколько типична эта выборка для того самого upper midmarket, для которого предназначена аксапта... Последний раз редактировалось fed; 04.05.2011 в 15:46. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
![]() |
#14 |
Участник
|
Цитата:
Думаю в этом все дело. Т.е. вопрос в том на какой рынок хотят вывести Аксапту. У меня складывается ощущение что MS хочет замахнуться на рынок SAP (плох солдат который не мечтает стать генералом. Нафига было вообще лезть на этот рынок, если не стремиться стать на нем лидером ?), т.е. для upper midmarket оставят Navision и может еще что, а Аксапту двинут на крупняк. Мы с вами свои рассуждения строим для баз размером 10 - 100 - 1000 гигов. (А больше под аксаптой наверно и не бывает пока) А её возможно готовят для больших объемов баз. Тогда понятно желание ввести суррогатные ключи (читай сэкономить память БД и ускорить время работы с индексами). Кстати, пример про 20 байт не очень удачный. Большинство ключей, по которым идет фильтрация и объединение таблиц являются наследниками EDT NUM, который имеет длину 20 символов, т.е. 40 байт в юникоде. Т.е. разница в 5 раз,а не в 2,5 раза. Последний раз редактировалось Logger; 04.05.2011 в 16:19. |
|
![]() |
#15 |
Moderator
|
Цитата:
![]() Для этого надо понимать как клиентский бизнес работает и от этого строить и маркетинг, и продажи, и разработку, и работу с партнерами.А вот в этом направлении движений не намечается. Присутствует наивная вера, что партнеры (у которых не так чтобы уж дофига денег), вдруг вложатся в разработку вертикальных решений и разовьют отраслевую эскпертизу. А раньше они, конечно-же, не хотели этого делать исключительно из за отсутствия суррогатных ключей в Аксапте ![]() Опять улучшения из серии - "They are barking at the wrong tree" Последний раз редактировалось fed; 04.05.2011 в 17:19. |
|
![]() |
#16 |
Moderator
|
Угу - обсчитался, забыл про юникод. Но разница не большая, все равно в реальной жизни почти все данные в кэше, а при чтении из памяти, выигрыш из за экономии места для типичного объема данных - небольшой.
|
|
![]() |
#17 |
Участник
|
Цитата:
Кстати по поводу сжатия в SQL 2008 - если не ошибаюсь страницы с индексами он не жмет (в отличие от оракла). Т.е. сжатие не поможет в ускорении работы с индексами. Только сокращение длины ключа. |
|
![]() |
#18 |
Moderator
|
Цитата:
Цитата:
Первый полезен для таблиц в которых много пустых числовых полей (типа inventSum). Он просто в конкретном экземпляре записи динамически усекает все decimals-поля до минимально разумной длины. В результате время вставки и обновления почти такое же как для несжатых данных, а время чтения лучше процентов на 15-20 (но учитывая что с диска данные редко читаются, выигрыш для конкретных запросов не столь велик). Второй способ - как раз таки традиционный Run Length Encoding, который в Microsoft FoxpPro использовался с 1989 года ![]() |
|
|
За это сообщение автора поблагодарили: denny (1). |
![]() |
#19 |
Banned
|
Мне тоже разработчики рассказывали об ужасах с производительностью и что справились - довели ее до прежнего уровня.
Справедливости ради надо сказать, что оптимизировать короткие запросы смысла нет. Даме в отделе продаж не очень важно, будет ли ее накладная 12 секунд или 10 разноситься. Для конечного пользователя важны быстрый скроллинг и вменяемое время выполнения сложных отчетов [читай - отчетов по InventTrans :] и процедур (типа закрытия склада или резервирования отгрузки). Последний раз редактировалось EVGL; 04.05.2011 в 16:02. |
|
![]() |
#20 |
Moderator
|
Цитата:
Сообщение от EVGL
![]() Мне тоже разработчики рассказывали об ужасах с производительностью и что справились - довели ее до прежнего уровня.
Справедливости ради надо сказать, что оптимизировать короткие запросы смысла нет. Даме в отделе продаж не очень важно, будет ли ее накладная 12 секунд или 10 разноситься. Для конечного пользователя важны быстрый скроллинг и вменяемое время выполнения сложных отчетов [читай - отчетов по InventTrans :] и процедур (типа закрытия склада или резервирования отгрузки). Насчет производительности - очень забавно. Перепроектировали систему для повышения производительности и в итоге понадобилось много релизов и много тестирования для того чтобы с этой самой производительностью справиться и получить тот же результат, который раньше был out-of-the-box. Интересно - а вот если партнер захочет пару полей в ГК добавить, или аналитику свою, чего тогда с производительностью будет ? И будет ли у партнера лишние человекомесяцы ресурсов и просто месяцы времени для того чтобы с этой самой производительностю "справиться'. Даже в старой модели данных (простой), партнеры регулярно ухитрялись закладывать жуткие грабли в своих доработках, из за которых в микрософт приходили от клиентов телеги по поводу торможения системы. Любопытно - что с партнерскими доработками в новой модели будет. Еще любопытно - будет ли у локализаторов время и ресурсы на то чтобы протестировать производительность, скажем корреспонденции в новой структуре ГК ? |
|
Теги |
ax2012, eav, полезное, суррогатный ключ, что нового |
|
|