SQL Server索引视图匹配的视图与连接不起作用

时间:2010-05-22 08:22:30

标签: sql-server sql-server-2008 query-optimization materialized-views indexed-view

有没有人有过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自动进行匹配吗?我有很多查询和视图,我不想每次都手动引用索引视图,因为我使用的是OR映射器。

我正在使用SQL Server 2008 R2的企业版。

编辑:我找到了解决方案。 SQL Server 2008 R2与索引视图不匹配,自动连接超过2个。可能会过多地减慢优化过程。

编辑2:在我提出问题2年后回顾这个问题,我不认为我的结论是正确的。物化视图匹配是一个非常脆弱的过程,多年来我没有明确的规则。

当然,以下内容起作用:

  • 联接数
  • 谓词的存在
  • 在视图和查询中加入订单

1 个答案:

答案 0 :(得分:2)

我对你的问题到底有点模糊;但我认为这会给你你想要的东西:

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

当SQL Server在查询中使用视图索引时,有很多奇怪的,任意看似的条件限制。此页面记录了它们的SQL Server 2008。