数据库规范及优化

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

posted @ 2011-05-05 16:11  奇幻男孩  阅读(229)  评论(0编辑  收藏  举报