Показать сообщение отдельно
Старый 13.09.2011, 14:14   #27  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от AndyD Посмотреть сообщение
Но FetchMode() тоже надо будет настраивать, если есть другие датасорсы, подключенные к CustTable.
Про FetchMode хорошо написал Иван Кашперук Связывание источников данных в запросах
Цитата:
Сообщение от AndyD Посмотреть сообщение
А основная проблема с этим запросом - не может Аксапта обрабатывать большое количество вложенных подзапросов. Особенно, если они находятся на одном уровне вложенности
Соглашусь с тем что замена "exists join" на "inner join" во многих случаях поможет, но не всегда.
Проблема с "exists join" связана с тем, что если такой exists будет вставлен между двумя таблицами уже соеденёнными при помощи "inner join", то результирующий запрос получится не всегда ожиданным.

Например, такой гипотетический код:
Код:
select Table1
exists join Table3 where Table3.id == Table1.id
inner join Table2 where Table2.id == Table1.id
будет преобразован примерно вот в такой запрос:
Код:
table1 where exists (select Table3 join table2)
Если обойтись без Exists join и всегда использовать Inner join, то тогда проблема может появится уже по другой причине. Может быть превышено максимальное число приджойненных таблиц.
За это сообщение автора поблагодарили: dn (1).