有没有人有过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年后回顾这个问题,我不认为我的结论是正确的。物化视图匹配是一个非常脆弱的过程,多年来我没有明确的规则。
当然,以下内容起作用:
答案 0 :(得分:2)
我对你的问题到底有点模糊;但我认为这会给你你想要的东西:
http://msdn.microsoft.com/en-us/library/ms181151.aspx
当SQL Server在查询中使用视图索引时,有很多奇怪的,任意看似的条件限制。此页面记录了它们的SQL Server 2008。