Друзья, у меня появились вопросы по FETCH API_CURSOR.
Есть некий запрос, допустим:
X++:
while select ledgerTrans
index hint ACDate
where ledgerTrans.AccountNum == "AccountNum"
&& ledgerTrans.TransDate <= 29\02\2020
&& ledgerTrans.Posting == LedgerPostingType::LedgerJournal
{
/*что-то там написано*/
}
Аксапта отправляет этот запрос на SQL, дожидается ответа и потом с помощью FETCH API_CURSOR возвращает данные с SQL в AX (возможно ересь написал).
Запрос в SQL выполняется быстро, первую десятку прогонов в цикле тоже быстро, НО потом на каком-то курсоре может зависнуть на десятки минут. При этом местный ДБА говорит, что за FETCH API_CURSOR* скрывается некий запрос который SQL пытается выполнить. Это так? Я всегда думал, что логично сначала выкачать данные, а потом просто по ним пробежаться. Зачем тогда выполнять мелкие под запросы в БД, какой в этом смысле? Может уже ДБА несет ересь?
Кто-то сталкивался с таким поведением FETCH API_CURSOR? Как-то это лечится?