Цитата:
Сообщение от
Alexius
Далеко не всегда он медленный. Я не раз разбивал один тяжелый запрос с условием OR на несколько с последующим объединением.
Скажем так. Все познается в сравнении. Замена OR на UNION может дать прирост. А можно и вместо UNION сделать 2 INSERT-а. Это еще больше даст прирост, т.к. UNION строит временную таблицу, которая отъедает оперативную память, а INSERT сохраняет все на диск и при многопользовательском использовании запроса лишняя память не расходуется и в "потолок" сервер БД не упирается.
А если INSERT будет делаться во временную таблицу АХ, которая физически после превышения порога 128Кбайт (кажется) становится файлом - то конечно UNION будет быстрее, т.к. он использует все-таки ресурсы сервера БД.
В большинстве случаев, без конкретики вполне можно исходить из того, что UNION медленный вопрос и его всегда можно ускорить.
Но конечно будут случаи, когда UNION будет быстрее. Но тут опять-таки надо исследовать причину. Скорее всего можно будет уйти от UNION с увеличением скорости.
Axapta 3.0 - это неважно - все равно автор предполагает использование Statement и UserConnection. До версии 2009 - UNION в Х++ или через метаданные АОТа нельзя задать.