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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2011, 05:58   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Zabr Посмотреть сообщение
updated: Работало около 1 часа, удалило 18% записей. Ожидал большего, но тоже неплохо.
исключите InventSum из проверки.
Там обычно слишком много записей с промежуточными итогами, которые создаются во время работы пользователей над заказами и журналами.

только в этом случае не забудьте почистить inventSum от записей, которые ссылаются на удаленные InventDim.
вопрос изначально был поставлен совершенно корректно
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Zabr (3).
Старый 01.04.2011, 11:07   #2  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
исключите InventSum из проверки.
О, точно! Спасибо, так и сделал. Удалилось еще около 750 тыс.записей Inventdim, запускал в пакетном режиме, заняло 25 минут.
Нужно в метод isCandidateInventDimIdTable добавить строчку с InventSum:
X++:
protected boolean isCandidateInventDimIdTable(SysDictTable _sysDictTable)
{
    configurationKeyId  configurationKeyId = _sysDictTable.configurationKeyId();
    tableId             tableId = _sysDictTable.id();
    ;

    // The table should only be evaluated if it has not been marked for deletion, it is
    // not a temporary table and is not InventDim nor InventDimCleanUp
    if (configurationKeyId      == configurationkeynum(SysDeletedObjects40) ||
        configurationKeyId      == configurationkeynum(SysDeletedObjects41) ||
        _sysDictTable.isTmp()    == true                                     ||
        tableId                 == tablenum(InventDim)                       ||
        tableId                 == tablenum(InventSum)                      ||
        tableId                 == tablenum(InventDimCleanUp))
        return false;
    else
        return true;
}
Старый 01.04.2011, 11:19   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Zabr Посмотреть сообщение
Нужно в метод isCandidateInventDimIdTable добавить строчку с InventSum:
ой-ой. будьте осторожны с такими советами
может стоит сформулировать: стоит рассмотреть возможность добавить такую строчку (тогда нужно будет добавить обработку InventSum!!)
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 01.04.2011 в 11:33. Причина: вместе с обработкой InventSum
Старый 01.04.2011, 11:46   #4  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Логичнее кажется первым делом очистить InventSum, а потом InventDim, чтобы не получить битых ссылок, пусть и на малый промежуток времени.
Старый 01.04.2011, 12:48   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Alexius Посмотреть сообщение
Логичнее кажется первым делом очистить InventSum, а потом InventDim, чтобы не получить битых ссылок, пусть и на малый промежуток времени.
Логичнее. а как?

поиск неиспользуемых inventSum сводится к поиску неиспользованных InventDim
Другого способа нет.
__________________
полезное на axForum, github, vk, coub.
Старый 01.04.2011, 12:54   #6  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
поиск неиспользуемых inventSum сводится к поиску неиспользованных InventDim
Другого способа нет.
Ну да. А еще было бы неплохо, если бы в inventDim был бы какой-то признак как InventSum.closed. И использование его в индексах.
Старый 01.04.2011, 14:35   #7  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от Zabr Посмотреть сообщение
Ну да. А еще было бы неплохо, если бы в inventDim был бы какой-то признак как InventSum.closed. И использование его в индексах.
А какое назначение этого признака ? Боюсь что поддержка его в актуальном состоянии окажется гораздо дороже выгод от него
Старый 01.04.2011, 13:40   #8  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от mazzy Посмотреть сообщение
Логичнее. а как?

поиск неиспользуемых inventSum сводится к поиску неиспользованных InventDim
Другого способа нет.
Как-то так
X++:
    InventSum   inventSum;
    InventTrans inventTrans;
    ;
    
    ttsbegin;

    delete_from inventSum
        notexists join inventTrans
            where inventTrans.ItemId      == inventSum.ItemId &&
                  inventTrans.inventDimId == inventSum.InventDimId;
            
    ttscommit;
Теги
inventdim, inventsum, складская аналитика, удаление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: Можно ли снизить стоимость внедрения ERP-системы? Blog bot DAX Blogs 0 11.02.2011 15:11
Производительность InventSum, InventDim AlexeyBP DAX: Администрирование 20 13.05.2007 12:58
«Как без последствий удалять ненужную номенклатуру готовой продукции ?» DaniK DAX: Функционал 3 24.12.2004 10:20
Как без последствий удалять ненужную номенклатуру готовой продукции ? DaniK DAX: Администрирование 1 23.12.2004 10:49
Что и как можно резать? George Nordic DAX: Администрирование 1 11.05.2004 18:44

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

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

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