SQL Server 2008 R2 и план выполнения в проиндексированном представлении

StackOverflow https://stackoverflow.com/questions/4427916

Вопрос

Я создал проиндексированный вид (Мой взгляд) Это состоит из трех столбцов:

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 Dropleanbuffers ()) и используйте простой план выполнения через использование MyView и ix_1
2-ND Query работает не так быстро, потому что он использует «старый» план выполнения (в поисках нескольких индексов в трех таблицах и вложенного цикла)

Я неправильно понимаю эту ситуацию. Что касается меня, это естественное использование ix_1 и Мой взгляд для 2-й запроса.
Более того, я жду, что 2-ND Query запускает одинаковую скорость или даже быстрее, чем 1-ST, потому что он использует два столбца в том случае которые находятся в кластере индекса.

Я попробовал запустить 2-й запрос with(index=IX_1) и обновить статистику для столбцов, но все еще имеет тот же план выполнения.

Можно ли заставить использование SQL Мой взгляд И Ix_1. ?

Это было полезно?

Решение

Если вы не используете Enterprise / Developer Edition, вам нужно включить С NOEXPAND SUNT.

 Select * from [dbo].MyView WITH (NOEXPAND)
where Table1_ID = 10
AND Object_CreationDate <= GETDATE()

От Проектирование индексированных просмотров:

Индексированные представления могут быть созданы в любом издании SQL Server 2008. На предприятии SQL Server 2008 оптимизатор запросов автоматически рассматривает проиндексированный вид. Чтобы использовать проиндексированный вид во всех других изданиях, необходимо использовать таблицу NOEXPAND.

(И Developer Edition является в основном Enterprise Edition, с различным лицензированием)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top