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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2006, 12:56   #21  
_AnK_ is offline
_AnK_
Участник
Аватар для _AnK_
Ex AND Project
 
160 / 31 (2) +++
Регистрация: 03.11.2005
Адрес: СПб
120к проводок в InventTrans это именно что игрушечная база.

Видимо разработчики системы считают что наличие обычно будет считаться на дату гораздо ближе к настоящему времени, чем к "началу времен". Сложение проводок лет за 5 на производственном предприятии, когда нужно наличие на неделю назад это очень неправильно.
Старый 31.01.2006, 12:56   #22  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от UNRW
код я брал не из нашей рабочей базы... писал на память
1. на 16 миллионах этот запрос будет работать часа полтора так что в чем то мази прав, но только в чем то, потому что на стандартных классах это вообще не работает
2. Если сделать инвенттранс нормальным, построеным не по варчарам а поинтежеровским полям (вместо итемид - рекид и т.п.) - этот запрос будет работать на тех же 16 миллионах - 50 секунд

пункт 2 - это так, к слову хотя может пригодится построителям хранилищ для отчетности, буде таковые вообще есть в природе на этом форуме
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
За это сообщение автора поблагодарили: dn (3).
Старый 31.01.2006, 13:17   #23  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от UNRW
обрабатывает до полумиллиона проводок...

представь что Косяпта у тебя стала работать с 01.01.2004 отработала уже 2 года...
и отчет надо построить именно на 01.01.2004

вы чаще делаете отчет на неделю назад или на несколько лет назад?
насколько чаще?
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 13:19   #24  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Recoilme
1. но только в чем то, потому что на стандартных классах это вообще не работает
Не понял.
Что "это"?

Цитата:
Сообщение от Recoilme
2. Если сделать инвенттранс нормальным, построеным не по варчарам а поинтежеровским полям (вместо итемид - рекид и т.п.) - этот запрос будет работать на тех же 16 миллионах - 50 секунд
Это революция.
Переход от естественных ключей к исскусственным.
Такое вряд ли будет в ближайших версиях.
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 13:20   #25  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,698 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от mazzy
НЕТ! НЕТ! НЕТ!!! И еще раз НЕТ!!!
НИКОГДА так не делайте.

Этот код работат боль-мень приемлимо только на игрушечных данных малого объема!
Стоит вам только приблизиться к нормальному рабочему объему - ваша база умрет.

Здесь написано как Аксапта получает остатки на произвольную дату
http://axapta.mazzy.ru/lib/inventsumdate/
Вообще-то, даже чисто логически, вывод будет прямо противополжным. Одна групповая команда по всякому быстрее работает чем куча одиночных команд в цикле. Но это все теория. Пару месяцев назад я делал практическую проверку

30 тысяч артикулов. Рассчитать остаток для каждого артикула на начало мая 2005 года по 2 фиксированным складам (InventLocationId). Это около 2 миллионов складских проводок

InventSumDatePhysicalDim:: onHandQty() - отработал примерно за 50 минут
Прямой запрос в Query Analyzer по схеме: InventSum - SUM(InventTrans) выполнился за 2 минуты (т.е. остаток на сегодня минус все складские проводки до интересующей даты)

Даже с учетом того, что при переносе запроса в синтаксис AXAPTA он слегка "притормозит", все равно ускорение получаю в разы

Конечно, это несколько не то, что предложил UNRW. Я иду не "с начала времен", а от текущей даты назад. Но, по большому счету, на вывод это не влияет.

Если речь идет о расчете остатка для нескольких артикулов, можно использовать классы семейства InventSumDate. Если же речь идет о массовом расчете остатков по большому количеству артикулов, то следует искать обходные пути. Классы для этого слишком медленные.
Старый 31.01.2006, 13:21   #26  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от _AnK_
120к проводок в InventTrans это именно что игрушечная база.

