创建分区视图1)创建较小成员表CREATETABLEdbo.DemoTab01(idintNOTNULL,insdatedatetimeNULL)ON[PRIMARY]CREATETABLEdbo.DemoTab02(idintNOTNULL,insdatedatetimeNULL)ON[PRIMARY]CREATETABLEdbo.DemoTab03(idintNOTNULL,insdatedatetimeNULL)ON[PRIMARY]*/42创建分区视图2)为分区依据设定范围ALTERTABLEdbo.DemoTab01WITHCHECKADDCONSTRAINTCK_DemoTab01_idCHECK(idBETWEEN0AND99999)ALTERTABLEdbo.DemoTab02WITHCHECKADDCONSTRAINTCK_DemoTab02_idCHECK(idBETWEEN100000AND199999)ALTERTABLEdbo.DemoTab03WITHCHECKADDCONSTRAINTCK_DemoTab03_idCHECK(idBETWEEN200000AND299999)*/42创建分区视图3)定义分区视图CREATEVIEWdbo.V_DemoTabASSELECTid,insdateFROMdbo.DemoTab01UNIONALLSELECTid,insdateFROMdbo.DemoTab02UNIONALLSELECTid,insdateFROMdbo.DemoTab03*/42创建分区视图4)通过视图进行数据操作INSERTINTOV_DemoTab(id,insdate)SELECTSalesOrderDetailID,ModifiedDateFROMAdventureWorks.Sales.SalesOrderDetailSELECT*FROMdbo.V_DemoTabWHEREidbetween3000and15000*/429.3索引视图9.3.1索引视图基本概念9.3.2定义索引视图*/42*/429.3.1索引视图基本概念如果在查询中频繁地引用视图,可通过对视图创建唯一聚集索引来提高性能。对视图创建唯一聚集索引后,视图返回的结果集将被存储在数据库中。建有唯一聚集索引的视图就称为索引视图,也称为物化视图。*/42*/429.3.2定义索引视图定义索引视图时,视图不能引用任何其他视图,只能引用基表。视图引用的所有基表必须与视图位于同一个数据库中,并且所有者也与视图相同。必须使用SCHEMABINDING选项创建视图。视图中的表达式引用的所有函数必须是确定的。表和用户定义函数在定义视图语句中必须由两部分名称组成(架构名.表名)。对视图创建的第一个索引必须是唯一聚集索引。*/42*/42SQLServer定义索引视图的额外要求当执行CREATEVIEW语句时,ANSI_NULLS和QUOTED_IDENTIFIER选项必须设置为ON。在执行CREATETABLE语句创建视图引用的表时,ANSI_NULLS选项必须设置为ON。*/42*/42示例——(1)设置选项USEMySimpleDB;GOSETNUMERIC_ROUNDABORTOFF;SETANSI_PADDING,ANSI_WARNINGS,CONCAT_NULL_YIELDS_NULL,ARITHABORT,QUOTED_IDENTIFIER,ANSI_NULLSON;GO*/42*/42示例——(2)定义视图CREATEVIEWSales.vOrdersWITHSCHEMABINDINGASSELECTSUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount))ASRevenue,OrderDate,ProductID,COUNT_BIG(*)ASCOUNTFROMSales.SalesOrderDetailASodJOINSales.SalesOrderHe