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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2010, 20:56   #1  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Удаление InventSettlemens
Вопрос глупый, но все же
если отменить все пересчеты себестоимости, удалить проводки по этип операциям (в ГК), и удалить все записи в InventSettlements, а затем пересчитать себестоимость, что будет?
Старый 14.05.2010, 21:18   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Записи в InventSettlement относятся не только к закрытию склада и корректировкам. Например, к корректировке себестоимости, разноске накладных расходов.

В общем, плохо будет.

Посмотрите функцию суммирования сопоставлений. Или она очисткой сопоставлений называется.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: aidsua (2).
Старый 14.05.2010, 22:01   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Удалить можно те, что с Canceled = 1
За это сообщение автора поблагодарили: mazzy (2).
Старый 15.05.2010, 20:58   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
е
Цитата:
сли отменить все пересчеты себестоимости
нет проблем, это штатный механизм Аксапты.
Цитата:
удалить все записи в InventSettlements
Если пересчеты и закрытия себестоимости отменены, то записи в InventSettlements никак не влияют на баланс главной книги (с точки зрения российских ПБУ возможны проблемы из-за разницы сторно и реверса операций).
Цитата:
удалить проводки по этип операциям (в ГК)
Абсолютно лишняя операция. Отмена закрытия (пересчета) и так скорректирует операции по ГК. Опять же, если забыть про корреспонденцию счетов, то операция совершенно законная. Если добавить российские правила, то есть небольшие проблемы
Цитата:
удалить все записи в InventSettlements
Не нужно. Отмена пересчетов или закрытий отмечает записи в InventSettlements как не активные. Эти неактивные записи можно удалить стандартной периодической операцией.
PS: в общем, если вы не скрыли какие-то неочевидные особенности, то задачу вполне можно решить стандартными средствами. (если же сказали не все, то нужно думать, как решить задачу)
За это сообщение автора поблагодарили: mazzy (2).
Старый 17.05.2010, 12:27   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от Wamr Посмотреть сообщение
Удалить можно те, что с Canceled = 1
В таком случае, непонятно отсутствие во всех индексах на таблице поля Canceled (я уж молчу об отдельном индексе под это дело...). То есть, похоже, разработчики таким вот образом как бы намекают, что не стоит этого делать...
Старый 17.05.2010, 13:20   #6  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,896 / 5651 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Zabr Посмотреть сообщение
В таком случае, непонятно отсутствие во всех индексах на таблице поля Canceled (я уж молчу об отдельном индексе под это дело...). То есть, похоже, разработчики таким вот образом как бы намекают, что не стоит этого делать...
В таком случае, непонятно наличие оператора
X++:
delete_from inventSettlement
        index hint ItemDateIdx
        where inventSettlement.ItemId       == _inventTable.ItemId              &&
              inventSettlement.Cancelled    == NoYes::Yes                       &&
              inventSettlement.SettleModel  != InventSettleModel::PhysicalValue &&
              inventSettlement.TransDate    <  transDateDel;
в методе inventCostCleanup.updateDelSettlement(). На что же нам намекают его авторы ?

А если говорить по делу, то та функциональность которая нужна топикстартеру присутствует в этом самом классе inventCostCleanup. Разница только в том, что он проводки по ГК не удаляет, а сторнирует. (О чем уже было сказано Raven Melancholic).
Если написать свой класс, который удаляет отмененные записи в inventSettlement, проводки по ГК (с аккуратным пересчетом балансов в ledgerBalanceDim / LedgerBalanceDimTrans) и сопутствующую запись в inventClosing, то можно добиться полного удаления следов закрытия/пересчета склада. Я конечно знаю, что это методологически неверно, но во время запуска системы мне приходилось для устранения последствий собственных ошибок такие классы писать.

