zoukankan      html  css  js  c++  java
  • 视图


    大家应用视图无疑是简化了SQL查询,由于视图的重用性类似于自定义函数,所以很多人相对喜欢应用视图,但是应用视图简化了SQL却没有任何执行性能的提升,而且还带来维护。

    于是大家又开始研究索引视图的可用性了。

    个人把视图理解编译过的SQL执行计划,索引视图为实物化的类表,还包含索引结构。
    就如大家理解表的索引一样,索引视图同样会提升查询效率,但是索引维护、数据写等代价也随之增加。

    创建索引视图
    1、选项设置:
        SET ANSI_NULLS,ANSI_PADDING,ANSI_WARNINGS,CONCAT_NULL_YIELDS_NULL,ARITHABORT,QUOTED_IDENTIFIER ON
        GO
        SET NUMERIC_ROUNDABORT OFF
        GO
    2、绑定架构选项(WITH SCHEMABINDING)
        CREATE VIEW dbo.VIEW_Pqs     WITH SCHEMABINDING
        AS
           select .....
        GO
    3、设置唯一的聚集索引
         CREATE  UNIQUE  CLUSTERED  INDEX [IDX_VIEW_Pqs] ON [dbo].[VIEW_PQS]([S_id]) ON [PRIMARY] GO

    4、至于SQL的语法有一些限制,比如不能用count(*)之类的(用count_big(*)替换) 。可以查看帮助文档

    5、对于索引视图应用到的基表,可能会有数据写错误。
        基本上可以execute sp_dboption 'dbname','ARITHABORT' ,'true'即可(就是修改数据库选项set ARITHABORT on即可)
        当然是对于设置好后新创建的数据写是没有问题的,对于原来已有的需要重新设置选项并编译。

    --*******************************************************************************************************
    SET选项            要求的值     默认服务器的值     OLE DB和ODBC的值     DB LIB的值
    ANSI_NULLS         ON         OFF         ON             OFF
    ANSI_PADDING         ON         ON         ON             OFF
    ANSI_WARNINGS         ON         OFF         ON             OFF
    ARITHABORT         ON         OFF         OFF             OFF
    CONCAT_NULL_YIELDS_NULL ON         OFF         ON             OFF
    NUMERIC_ROUNDABORT     OFF         OFF         OFF             OFF
    QUOTED_IDENTIFIER     ON         OFF         ON             OFF 



  • 相关阅读:
    RHEL6中LVM逻辑卷管理
    Linux配置iSCSI存储
    Linux中FTP服务器配置
    360浏览器兼容模式下IE内核版本
    Ocelot + Consul + Registrator 基于Docker 实现服务发现、服务自动注册
    电视接入系统页面、监控页面
    Registrator中文文档
    关于Skyline沿对象画boundingbox的探讨
    EntityFramework实体默认值遇到Oracle自增主键
    C# 6.0 11个新特性
  • 原文地址:https://www.cnblogs.com/piaoqingsong/p/790752.html
Copyright © 2011-2022 走看看