SQL SERVER 索引视图

  SQL SERVER 中的索引视图类似于其他产品的物化视图。创建语法类似如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[VMPTest]
WITH SCHEMABINDING
AS
SELECT A, B, C
FROM  dbo.Table
go

CREATE UNIQUE CLUSTERED INDEX PK_VMPTest_A
ON VMPTest(A)

  视图中必须先创建聚集索引后,才可以创建其他非聚集索引。

优点:

  查询时可以不引用基表,直接使用视图上的索引。对于一些基表的查询如:SELECT A,C FROM dbo.Table 也可以使用该索引。

限制:

  视图定义中不能包含下列元素:

  1. TOP

  2. text,ntext,或者image字段

  3. distinct

  4. MIN,MAX,COUNT(*),COUNT(表达式),STDEV,VARIANCE,AVG

  5. 可空类型表达式上进行SUM

  6. 派生表

  7. ROWSET 函数

  8. 其他视图(只能引用基准表)

  9. UNION

  10. 子查询、OUTER连接或者自连接

  11. 全文索引谓词

  12. COMPUTE,COMPUTE BY

  13. ORDER BY

 

  如果视图定义中包含GROUP BY,就必须在SELECT 列表中包含聚合函数 COUNT_BIG(*).

  对于AVG 可使用 SUM和COUNT_BIG变相解决。

 

  Schemabinding: 绑定基对象的架构。在修改对象或者删除对象时候它将阻止这个操作

posted on 2011-06-27 15:53  gaoli  阅读(272)  评论(0编辑  收藏  举报

导航