Привет.
Есть вот такой запрос
SELECT rs.StoreCode,
rs.StoreName,
rs.RetailerCode,
rs.RetailerName,
d.ProductCategory,
d.ProductLine,
COUNT(sd.BarCode) as ItemsAmt
FROM @stores rs
CROSS JOIN @Models d
LEFT JOIN Sales as sd WITH(NOLOCK)
ON [sd].[CompanyCode] = @CompanyCode AND [sd].[SaleDate] BETWEEN @StartDate AND @EndDate AND
[sd].[StoreCode] COLLATE SQL_Latin1_General_CP1_CI_AS = [rs].[StoreCode] AND
[sd].[ModelId] COLLATE SQL_Latin1_General_CP1_CI_AS = [d].[ModelId]
WHERE sd.BarCode IS NOT NULL AND sd.BarCode <> ''
GROUP BY rs.StoreCode,
rs.StoreName,
rs.RetailerCode,
rs.RetailerName,
d.ProductCategory,
d.ProductLine
В таблице Sales есть такие индексы
1. CompanyCode, SaleDateб StoreCode, UserId, ModelId
2. BarCode
Вопрос: почему в данном запросе срабытывает индекс 2, а не 1 ?