|
|
|
|
#1 |
|
Участник
|
Цитата:
Там обычно слишком много записей с промежуточными итогами, которые создаются во время работы пользователей над заказами и журналами. только в этом случае не забудьте почистить inventSum от записей, которые ссылаются на удаленные InventDim. вопрос изначально был поставлен совершенно корректно
|
|
|
|
| За это сообщение автора поблагодарили: Zabr (3). | |
|
|
#2 |
|
Участник
|
О, точно! Спасибо, так и сделал. Удалилось еще около 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; } |
|
|
|
|
#3 |
|
Участник
|
ой-ой. будьте осторожны с такими советами
![]() может стоит сформулировать: стоит рассмотреть возможность добавить такую строчку (тогда нужно будет добавить обработку InventSum!!) Последний раз редактировалось mazzy; 01.04.2011 в 11:33. Причина: вместе с обработкой InventSum |
|
|
|
|
#4 |
|
Участник
|
Логичнее кажется первым делом очистить InventSum, а потом InventDim, чтобы не получить битых ссылок, пусть и на малый промежуток времени.
|
|
|
|
|
#5 |
|
Участник
|
Цитата:
поиск неиспользуемых inventSum сводится к поиску неиспользованных InventDim ![]() Другого способа нет. |
|
|
|
|
#6 |
|
Участник
|
|
|
|
|
|
#7 |
|
Участник
|
|
|
|
|
|
#8 |
|
Участник
|
Цитата:
X++: InventSum inventSum;
InventTrans inventTrans;
;
ttsbegin;
delete_from inventSum
notexists join inventTrans
where inventTrans.ItemId == inventSum.ItemId &&
inventTrans.inventDimId == inventSum.InventDimId;
ttscommit; |
|
|
| Теги |
| inventdim, inventsum, складская аналитика, удаление |
|
|
|