Видимо разработчики системы считают что наличие обычно будет считаться на дату гораздо ближе к настоящему времени, чем к "началу времен". Сложение проводок лет за 5 на производственном предприятии, когда нужно наличие на неделю назад это очень неправильно.
Полностью согласен.
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 13:26   #27  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Владимир Максимов
Вообще-то, даже чисто логически, вывод будет прямо противополжным. Одна групповая команда по всякому быстрее работает чем куча одиночных команд в цикле.
1. Вы почему то обсуждаете конкретную реализацию, а не принцип. Принцип - считаем проводки от конца, а не от начала времен.
2. Вы забываете об аналитике. Аналитика у каждой номенклатуры - разная. Вообще говоря, мало кто хочет получить остатки на произвольную дату. Запрос UNRW является неправильным, поскольку не учитывает параметры в группе аналитики. Но я это дело пропустил, поскольку посчитал неважным.

ОДНАКО: если вы говорите о групповой обработке, то расскажите как вы обработаете аналитике корректно в групповой обработке?

Еще раз: уважаемые, подумайте.
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 13:36   #28  
UNRW is offline
UNRW
Участник
 
383 / 67 (3) ++++
Регистрация: 16.09.2004
Адрес: Москва
в запросе групируется по InventTrans.InventDimId и группируем в InventDim по нужным аналитикам - это же элементарно и очевидно

а то что запрос не правильный я сомневаюсь... мы пользуемся, работает быстро и быстрее стандартных, работает правильно и нас устраивает...

кого не устраивает такой подход пусть используют стандарные отчеты
Старый 31.01.2006, 13:39   #29  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от UNRW
в запросе групируется по InventTrans.InventDimId и группируем в InventDim по нужным аналитикам - это же элементарно и очевидно

Подумайте, пожалуйста.
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 13:46   #30  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
to mazzy
1 TableScan по InventTrans будет работать быстрей чем туча мелких запросиков по каждой номенклатуре и по неиндексированым датам (DatePhysical)
Конечно, эти 5 минут SQL сервер будет стоять в неудобной позе.. но недолго
Старый 31.01.2006, 13:47   #31  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от mazzy
Не понял.
Что "это"?


Это революция.
Переход от естественных ключей к исскусственным.
Такое вряд ли будет в ближайших версиях.
1. Ответил Владимир Максимов:
InventSumDatePhysicalDim:: onHandQty() - отработал примерно за 50 минут
Прямой запрос в Query Analyzer по схеме: InventSum - SUM(InventTrans) выполнился за 2 минуты (т.е. остаток на сегодня минус все складские проводки до интересующей даты)

значит для 16 миллионов - примерно 8 часов. А ещё нужен приход и расход = примерно 24 часа на построение оборотки = не работает

ЗЫ: я пробовал, через 1,5 часа снял задачу, у меня терпения не хватило

2. Скорее наооборот Переходе от искусственных ключей Аксапты построенным по текстовым полям к естественным ключам для СУБД построенным по целочисленным полям.
Об этом надо было думать Дамгардам при проектировании базы. Сейчас это можно использовать при построении хранилищ на основе аксапты
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 31.01.2006 в 13:52.
Старый 31.01.2006, 13:51   #32  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Wamr
to mazzy
1 TableScan по InventTrans будет работать быстрей чем туча мелких запросиков по каждой номенклатуре и по неиндексированым датам (DatePhysical)
Конечно, эти 5 минут SQL сервер будет стоять в неудобной позе.. но недолго
О-о-о-о индексы в Аксапте это вообще отдельная тема.... То ли я совсем не понял теорию как надо строить индексы, то ли её совсем не понял тот кто их туда пихал Очень хотелось бы услышать чьё-ть профессиональное мнение по индексам хотя бы для того же инвенттранса...........................................................................................
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 31.01.2006, 13:54   #33  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Recoilme
1. Ответил Владимир Максимов:
Все равно не понял.
Ну, да ладно. Надеюсь другие разобрались

Цитата:
Сообщение от Recoilme
2. Скорее наооборот Переходе от искусственных ключей Аксапты построенным по текстовым полям к естественным ключам для СУБД построенным по целочисленным полям.
Искусственные и естественные ключи - это термины.
Поищите. Найдете много интересного.
Поищите на этом форуме для начала. Тема обсуждалась неоднократно.

