04.10.2007, 09:03 | #1 |
Сам.AX
|
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 |
Злыдни
|
В неправильной статистике. Попробуйте сделать sp_updatestats и повторно выполнить запрос
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
04.10.2007, 11:21 | #3 |
Сам.AX
|
не помогло((
|
|
04.10.2007, 13:33 | #4 |
Злыдни
|
Тестовое приложение двухуровневое? Можно, конечно, попробовать очистить кэш процедур через DBCC freeproccache, но на рабочем сервере это может сильно затормозить работу
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
04.10.2007, 14:41 | #5 |
Сам.AX
|
Ок, ночью попробую, но все-таки интересен факт, что через queryRun работает так медленно, а через while select - нет, хотя трассировка одна и та же...
|
|
04.10.2007, 19:31 | #6 |
Модератор
|
Цитата:
Literals in join queries from forms and reports Literals in complex joins from X++ Цитата:
Есть query (ProdTable, ProdBOM,SalesTable,InvnetDim)
__________________
-ТСЯ или -ТЬСЯ ? |
|
05.10.2007, 09:26 | #7 |
Сам.AX
|
Настройки одинаковые, а RLS роли не играет, т.к. под админом та же история...
|
|
05.10.2007, 10:06 | #8 |
Участник
|
Данные те же самые? Т.е. запрос уходящий на SQL сервер совпадает с точностью до данных?
|
|
05.10.2007, 10:46 | #9 |
Сам.AX
|
Да, данные абсолютно одинаковые... я их перенес в job и только его и юзаю.
Пробовал literals(), forceNestedLoop(), forceSelectOrder() по всякому на обоих приложениях - не добился желаемого, единственное, что при forceSelectOrder(true) на тестовом приложении время выполнения немного приблизилось к живому). Но эксперименты с живым приложением похожих/обратных результатов не дали( |
|