首页 > 其他 > 详细

索引视图DEMO2

时间:2019-04-19 18:56:47      阅读:148      评论:0      收藏:0      [点我收藏+]
use tempdb
----在创建视图和所有底层表时,必须打开ANSI_NULLS以及QUOTED_IDENTIFIER选项
--SET ANSI_NULLS ON 
--GO
--SET QUOTED_IDENTIFIER ON
--GO
----创建两张表,一张表头,一张明细,仅仅作为DEMO使用
--CREATE TABLE HeadTable
--(
--    HeadId      INT PRIMARY KEY  ,
--    HeadInfo    VARCHAR(50)      ,
--    DataStatus  TINYINT          ,
--    CreateDate  Datetime
--)
--GO

--CREATE TABLE DetailTable
--(
--    DetailId    INT identity(1,1) PRIMARY KEY ,
--    HeadId      INT           ,
--    DatailInfo  VARCHAR(50)
--)
--GO

----写入数据
--DECLARE @i int = 0
--WHILE @i<200000
--BEGIN
--    INSERT INTO HeadTable values (@i,NEWID(),RAND()*10,GETDATE()-RAND()*100)
--    INSERT INTO DetailTable(HeadId,DatailInfo) VALUES (@i,NEWID())
--    SET @i=@i+1
--END
--GO
------索引视图创建
CREATE VIEW HDTable_vw WITH SCHEMABINDING
AS
    SELECT H.HeadId,H.CreateDate,H.DataStatus,D.DetailId,D.DatailInfo
    FROM dbo.HeadTable H 
    INNER JOIN     dbo.DetailTable D ON H.HeadId = D.HeadId
    WHERE H.DataStatus > 0
GO

------为视图创建索引
CREATE UNIQUE CLUSTERED INDEX IX_HDId ON HDTable_vw(DetailId,HeadId)

---测试
--原表查询
--SET STATISTICS TIME ON --开启统计时间
SELECT H.HeadId,H.CreateDate,H.DataStatus,D.DetailId,D.DatailInfo
FROM dbo.HeadTable H 
INNER JOIN dbo.DetailTable D ON H.HeadId = D.HeadId
WHERE H.DataStatus > 0 

--索引视图查询
--SET STATISTICS TIME ON --开启统计时间
SELECT HeadId,CreateDate,DataStatus,DetailId,DatailInfo
FROM HDTable_vw
WHERE DataStatus > 0 

 

索引视图DEMO2

原文:https://www.cnblogs.com/jasonlai2016/p/10737572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!