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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.12.2016, 13:04   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Morpheus Посмотреть сообщение
The join condition is actually in the where clause. A cross join like this is equivalent to an inner join with the join condition.
Не совсем.
Эквивалентны функционально.
Но не эквивалентны с точки зрения производительности.

А вот дальше в книге приводится причина - outer join.

Pokersky09, в вашем запросе outer join есть?
Изображения
 
Старый 09.12.2016, 22:10   #2  
Pokersky09 is offline
Pokersky09
Участник
 
43 / 60 (3) ++++
Регистрация: 15.11.2012
Адрес: Turkey
Цитата:
Сообщение от mazzy Посмотреть сообщение
Не совсем.
в вашем запросе outer join есть?
Нет, чисто Inner Join.


Цитата:
Сообщение от mazzy Посмотреть сообщение
Эквивалентны функционально.
Но не эквивалентны с точки зрения производительности.
Именно в этом направлении и двигаюсь.

По производительности отличие существенное, когда в таблице Line 200KK+ записей, а в Header порядка 120К+(этот случай в бд разбираю).

На уровне SQL выполняя запросы на CROSS/INNER скорость существенно отличается, на кросе около 800ms самый хороший результат.

Пробовал на sql, тестил только планы запросов, без замеров времени:
Inner / Inner loop join, отличались циклом от варианта без loop,

Cost запроса CROS/INNER/LOOP_INNER = 44/44/13

Т.е. по стоимости по плану loop_Inner наиболее быстрый.

Планы CROS/INNER одинаковые, как и цена.

Позже выложу скрины по факту с временем, планами запросов и показателями таблиц

P.s. тему поднял не для теоретического рассуждения, а для реального решения проблемы

Последний раз редактировалось Pokersky09; 09.12.2016 в 22:12. Причина: отличались циклом от варианта без loop*
За это сообщение автора поблагодарили: mazzy (2).
Старый 09.12.2016, 22:21   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
По поводу хинта forceNestedLoop.
Он, в принципе, наоборот заставит использовать inner join, но с обязательным хинтом inner loop join. Т.е. будет принудительно устанавливаться алгоритм объединения
Цитата:
Сообщение от Pokersky09 Посмотреть сообщение
Нет, чисто Inner Join.
...
P.s. тему поднял не для теоретического рассуждения, а для реального решения проблемы
Попробуйте в аксапте добавить хинт forceNestedLoop сразу после select (или в свойствах query).
Получится как AndyD говорит?
Старый 13.12.2016, 01:40   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 646 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от mazzy Посмотреть сообщение
Но не эквивалентны с точки зрения производительности
Да эквивалентны они. AndyD выше уже показал, что план выполнения запроса будет совершенно одинаковый.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Теги
cross join, inner join, sql 2014

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axsa: MDM Adapter - Extending Dynamics AX 2012 R3 Master Data Management Blog bot DAX Blogs 0 22.05.2014 03:28
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
emeadaxsupport: AX 2012 reports fail to deploy on a server hosting multiple SQL Server Reporting Server instances Blog bot DAX Blogs 0 15.06.2012 11:11
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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