Цитата:
Сообщение от Recoilme
Об этом надо было думать Дамгардам при проектировании базы. Сейчас это можно использовать при построении хранилищ на основе аксапты
Они как раз думали.
Просто тогда СУБД были другими.
Тогда приортитеты были другими.
...Тогда - это уже 20 лет назад
http://axapta.mazzy.ru/lib/names/#chronicle
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 13:57   #34  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Recoilme
То ли я совсем не понял теорию как надо строить индексы, то ли её совсем не понял тот кто их туда пихал
Хинты для понимания:
Хинт 1. их туда пихал не один человек. Их туда много кто пихал. На протяжении очень длительного времени. В разных странах. Для разных СУБД.
Хинт 2. аксапта позволяет включать/выключать функциональность. В частности: таблицы, ПОЛЯ, ИНДЕКСЫ. Какие именно таблицы, поля, индексы включены - зависит от закупленных лицензий.

Правильная настройка индексов в конкретных условиях конкретного внедрения - дело внедренцев. ИМХО.
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 14:05   #35  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy
Правильная настройка индексов в конкретных условиях конкретного внедрения - дело внедренцев. ИМХО.
И все же хотелось бы пореже убирать косяки за вендором
__________________
-ТСЯ или -ТЬСЯ ?
Старый 31.01.2006, 14:06   #36  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от mazzy
Хинты для понимания:
Хинт 1. их туда пихал не один человек. Их туда много кто пихал. На протяжении очень длительного времени. В разных странах. Для разных СУБД.
Хинт 2. аксапта позволяет включать/выключать функциональность. В частности: таблицы, ПОЛЯ, ИНДЕКСЫ. Какие именно таблицы, поля, индексы включены - зависит от закупленных лицензий.

Правильная настройка индексов в конкретных условиях конкретного внедрения - дело внедренцев. ИМХО.
Не планируется ли написание Вашей командой написание статьи на эту тему? Думаю это было бы чрезвычайно интересно большинству участников.. Речь идет не о том как включать/выключать индексы, а скорее общие рекомендации по построению индексов на примере конкретных таблиц приводящие к увеличению призводительности приложения в целом, а не конкретных запросов?
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 31.01.2006, 14:11   #37  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik
И все же хотелось бы пореже убирать косяки за вендором
Это да... Особенно для самых распространненных комбинаций лицензий...
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 14:15   #38  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Recoilme
Не планируется ли написание Вашей командой написание статьи на эту тему? Думаю это было бы чрезвычайно интересно большинству участников..
Если честно, то я не очень понял что именно вы хотите получить от такой статьи?
И чем эта будущая статья будет отличаться от того, что Vadik уже написал? http://axapta.mazzy.ru/lib/querytuning/
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 14:16   #39  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,242 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Recoilme
приводящие к увеличению призводительности приложения в целом, а не конкретных запросов?
Наверное ты хотел спросить, какие конкретные запросы сильнее всего влияют на быстродействие типовых задач?
__________________
Isn't it nice when things just work?
Старый 31.01.2006, 14:26   #40  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от macklakov
Наверное ты хотел спросить, какие конкретные запросы сильнее всего влияют на быстродействие типовых задач?
Может быть и так.. хотя не уверен, вряд ли это
"Какие надо добавить конкретные индексы для оптимизации конкретных запросов "

Пример: распространенная задача - считывание текущего остатка, какой индекс на инвентсам/инвентдим позволит максимально оптимизировать эти запросы для MS SQL? М.б. это должен быть кластерный индекс? Насколько затормозится вставка?
Т.е. для таких задач наверно надо делать комплексное исследование, не как оптимизировать конкретный запрос, а как это повлияет на процесс в целом ? Поэтому я и побаиваюсь туда лезть
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Теги
остатки, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Остатки на дату InventSumDatePhysical Raven Melancholic DAX: Программирование 6 10.05.2007 15:29
Остатки товара на определенную дату Lucky13 DAX: Программирование 7 27.03.2007 14:27
Скачут остатки Def DAX: Программирование 3 03.05.2006 14:27
Цена на дату создания заказа/закупки George Nordic DAX: Функционал 2 29.06.2005 15:56
Остатки dog37 DAX: Программирование 6 02.06.2005 11:25

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

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

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