SQL Server 2008 创建索引视图(物化视图) 的一点总结

SQL Server 2008 的索引视图似乎只能通过sql命令的方式创建, 暂未找到可视化创建的办法, 有谁知道吗?

 

要点:

1.必须要加上WITH SCHEMABINDING, 就是绑定到架构.

2.创建完视图后, 必须紧跟着创建一个CLUSTERED聚集唯一索引.

3.只支持两部分命名的表或UDF, 如 dbo.SalesOrder. 

4.涉及到多个表连接时, 不支持left join 或inner join的写法, 只能用from...where的方式或inner join的方式连接. (这一点有时很要命, 如果join多个表, 而这些表又不能都用inner join的方式时.)

5.不支持table.*这种懒省事的方式, 得一个一个把想要的列写清楚.

 

下面是实际代码

CREATE VIEW vw_SalesOrderIndexView
WITH SCHEMABINDING
AS
    SELECT T1.SalesOrderID,T1.CustomerID,T1.ResellerID, T2.ResellerName, T3.CustomerName, T1.SalesOrderID + ' ' + T2.ResellerName + ' ' + T3.CustomerName as FullTextSearch   

    FROM dbo.SalesOrder AS T1

    inner join dbo.Reseller AS T2 on T1.ResellerID = T2.ResellerID

    inner join dbo.Customer as T3 on T1.CustomerID = T3.CustomerID
GO
--Create an index on the view.
CREATE UNIQUE CLUSTERED INDEX IDX_V1
    ON vw_SalesOrderIndexView (SalesOrderID);
GO

最后, 打开Microsoft SQL Server Management Studio, 可以在Views下面看到刚才创建的索引视图(index view), 看起来似乎和普通的视图没什么区别, 只有点开看到Indexex里面有IDX_V1索引, 这才能看到具体的区别. 


至于它的更新, 是自动的, 不需要设置, 我也没找到设置的地方. 总之就是基础表修改后, 会自动传播到索引视图, 估计里面有类似观察者模式之类的机制.

 

参考资料:

http://msdn.microsoft.com/zh-cn/library/ms187864(v=SQL.100).aspx

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值