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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2007, 09:03   #1  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Table Scan через QueryRun
Проблема следующая.
Есть query (ProdTable, ProdBOM,SalesTable,InvnetDim), есть два идентичных приложения и две идентичные базы (рабочая и тестовая), на рабочем приложении если этот query прогонять через queryRun, запрос отрабатывает минут 15 (в профайлере сплошные Table Scan), если же этот query реализовать через while select, то все проходит на ура за полсекунды, на тестовом же приложении и тот и другой вариант проходит отлично. приложения абсолютно идентичны, базы - 2-3 дня разница. Соответственно индексы все одинаковые (на InventDim нет кластерного и первичного индекса, на SalesTable - кластерного (по умолчанию)). Опять же если этот query реализовать через SQL на сервере, то на обоих базах он отрабатывает замечательно... Трассировка на обоих приложениях выдает абсолютно идентичные запросы... Настройки хинтов никто не менял на обоих приложениях (все одинаково)..
В чем может быть причина scan'ов??
Старый 04.10.2007, 09:36   #2  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
В неправильной статистике. Попробуйте сделать sp_updatestats и повторно выполнить запрос
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 04.10.2007, 11:21   #3  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
не помогло((
Старый 04.10.2007, 13:33   #4  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Тестовое приложение двухуровневое? Можно, конечно, попробовать очистить кэш процедур через DBCC freeproccache, но на рабочем сервере это может сильно затормозить работу
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 04.10.2007, 14:41   #5  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Ок, ночью попробую, но все-таки интересен факт, что через queryRun работает так медленно, а через while select - нет, хотя трассировка одна и та же...
Старый 04.10.2007, 19:31   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от maximka Посмотреть сообщение
Ок, ночью попробую, но все-таки интересен факт, что через queryRun работает так медленно, а через while select - нет, хотя трассировка одна и та же...
сравните настройки
Literals in join queries from forms and reports
Literals in complex joins from X++

Цитата:
Есть query (ProdTable, ProdBOM,SalesTable,InvnetDim)
настроен ли RLS по этим таблицам?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 05.10.2007, 09:26   #7  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Настройки одинаковые, а RLS роли не играет, т.к. под админом та же история...
Старый 05.10.2007, 10:06   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Данные те же самые? Т.е. запрос уходящий на SQL сервер совпадает с точностью до данных?
Старый 05.10.2007, 10:46   #9  
maximka is offline
maximka
Сам.AX
Аватар для maximka
Самостоятельные клиенты AX
 
96 / 24 (1) +++
Регистрация: 26.10.2006
Адрес: Тюмень
Да, данные абсолютно одинаковые... я их перенес в job и только его и юзаю.
Пробовал literals(), forceNestedLoop(), forceSelectOrder() по всякому на обоих приложениях - не добился желаемого, единственное, что при forceSelectOrder(true) на тестовом приложении время выполнения немного приблизилось к живому). Но эксперименты с живым приложением похожих/обратных результатов не дали(
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Table Methods Generator Blog bot DAX Blogs 0 13.02.2009 02:05
OZKA's DAX Journal: Join между временной и постоянной таблицей через QueryRun. Blog bot DAX Blogs 12 14.01.2009 17:34
Axapta Lessons: Export a table to a file Blog bot DAX Blogs 0 28.10.2006 18:22
PatrickChua: Temporary table Blog bot DAX Blogs 0 28.10.2006 18:14
Как удалить строку из таблицы через QueryRun? vasiliy DAX: Программирование 4 09.01.2006 15:40

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

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

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