Цитата:
Сообщение от
laptev
В стандартном механизме создания строк журнала инвентаризации для расчёта количества inventJournalTrans.inventOnHand используется класс InventSumDate (а это уже не один запрос, а 10-20).
Во-первых, инициализация происходит в методе класса
InventCountCreate_Base.createInventJournalTrans
Во-вторых, вызывается InventSumDatePhysicalDim:

nHandQty(...)
В-третьих, вызывается не 10-20 запросов, а 5
1. inventsum
2. для разнесенных финансово (для вычитания из inventSum)
3. для разнесенных физически (для вычитания из inventSum)
4. для скомплектованных (для вычитания из inventSum)
5. для зарегистрированных (для вычитания из inventSum)
Если вы сумели получить эти данные ОДНИМ(!) запросом, снимаю шляпу.
Но, скорее всего, вы написали ваш единственный исходя из сильно упрощенных предположений.
Кстати, если у вас не используется комплектация/регистрация/физические разноски, то запросы по ним должны выполняться очень быстро, поскольку должны возвращать пустой recordset. Если же вы используете, то 2,3,4,5 запросы при правильной работе должны возвращать очень небольшую выборку...
Скорее всего, тормоза в стандартном запросе связаны не с количеством запросов,
а с наличием index hint'ов. Но index hint и вообще index'ы надо настраивать для всей системы.
В общем, не убедили.
Скорее всего, вы просто не ухаживаете за вашей Аксаптой.
Скорее всего, при переписывании вы сильно упрощаете и обрезаете свой функционал (в дальнейшем вам будет очень сложно его включить обратно)