zoukankan      html  css  js  c++  java
  • 创建索引视图

    CREATE VIEW UserInfoView
    WITH SCHEMABINDING
    AS
    SELECT Email,User_ID from dbo.User_Info
    GO
    --以邮箱创建一个唯一聚集索引
    CREATE UNIQUE CLUSTERED INDEX ix_UserInfo_Email
    ON UserInfoView (Email);
    GO

    注意:创建索引视图要点: 

    1: CREATE VIEW memberView后面要跟上WITH SCHEMABINDING

    理由:• 使用 schemaname.objectname 明确识别视图所引用的所有对象,而不管是哪个用户访问该视图。 

       • 不会以导致视图定义非法或强制 SQL Server 在该视图上重新创建索引的方式,更改视图定义中所引用的对象。

    2:视图上的第一个索引必须为 CLUSTERED 和 UNIQUE。

    理由:必须为 UNIQUE 以便在维护索引视图期间,轻松地按键值查找视图中的记录,并阻止创建带有重复项目的视图(要求维护特殊的逻辑)。必须为 CLUSTERED,因为只有聚集索引才能在强制唯一性的同时存储行。

    3:以下情况可考虑创建索引视图:

        • 可预先计算聚合并将其保存在索引中,从而在查询执行时,最小化高成本的计算。

         可预先联接各个表并保存最终获得的数据集。

        • 可保存联接或聚合的组合。

    4:基础表的更新会引发索引视力的更新。 

    5:索引视图的创建同时会带来维护上的开销。

    理由:• 因为索引视图是物理存在的。

       • 要额外的维护索引. 

    部分文字来自网上

  • 相关阅读:
    记录一次阻塞引发的系统超时
    2015年读书清单
    循序渐进的敏捷-每日例会
    循序渐进的敏捷-交叉测试
    对一次系统上线的思考-走出“舒适区”
    单点登录(SSO)系统的总结
    对一个同事项目的思考和总结
    关于福建出差的总结
    由错误处理引发的联想-防御式编程
    关于日志记录的总结
  • 原文地址:https://www.cnblogs.com/icyJ/p/IndexView.html
Copyright © 2011-2022 走看看