Я создал индексированное представление (MyView), который состоит из трех колонок:SQL 2008 в индексированном представлении
Table1_ID (int not null)
Object_CreationDate (datetime, null)
Objec_Count(bigint null)
я создал кластерный уникальный индекс IX_1 на два колонки: Table1_ID
И Object_CreationDate
я хочу запустить два запроса:
1.
Select * from [dbo].MyView
where Table1_ID = 10
2.
Select * from [dbo].MyView
where Table1_ID = 10
AND Object_CreationDate <= GETDATE()
1-й запрос выполняется быстро (даже с DBCC DROPCLEANBUFFERS()) и использовать простой план выполнения с помощью использования MyView и IX_1
2-й запрос выполняется не так быстро, потому что он использует «старый» план выполнения (поиск по нескольким индексам в трех таблицах и вложенному циклу)
Я неправильно понимаю эту ситуацию. Что касается меня, то естественно использовать IX_1 И MyView для 2-го запроса.
Кроме того, я ожидаю, что 2-й запрос будет работать с той же скоростью или даже быстрее, чем 1-й, поскольку он использует два столбца в разделе, которые находятся в кластерном индексе.
Я попытался запустить 2-й запрос with(index=IX_1)
и обновить статистику для столбцов, но все равно будет иметь тот же план выполнения.
Можно ли заставить использовать SQL MyView И IX_1?
Я поражен вы знаете такие свойства студии управления. –