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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.03.2012, 21:15   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,720 / 1207 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вы сделали распространенную ошибку, решив что на SQL-сервере выполняется напрямую SQL-запрос. На самом деле это не так. Там создается курсор, в который и "оборачивает" SQL-запрос. А вот у курсора и "чистого" запроса планы исполнения могут отличаться. Причем, как правило, отличия возникают именно при объединении по Exists Join.

Т.е. у Вас два варианта решения проблемы

1. Отказаться от Exists Join в пользу Inner Join. Поскольку у Вас ведущей является таблица строк накладных расходов, то связь получится по типу много-к-одному. Т.е. здесь даже не надо проверять на возможные дубли. Их и так не будет

2. Можно заняться оптимизацией. НО! Оптимизацией не того запроса, что Вы выцепили из профайлера, а обернутого в курсор. Т.е. Вам надо оптимизировать вот это

PHP код:
DECLARE cursor1 CURSOR FOR

SELECT *
FROM MARKUPTRANS A 
WHERE 
(A.DATAAREAID='exp' AND A.CUSTVENDPOSTED_RU<>AND A.ITEMPOSTED_RU=0) AND 
EXISTS (SELECT 'x' FROM CUSTINVOICETRANS B 
WHERE 
(B.DATAAREAID='exp' AND 
((
A.TRANSTABLEID=64 AND A.TRANSRECID=B.RECID AND B.SALESID='РКЗП-00032212' AND B.INVOICEID='14294-11' AND 
B.INVOICEDATE='2012-03-13 00:00:00.000' AND B.NUMBERSEQUENCEGROUP='ТД') OR 
(
A.TRANSTABLEID=62 AND A.TRANSRECID=5637435947) )))

OPEN cursor1
FETCH NEXT FROM cursor1
CLOSE cursor1
DEALLOCATE cursor1 
Если посмотреть его план выполнения, то Вы увидите, что он принципиально отличается от первоначального варианта
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: AlGol (1), Romb (1), malex (1), Alexanderis.ua (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
оптимизация запроса статистики по клиенту wojzeh DAX: Программирование 2 26.04.2011 05:08
Просмотрщик запросов QueryBrowser DAX 3.0 SP4 Russland DAX: База знаний и проекты 30 11.03.2011 11:00
Оптимизация запросов к БД в коде Ace of Database DAX: База знаний и проекты 57 18.03.2010 09:38
Оптимизация запросов psv DAX: Администрирование 6 29.07.2004 23:17
Оптимизация запросов Mystery DAX: Программирование 3 25.02.2004 13:12

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

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

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