zoukankan      html  css  js  c++  java
  • 数据库规范及优化

    1:所有的存储过程都应在开始时设置
       set nocount on --去掉受影响的行数

       set transaction isolation level read uncommitted --事务级别
       set xact_abort on    

    2.尽量使用表变量来代替临时表。SQL Server 2000以上版本中,表变量大大优于临时表。

    3:不要过多使用触发器,尽量不能使用触发器,这会导致数据库难以维护。

    4:索引原则
        规则1:创建索引必须有明确的使用目的,不允许创建无用的索引。

        规则2:频繁更新的字段不创建Clustered索引。

        规则3:索引字段不宜过多。对所选的每一列,可指出索引是按升序还是降序组织列值。

        规则4:不要在过长的字符型列上建立索引,如长度超过50的varchar字段。
                  这可以避免索引占用过多的空间。

        规则5:在不同的设备上创建文件或文件组,并将索引和表分别建在不同的文件组上。

        规则6:不需要将聚集主键字段建在任何非聚集索引中。

        规则7:频繁更新的索引应该每天使用 dbcc indexdefrag 工具整理索引碎片

    性能规则

    1:为了提高性能,应优先使用连接,然后使用子查询或嵌套查询。

    2:避免对where子句中的字段使用函数。避免对where子句中的字段进行计算。

    3:尽量使用where子句替换having子句,having只对统计结果进行过滤。

    4:在长度允许范围内,使用integer代替numeric

    5:用case语句合并多重表扫描

    6:对于比较复杂的语句,或者涉及数据量较大的表的语句,可以通过做查询计划检测、调整语句性能。

    7:like子句尽量前端匹配。

    8:尽量不使用 "<>"

    9:分解复杂查询,用常量代替变量

  • 相关阅读:
    一张图理解prototype、proto和constructor的三角关系
    深入理解javascript对象系列第三篇——神秘的属性描述符
    深入理解javascript对象系列第二篇——属性操作
    深入理解javascript对象系列第一篇——初识对象
    javascript类型系统——Math对象
    Django的第一个页面
    关于原型链
    js中的继承问题
    面向对象关于函数以及this的问题
    关于bind、call以及apply
  • 原文地址:https://www.cnblogs.com/jonhson/p/2037798.html
Copyright © 2011-2022 走看看