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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2010, 16:20   #1  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
2 fed
Ты имеешь ввиду это?
Цитата:
HINT_INDEX (1) – если параметр включен, будут работать операторы INDEX HINT из X ++ кода. Кроме того, при использовании FORCELITERALS имеет побочное действие – при использовании SELECT по одной таблице с условиями в части WHERE по индексированному полю использование этого индекса будет указано в запросе автоматически;
отсюда http://axapta.mazzy.ru/lib/indexhints/

PS. Посоветуй "идеальный" hints, я посмотрю запросы.
Старый 17.03.2010, 16:31   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от raz Посмотреть сообщение
2 fed
Ты имеешь ввиду это? отсюда http://axapta.mazzy.ru/lib/indexhints/

PS. Посоветуй "идеальный" hints, я посмотрю запросы.
Идеальный hints - это отключение всех hints кроме firstfast/firstonly. Если у тебя в БД со статистикой в порядке, MS SQL/Oracle подберет вполне себе хороший маршрут исполнения запроса. Кстати именно поэтому начиная с DAX4 по умолчанию хинты просто игнорируются. А в трешке, в зависимости от номера KR значения флажков в indexhints менялось, так что прямо счас универсального хинта не посоветую...
Да и кстати - разговор то не про хинты, а вообще о разнице между инженерным и знахарским подходом к решению проблем.

Последний раз редактировалось fed; 17.03.2010 в 16:58. Причина: синтаксис
Старый 17.03.2010, 16:43   #3  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
У меня всегда хинты были выключены.
Трассировку своих запросов показывать не хочу по политическим причинам.
Вот что показывает трассировка запросов, которые привел raz:

для запроса №1:
PHP код:
 FROM INVENTTRANS A WHERE ((DATAAREAID=?) AND (((((INVENTTRANSID=?) AND (ITEMID=?)) AND (STATUSISSUE=?)) AND (DATESTATUS=?)) AND (STATUSRECEIPT=?))) OPTION(FAST 20
для запроса №2:
PHP код:
 FROM INVENTTRANS A WHERE ((DATAAREAID=?) AND (((((STATUSRECEIPT=?) AND (STATUSISSUE=?)) AND (ITEMID=?)) AND (DATESTATUS=?)) AND (INVENTTRANSID=?))) OPTION(FAST 20

Для эксперимента, я включил хинты. И они стали попадать в запрос - так же как у raz'а.

для запроса №1:
PHP код:
FROM INVENTTRANS A(INDEX(I_177STATUSITEMIDX))  WHERE ((DATAAREAID=?) AND (((((INVENTTRANSID=?) AND (ITEMID=?)) AND (STATUSISSUE=?)) AND (DATESTATUS=?)) AND (STATUSRECEIPT=?))) OPTION(FAST 20
для запроса №2:
PHP код:
FROM INVENTTRANS A(INDEX(I_177STATUSITEMIDX))  WHERE ((DATAAREAID=?) AND (((((STATUSRECEIPT=?) AND (STATUSISSUE=?)) AND (ITEMID=?)) AND (DATESTATUS=?)) AND (INVENTTRANSID=?))) OPTION(FAST 20
Но у меня всегда хинты были выключены. То есть, все-таки последовательность важна. Возможно, у меня слетала статистика запросов или индексы. Но у меня обновление статистики работает регулярно как и реиндексация.
Пока не поменял порядок полей в запросе - не ускорилось выполнение.

Последний раз редактировалось Ace of Database; 17.03.2010 в 16:48.
Старый 17.03.2010, 16:49   #4  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
У меня всегда хинты были выключены.
Трассировку своих запросов показывать не хочу по политическим причинам.
Вот что показывает трассировка запросов, которые привел raz:

Для эксперимента, я включил хинты. И они стали попадать в запрос - так же как у raz'а.

Но у меня всегда хинты были выключены. То есть, все-таки последовательность важна. Возможно, у меня слетала статистика запросов или индексы. Но у меня обновление статистики работает регулярно как и реиндексация.
Пока не поменял порядок полей в запросе - не ускорилось выполнение.
Тогда надо вынимать планы запросов из самого MS SQL и сравнивать по обоим вариантам. Советую почитать в BOL про dynamic views sys.dm_exec_query_stats, sys.dm_exec_sql_text и sys.dm_exec_query_plan.
Коротко говоря - есть возможность вытащить из MS SQLного кэша запросов текст и план исполнения некоторого количества запросов которые недавно исполнялись. По плану запроса можно будет понять что изменилось и попытаться построить теории - почему изменилось...
Старый 17.03.2010, 16:51   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,286 / 3494 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
У меня всегда хинты были выключены.
На 4.0 (хинты отключены в конфиг утилите АОСа) джоб raz-а не вставил никаких указаний по индексам в планы запроса. Вывод - DAX не посчитала себя умнее SQL Server (SQL Server 2005 SP3)
__________________
Возможно сделать все. Вопрос времени
Старый 17.03.2010, 17:03   #6  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
На 4.0 (хинты отключены в конфиг утилите АОСа) джоб raz-а не вставил никаких указаний по индексам в планы запроса. Вывод - DAX не посчитала себя умнее SQL Server (SQL Server 2005 SP3)
Так и я про то же, что у меня хинты выключены. Даже когда тормозили запросы.
Просто я сейчас проверил, что у меня работает включение хинтов.
Старый 17.03.2010, 16:48   #7  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от fed Посмотреть сообщение
Да и кстати - разговор то не про хинты, а вообще о разнице между инженерным и знахарским подходом к решению проблем.
Согласен! Но когда после очередного обновления замечаешь, что вендор в очередной раз сделал всем "сюрприз", сразу вспоминаются "Хочу бубен!!!!!".
Теги
index hint, sql server, оптимизация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Параметры запросов БД CasperSKY DAX: Программирование 3 22.03.2008 19:32
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Оптимизация запросов psv DAX: Администрирование 6 29.07.2004 23:17
Оптимизация запросов Mystery DAX: Программирование 3 25.02.2004 13:12
Просмотр SQL запросов к БД с помощью файла Log Anton Sk. DAX: База знаний и проекты 3 25.01.2002 16:31

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:57.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.