Показать сообщение отдельно
Старый 25.08.2011, 11:42   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Insert_recordset и временные таблицы в БД
Привет всем.

Недавно обнаружил любопытную вещь.
Запросы вида insert_recordset ... select from в X++
При работы с БД зачем то используются временную табличку.
Т.е. вместо того чтобы выполнить аналогичный запрос к БД, вначале создается временная табличка, затем в неё заливаются подобным запросом данные, а затем уже из времянки они переливаются в табличку получатель. (пример - тут
\Data Dictionary\Tables\LedgerBalancesTransDelta\Methods\transferTempDeltaRecsToLedgerBalTrans )

Интересно, зачем так сделано ?
К чему эти дополнительные костыли (ведь это только замедляет выполнение запроса) и возможно ли как-то отключить их использование? (Может быть есть какой нить хинт или настройка в реестре)

У нас используется оракл и эти времянки после выполнения запроса не удаляются - приходится их периодически убивать вручную

P.S.
Речь идет об Ax2009
За это сообщение автора поблагодарили: S.Kuskov (3).