Я думаю, вы захотите что-то вроде:
CREATE NONCLUSTERED INDEX MyIndex ON MyTable(Col1, Col2, Col3, Col4, Col5, Col6)
INCLUDE (Col7, Col8, Col9, Col10)
Вы фильтруете на Col1-Col6
и получаете Col7-Col10
. Не уверен, как это будет работать с group by
, хотя. Возможно, вы захотите переписать его как DISTINCT
, поскольку план и результаты exec совпадают, но он будет более читабельным.
Если Col7
является первичным ключом и имеет кластеризованный индекс, вы можете оставить его как есть. Col7
будет включен в индекс без особого упоминания, поскольку ключ кластера присутствует в каждом некластеризованном индексе в качестве идентификатора строки, но его сохранение не повредит, так как SQL его проигнорирует.