Последний раз редактировалось fed; 17.05.2010 в 13:22.
Старый 18.05.2010, 13:15   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Zabr Посмотреть сообщение
В таком случае, непонятно отсутствие во всех индексах на таблице поля Canceled (я уж молчу об отдельном индексе под это дело...). То есть, похоже, разработчики таким вот образом как бы намекают, что не стоит этого делать...
А по-моему, "отсутствие в индексах" - просто ошибка.
Причем понятно откуда она взялась - просто не тестируют с отмененными закрытиями.
__________________
полезное на axForum, github, vk, coub.
Старый 18.05.2010, 14:24   #8  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
А по-моему, "отсутствие в индексах" - просто ошибка.
Да, конечно, про намёки я ж просто пошутил. У меня например inventsettlement - 53 млн. записей на 28 Гб (данные+индексы),.
Старый 18.05.2010, 16:00   #9  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy Посмотреть сообщение
А по-моему, "отсутствие в индексах" - просто ошибка.
Причем понятно откуда она взялась - просто не тестируют с отмененными закрытиями.
Ну это как посмотреть. Если регулярно проводить ТО системы, включающее удаление отмененных сопоставлений в прошлых периодах, то селективность и соответственно польза от такого индекса радостно стремится к нулю. Так что если вы N-цать лет экспериментировали с закрытием склада и не чистили InventSettlement, то соотношение "хороших" и "плохих" сопоставлений и количество данных будут такие, что оптимизатору будет дешевле запустить один table scan чем миллионы раз метаться от записей в индексе к страницам с данными. В этом случае очистка частями по дате сопоставления (TransDate) вам в помощь, благо поле проиндексировано неоднократно
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: mazzy (2), Zabr (1).
Старый 18.05.2010, 17:47   #10  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от Vadik Посмотреть сообщение
то селективность и соответственно польза от такого индекса радостно стремится к нулю.
Это да, но меня на самом деле интересовала скорость чистки, сколько времени моя база будет шуршать по 53 миллионам записей без индекса по нужному полю.
Старый 18.05.2010, 18:01   #11  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Zabr Посмотреть сообщение
Это да, но меня на самом деле интересовала скорость чистки, сколько времени моя база будет шуршать по 53 миллионам записей без индекса по нужному полю.
Если отмененных сопоставлений много (миллионы), независимо от того насколько быстро они найдутся (по индексу или нет), их еще потребуется удалить, так что все равно это довольно затратная по вводу-выводу операция и ее так или иначе придется бить на части (и тут индекс по дате сопоставления будет полезен)
__________________
-ТСЯ или -ТЬСЯ ?
Старый 18.05.2010, 22:30   #12  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,286 / 3494 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Zabr Посмотреть сообщение
Это да, но меня на самом деле интересовала скорость чистки, сколько времени моя база будет шуршать по 53 миллионам записей без индекса по нужному полю.
Тогда гораздо быстрее сделать копию таблицы (средствами СУБД), в которую перелить только нужные записи (тоже средствами СУБД), после чего грохнуть исходную таблицу, а копию переименовать в исходную таблицу. Гораздо быстрее все получится.

Только надо учесть, что имена индексов уникальны в БД (MS SQL Server) и полную копию таблицы с индексами создать не получится, если не переименовать помимо таблицы еще и индексы.
Я создавал копию таблицы без индексов - туда все переливал, после чего синхронизировал табличку (после удаления исходной таблицы)
__________________
Возможно сделать все. Вопрос времени
Старый 19.05.2010, 09:29   #13  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от Vadik Посмотреть сообщение
Если отмененных сопоставлений много (миллионы)
Всего 53,7 млн, из них отмененных 3,7 млн. Вообще, имеет смысл чистить при таком раскладе, что посоветуете?
Старый 19.05.2010, 10:20   #14  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Zabr Посмотреть сообщение
Всего 53,7 млн, из них отмененных 3,7 млн. Вообще, имеет смысл чистить при таком раскладе, что посоветуете?
Я бы почистил, профилактики ради и экономии места для - производительности особой это не прибавит. Если планируете запускать такую очистку регулярно и используете SQL Server 2008, можете создать filtered index (WHERE CANCELLED = 1) - получится симпатично, эффективно и не громоздко
__________________
-ТСЯ или -ТЬСЯ ?
Старый 19.05.2010, 17:09   #15  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Почистил. Заняло 7 часов. Удалилось 10,1 млн сопоставлений, добавилось 6,5 млн, итого уменьшение на 3,6 млн. записей. Посмотрел на таблицу в Sql management studio .. и очень сильно удивился занимаемому объему в базе: ОН ВЫРОС! Число записей - да, сократилось. Но занимаемое место в базе: было 14 Гб данные + 14 Гб индексы, стало 13 Гб данные + 20 Гб индексы. Почему вдруг настолько сильно (на 50%) выросло место занимаемое индексами, если число записей сократилось?
Vadik, есть версии ?
Старый 19.05.2010, 18:08   #16  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Zabr Посмотреть сообщение
Почистил. Заняло 7 часов. Удалилось 10,1 млн сопоставлений, добавилось 6,5 млн
..
Почему вдруг настолько сильно (на 50%) выросло место занимаемое индексами, если число записей сократилось?
Если не углубляться в технические подробности - это пройдет после перестройки индексов
__________________
-ТСЯ или -ТЬСЯ ?
Теги
пересчет себестоимости, удаление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Автоматическое удаление AX 4.0 HISS DAX: Администрирование 3 16.10.2010 20:39
Ax 3. Запускаю на сервере удаление файла. Не удаляет. Arahnid DAX: Администрирование 17 05.02.2010 16:05
Корректное удаление проводки DreamCreator DAX: Программирование 7 25.05.2006 13:22
Удаление проекта Maxim Gorbunov DAX: Программирование 0 24.12.2001 23:04

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

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

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