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:分解复杂查询,用常量代替变量

  • 相关阅读:
    Leetcode: Palindrome Permutation
    Leetcode: Ugly Number
    Leetcode: Ugly Number II
    Leetcode: Single Number III
    Leetcode: 3Sum Smaller
    Leetcode: Factor Combinations
    Leetcode: Different Ways to Add Parentheses
    Leetcode: Add Digits
    GigE IP地址配置
    Ubuntu 关闭触摸板
  • 原文地址:https://www.cnblogs.com/jonhson/p/2037798.html
Copyright © 2011-2022 走看看