AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.12.2006, 14:37   #5  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
В общем - одно время московский MBS грешил привычкой указывать условия джойна в условии where в конце запроса. Ну то есть - что нибудь типа:
select a
join b
join c
join d
where a.field1==b.field1 and c.field2=b.field2 and d.field3==a.field2

Так вот на одном из проектов (где-то в недрах книг покупок/продаж) обнаружилось что такой код, хоть и отрабатывает, но выполняется неадекватно много времени.
Как показало вскрытие, если MS SQL обрабатывает join нескольких таблиц без условия where для каждого join, то он СНАЧАЛА всегда строит картезианское произведение этих таблиц и только потом накладывает на него условия из последнего where (в котором с его точки зрения должны стоять не условия джойнов, а условия фильтрации результата).

После того как я это дело вылечил - написал в MBS и они у себя в этом конкретном месте подправили в новых сервис-паках. Возможно - в каких-то других местах кода подобные нехорошие джойны остались. Не уверен. Кроме того - это кажется на MS SQL 2000 SP3 было. Может с тех пор сам SQL Server научился более грамотно подобные запросы обрабатывать.
За это сообщение автора поблагодарили: belugin (10), Russland (1).
Теги
производительность, запрос (query), axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
В чем разница между salesline.QtyOrdered и SalesQty? Jab Straight DAX: Функционал 5 19.06.2007 17:04
Разница между пустой Группой на форме, и группой в которую включён элемент 3oppo DAX: Программирование 8 26.12.2006 10:47
Разница между английской и русской документацией Sirius DAX: Функционал 4 22.06.2005 15:02
Расчеты между компаниями Yuri Nikitenko DAX: Функционал 9 15.11.2004 08:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:59.