SQL Server Indexed Просмотр Соответствия представлений с присоединениями не работает

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

Вопрос

У кого-нибудь есть опыт, когда SQL Server 2008 R2 может автоматически сопоставить проиндексированный вид (также известный как материализованные представления), которые содержат соединения к запросу?

Например, вид

select dbo.Orders.Date, dbo.OrderDetails.ProductID
from dbo.OrderDetails
join dbo.Orders on dbo.OrderDetails.OrderID = dbo.Orders.ID

Не может быть автоматически сопоставлено с тем же точным запросом. Когда я выбираю напрямую с этого представления with (noexpand) Я действительно получаю гораздо более быстрый план запроса, который делает сканирование на кластерном индексе индексированного представления. Могу ли я получить SQL Server сделать это соответствие автоматически? У меня есть несколько запросов и представлений, и я не хочу ссылаться на проиндексированное представление вручную каждый раз, потому что я использую или Mapper.

Я на предприятии Enterprise Edition SQL Server 2008 R2.

Редактировать: я нашел решение. SQL Server 2008 R2 не соответствует индексированным представлениям с более чем 2 соединениями автоматически. Возможно, это слишком замедляет процесс оптимизации слишком много.

Редактировать 2: Просмотр этого через 2 года после создания вопроса, я не думаю, что мой вывод был правильным. Материализированное сопоставление представления является очень хрупким процессом без четких правил, которые я мог найти за эти годы.

Конечно, следующее играет роль:

  • Количество объединений
  • Наличие предиката
  • Присоединиться к порядку, как в просмотре, так и в запросе
Это было полезно?

Решение

Я немного нечеткий на то, что в вашем вопросе; Но я думаю, что это даст вам то, что вы хотите:

http://msdn.microsoft.com/en-us/library/ms181151.aspx.

Существует много странных, произвольных, кажущихся условий, которые ограничивают, когда SQL Server будет использовать индекс просмотра в запросе. Эта страница документирует их для SQL Server 2008.

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