|
![]() |
#1 |
Ищу людей. Дорого.
|
InventSumTTSLog - такой таблицы нет, зато есть InventSumLogTTS - в ней 15 млн записей и она весит 5 Гигов.
Где можно почитать про эту таблицу и для чего она нужна На форуме mazzy - я тоже поднял эту тему. Мне ответили, что нужно отключить лицензию на свободное планирование. Возникает вопрос, как может отразиться отключение на функциональность других модулей? |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от sergeypp
InventSumTTSLog - такой таблицы нет, зато есть InventSumLogTTS - в ней 15 млн записей и она весит 5 Гигов.
Где можно почитать про эту таблицу и для чего она нужна На форуме mazzy - я тоже поднял эту тему. Мне ответили, что нужно отключить лицензию на свободное планирование. Возникает вопрос, как может отразиться отключение на функциональность других модулей? Если у вас не используется IMTS и сводное планирование (либо если вы реально им не пользуетесь) то рекомендую исправить метод forcedCreateInventSumLog() класса InventUpdateTTSControl таким образом : PHP код:
Посмотрите еще метод insertInventSumLogTTS() класса InventUpdateTTSControl и метод deleteCommittedItemId() таблицы InventSumLogTTS я думаю, что если выгнать всех пользователей из базы и остановить АОС то почти наверняка в это таблице не будет записей со значением inventSumLogTTS.IsCommitted == noYes::No Если это так то тогда можно просто сделать truncate Если же такие записи есть (обычно их немного) то лучше их скопировать куда нить, затранкейтить inventSumLogTTS а потом вставить эти записи обратно. Это самый быстрый способ. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Logger
Если у вас не используется IMTS и сводное планирование (либо если вы реально им не пользуетесь) то рекомендую
исправить метод forcedCreateInventSumLog() класса InventUpdateTTSControl таким образом : PHP код:
Если эти модуль сводное планирование не используется - просто выключите лицензию. Когда будет использоваться - включите лицензию. Это надежный и не зависящий от программистов способ. TTS-таблицы, насколько я помню, используются только в сводном планировании при расчете динамического сводного плана. IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц. Посмотрите в перекрестные ссылки, чтобы убедится достоверно. Не программируйте. ![]() |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от mazzy
IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц.
см. метод insertInventSumLogTTS() класса InventUpdateTTSControl сначала идут проверки PHP код:
В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании). Если бы не так, то при откате транзакции аксапта не смогла бы корректно восстановить значения остатков в InventSum, так как каждая строка обрабатывается при этом в отдельной транзакции. P.S. см. также PHP код:
PHP код:
PHP код:
Последний раз редактировалось Logger; 26.05.2006 в 18:05. |
|
|
За это сообщение автора поблагодарили: mazzy (15). |
![]() |
#5 |
злыдень
|
Цитата:
Сообщение от Logger
В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании). Если бы не так, то при откате транзакции аксапта не смогла бы корректно восстановить значения остатков в InventSum, так как каждая строка обрабатывается при этом в отдельной транзакции. Вся эта хрень не плодилась бы напрасно ))
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от Logger
не совсем так...
см. метод insertInventSumLogTTS() класса InventUpdateTTSControl ... а потом идет код по вставке записей. В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании).... 1. Приятно общаться с человеком, который знает и умеет обосновать. 2. Да, я действительно написал небрежно и неправильно Неправильно: Цитата:
IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц.
Цитата:
IMTS, насколько я помню, оставляет записи в TTS таблицах только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS удаляет записи в этих таблицах.
\Classes\InventUpdateTTSCleanup\commitTransaction \Classes\InventUpdateTTSCleanup\rollBackTransaction X++: if (appl.inventUpdateTTSControl().forcedCreateInventSumLog()) { update_recordset inventSumLogTTS setting isCommitted = 1 where inventSumLogTTS.TTSId == TTSId && inventSumLogTTS.IsCommitted == 0; } else { delete_from inventSumLogTTS where inventSumLogTTS.TTSId == TTSId && inventSumLogTTS.IsCommitted == 0; } X++: boolean forcedCreateInventSumLog() { return (isConfigurationKeyEnabled(configurationkeynum(req))); } Предлагаю сосредоточиться таки на проблеме автора Цитата:
Сообщение от sergeypp
База растет с угрожающей скоростью (слежу по размерам архивов бакапов)
|
|
![]() |
#7 |
Участник
|
![]()
Действительно удаляются.
Это радует. ![]() |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от Logger
![]() и метод deleteCommittedItemId() таблицы InventSumLogTTS
я думаю, что если выгнать всех пользователей из базы и остановить АОС то почти наверняка в это таблице не будет записей со значением inventSumLogTTS.IsCommitted == noYes::No Если это так то тогда можно просто сделать truncate Если же такие записи есть (обычно их немного) то лучше их скопировать куда нить, затранкейтить inventSumLogTTS а потом вставить эти записи обратно. Это самый быстрый способ. Есть импорт из внешней базы. За 30 минут импортируется большое количество строк заказов и журналов. Точно не считал сколько. Но не в этом дело. inventSumLogTTS забивается конкретно. Потом запускаем сводное планировани. В сводном планирование почти сразу вызывается deleteCommittedItemId() таблицы InventSumLogTTS Так вот вопрос может на insert этой таблицы повесить проверку if (inventSumLogTTS.IsCommitted == noYes::Yes ) return; Так время сэкономлю и на insert этой таблицы и ещё больше на очистки этой таблицы. Потому что после большого импорта заказов и журналов deleteCommittedItemId() очень долго отрабатывает. Если у кого нибудь есть какие-нибудь возражения или опасения на это решение напишите пожалуйста. Потому что я пока их не вижу. Одна голова хорошо, а целый форум лучше. ![]() |
|
![]() |
#9 |
Member
|
Цитата:
Сообщение от miklenew
...
Так вот вопрос может на insert этой таблицы повесить проверку if (inventSumLogTTS.IsCommitted == noYes::Yes ) return; ...
__________________
С уважением, glibs® |
|
![]() |
#10 |
Участник
|
|
|
Теги |
производительность, складские проводки |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|