У меня есть 2 таблицы,Есть ли шанс вручную изменить план выполнения?
- нужно
- NeedCategory
Нужна таблица имеет clusted индекса на needid колонки, и NeedCategory имеет композитный кластерный индекс needid и CategoryID.
Теперь взгляните на следующий запрос и план выполнения запроса.
SELECT N.NeedId,N.NeedName,N.ProviderName
FROM dbo.Need N
JOIN dbo.NeedCategory NC
ON nc.NeedId = n.NeedId
WHERE IsActive=1
AND CategoryId= 2
ORDER BY NeedName
Кластерный индекс сканирования на необходимость таблицы происходит по IsActive = 1.
Кластерный индекс сканирования на needcategory таблицы происходит по CategoryId = 2
Мой вопрос:
- Почему сканирование происходит до соединения? если это произойдет после присоединения, тогда фильтр будет легче. Даже если оптимизатор выбирает сначала выполнение сканирования.
- Есть ли возможность изменить порядок выполнения вручную? не
Заранее спасибо