|
27.09.2012, 17:39 | #1 |
Banned
|
Цитата:
Сообщение от Starling
Мне кажется, у меня есть решение. Покритикуйте.
1) Добавить в Query TransLog и делать выборку с джойном. Будет ничем не медленее вашей идеи с полем. 2) Сейчас идет выборка "от правип - к проводке", идет запрос от меньшей таблицы - к большей. Надо вывернуть наизнанку и делать выборку "от проводок - к правилам", закешировав предварительно правила, а также кэшируя результат по ключу "SourceAccountNum", причем делать обработку звездочек * не с помощью запроса, а оператором like. |
|
|
За это сообщение автора поблагодарили: Starling (2). |
27.09.2012, 19:04 | #2 |
Участник
|
Цитата:
Но, если я сейчас правильно помню код, то таблица TransLog заполняется в процессе трансляции. Получается что таблица, которая входит в запрос, «инсертится» в процессе выполнения этого запроса. Когда-то у меня были проблемы с такой реализацией. Спасибо – будем пробовать. О результатах постараюсь отписаться. |
|
16.10.2012, 12:05 | #3 |
Участник
|
Ошибка корреспонденции
Ошибку корреспонденции походе удалось исправить, модифицировав код метода importTransactions класса rtslLedgerTranslation.
X++: protected void importTransactions() { .... while select tmpLedgerTrans // The order defines bond sequence order by Voucher, TransDate, //BUG003, 10/10/2012 --> //add - исправление ошибки корреспонденции BondBatch desc, BondBatchTrans desc, // 2-2, 1-1, 0-0, 0, 0, 0 //BUG003 <-- TransType, OperationsTax, AccountType, // Usial-Usial, Usial-Disbalance, ...-TransDiff Txt //BUG003 10/10/2012 --> //comment - исправление ошибки корреспонденции //BondBatch desc, //BondBatchTrans desc // 2-2, 1-1, 0-0, 0, 0, 0 //BUG003 <-- ... После внесения описанных выше изменений ошибка перестала проявляться. Последний раз редактировалось Starling; 16.10.2012 в 12:09. |
|
16.10.2012, 12:08 | #4 |
Участник
|
Скорость трансляции
Попробовали оба варианта:
1. Новое поля – признак того, что проводка уже транслирована. 2. Not exists join по таблице TransLog. При первом вариант один день за 7 минут, при втором за 1 час. Но для первого пришлось еще и индекс на LedgerTrans добавить – это пока смущает. |
|