人丑就该多读书 2018-04-13
一、基本知识
摘抄自http://www.cnblogs.com/kissdodog/p/3385161.html
SQL Server索引-索引(物化)视图<第九篇>
索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图(白话是,给视图中的唯一值列加聚集索引,然后数据会存储在硬盘中),提高查询速度。
通过使用来自第一个索引的聚集键作为参考点,SQL Server还能在视图上建立额外的索引。
其限制如下:
7、必须要加上WITH SCHEMABINDING, 就是绑定到架构.
8、创建完视图后, 必须紧跟着创建一个CLUSTERED聚集唯一索引,而且必须在第一列(第一列是唯一值,类似于主键那样).
9、只支持两部分命名的表或UDF, 如dbo.SalesOrder.
10. 涉及到多个表连接时, 不支持left join 或right join的写法, 只能用from...where的方式或inner join的方式连接. (这一点有时很要命 只能用inner join太蛋疼)
11. 不支持table.*这种懒省事的方式, 得一个一个把想要的列写清楚.
--创建模式绑定视图 CREATE VIEW PersonAge_vw WITH SCHEMABINDING AS SELECT Age,COUNT_BIG(*) AS CountAge FROM dbo.PersonTenMillion GROUP BY Age --为视图创建索引 CREATE UNIQUE CLUSTERED INDEX ivPersonAge ON PersonAge_vw(Age)
SQL Server中的索引视图也具有查询重写的功能,
所谓的查询重写,就是如果符合条件的数据在索引视图上,并且查询列都包含在在索引视图上,此时可以直接通过查询索引视图来替代基于原始表的查询。
如果物化视图上没有要查询的列,则物化视图无效。直接去表中查询。
二、 详细查看物化视图执行及维护原理
http://www.cnblogs.com/wy123/p/6041122.html