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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.08.2007, 01:41   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от SHiSHok Посмотреть сообщение
- запрос состоит из inner join-ов, т.о. отсутствие записи в любой таблице ведет к пустому запросу
Ну и что?
Если таблица markupTrans содержит значительно больше записей, чем таблица FatureTrans, то почему надо начинать именно с MarkupTrans?

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
2) отсутствие хинтов,на мой взгляд, требует не менее пристального внимания DBA
Но при правильной настройке статистики сервер сам сможет имзенить план.
В отличие от явно заданных хинтов.
При явно заданных хинтах сервер будет использовать даже неоптимальный явно заданный план.
См. типичный пример http://axapta.mazzy.ru/lib/querytuning/

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
4) буду знать, даже визуально приятнее читать условия к конкретному join (в общем то следовал схеме запроса DIS слоя)
Это не "визуально приятнее".
Это особенность Аксапты. В dis-слое писали неоптимально.
Об этом писал Еременко, по-моему, в своем блоге (торможу и не могу сейчас найти)

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
это я и пытался довести в сообщении о счетчике сиквела 'page lookups/sec', а вот таблица из запроса никуда не исчезнет (с чего бы ей исчезать из inner join-ов)
Оптимизатор, блн.
Еще как может исчезнуть. Аксапта может разбить один запрос на несколько вложенных если в середине используется временная таблица или нет полей для выборки.

Например,
select table1 where ...
join table2 where ...
join table3 where ...

ЕСЛИ table2
1. привязана к незакупленному лицензионному ключу
2. или выключенному конфигурационному
3. или является временной
ТО на sql пойдет не один запрос, а несколько вложенных.

В некоторых сервис-паках подобные "оптимизации" выполнялись и для таблиц, для которых не выбирается ни одно поле.

То, что у вас таблица осталась в запросе еще ни о чем не говорит
Чтобы таблица гарантировано попала в SQL запрос, запрос по ней должен содержать хотя бы одно хранимое на SQL поле.
Поэтому tableId использовать опасно. TableId - не хранимое поле.

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
может быть - сиквел подобную подстановку сам делает.
Нет, не делает.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: belugin (4).
Теги
axapta, faq, запрос (query), производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Производство. Запросы\Развертывание\Обработка не дает нужный результат e@gle DAX: Функционал 11 11.05.2007 18:10
Сложные запросы в RLS Ruff DAX: Администрирование 12 30.08.2005 18:02
Запросы в Аксапта ibc DAX: Программирование 5 08.08.2005 22:47
Разные запросы в 2-х и 3-х уровневой конфигурациях. Что делать?! Anais DAX: Программирование 12 04.11.2004 12:47
Сложные while select-запросы или вложенные циклы Atani DAX: Программирование 10 03.02.2004 13:46

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

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

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