Показать сообщение отдельно
Старый 05.07.2020, 21:29   #8  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Alexius Посмотреть сообщение
Далеко не всегда он медленный. Я не раз разбивал один тяжелый запрос с условием OR на несколько с последующим объединением.
Скажем так. Все познается в сравнении. Замена OR на UNION может дать прирост. А можно и вместо UNION сделать 2 INSERT-а. Это еще больше даст прирост, т.к. UNION строит временную таблицу, которая отъедает оперативную память, а INSERT сохраняет все на диск и при многопользовательском использовании запроса лишняя память не расходуется и в "потолок" сервер БД не упирается.
А если INSERT будет делаться во временную таблицу АХ, которая физически после превышения порога 128Кбайт (кажется) становится файлом - то конечно UNION будет быстрее, т.к. он использует все-таки ресурсы сервера БД.

В большинстве случаев, без конкретики вполне можно исходить из того, что UNION медленный вопрос и его всегда можно ускорить.
Но конечно будут случаи, когда UNION будет быстрее. Но тут опять-таки надо исследовать причину. Скорее всего можно будет уйти от UNION с увеличением скорости.

Axapta 3.0 - это неважно - все равно автор предполагает использование Statement и UserConnection. До версии 2009 - UNION в Х++ или через метаданные АОТа нельзя задать.
__________________
Возможно сделать все. Вопрос времени