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 



  • 相关阅读:
    PAT 1088. Rational Arithmetic
    PAT 1087. All Roads Lead to Rome
    PAT 1086. Tree Traversals Again
    PAT 1085. Perfect Sequence
    PAT 1084. Broken Keyboard
    PAT 1083. List Grades
    PAT 1082. Read Number in Chinese
    求最大公因数
    [转载]Latex文件转成pdf后的字体嵌入问题的解决
    [转载]Matlab有用的小工具小技巧
  • 原文地址:https://www.cnblogs.com/piaoqingsong/p/790752.html
Copyright © 2011-2022 走看看