|
![]() |
#1 |
Участник
|
Дополню, что если запрос выполнить на SQL. Без участия аксапты, то выдает все данные быстро.
__________________
Любую техническую проблему можно решить, если есть достаточно времени и денег. |
|
![]() |
#2 |
Участник
|
Цитата:
![]() стопудов в Аксапте вы выполняете процесс который в одной сессии пытается и записать в LedgerTrans и прочитать из этой же таблицы ![]() типа в одном цикле пытается "получить сальдо" по счету на дату и разнести какую-нибудь коррекцию на этот же счет. точно никто не вызывал метод selectForUpdate(true) на таблице, которая участвует в читающем запросе, который вы привели в первом посте? Последний раз редактировалось mazzy; 24.12.2020 в 12:07. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Какая нехорошая девочка! Не получит подарки на новый год. И корпоратив проводите "Без участия аксапты"
![]() стопудов в Аксапте вы выполняете процесс который в одной сессии пытается и записать в LedgerTrans и прочитать из этой же таблицы ![]() типа в одном цикле пытается "получить сальдо" по счету на дату и разнести какую-нибудь коррекцию на этот же счет. точно никто не вызывал метод selectForUpdate(true) на таблице, которая участвует в читающем запросе, который вы привели в первом посте? Не помог forceliterals.
__________________
Любую техническую проблему можно решить, если есть достаточно времени и денег. |
|
![]() |
#5 |
Участник
|
Цитата:
![]() Физически, Aхapta всегда оборачивает запрос в курсор-SQL, а план выполнения для курсора может принципиально отличаться от плана выполнения для запроса Т.е. для целей тестирования именно производительности запроса в SQL надо делать так X++: DECLARE test CURSOR FOR select * from ledgerTrans with (index (ACDate)) //Имя индекса будет другое where ledgerTrans.dataAreaId = 'dat' // Если есть dataAreaId and ledgerTrans.AccountNum = "AccountNum" and ledgerTrans.TransDate <= '20200229' and ledgerTrans.Posting = 14 --LedgerPostingType::LedgerJournal open test // Тормоза ожидаются вот здесь FETCH NEXT FROM test //Перебор записей WHILE @@FETCH_STATUS = 0 begin FETCH NEXT FROM test end CLOSE test DEALLOCATE test Правда обычно тормоза бывают на самом первом шаге. На самом первом FETCH. Дальше обычно все быстро идет. Если же тормоза наблюдаются в процессе перебора записей, то попробуйте для начала перестроить индексы...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: trud (2). |
Теги |
ax2009, fetch api_cursor, sql server |
|
|