У меня есть 2 стола,
- Нужно
- НужнаКатегория
Таблица Need имеет кластеризованный индекс по столбцу 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.
Мой вопрос,
- Почему сканирование происходит до того, как происходит соединение? если это произойдет после объединения, то фильтр будет светлее. Даже если оптимизатор выбирает сканирование для выполнения первым.
- Есть ли возможность переставить план выполнения вручную?
Заранее спасибо