• sql server使用的注意点及优化点 自备


    1.字符类型建议采用varchar/nvarchar数据类型,并且禁止使用varchar(max)、nvarchar(max)

    2.金额货币建议采用money数据类型  (*)

    3.自增长标识建议采用bigint数据类型   (数据量一大,用int类型就装不下,那以后改造就麻烦了)

    4.时间类型建议采用为datetime数据类型

    5.禁止使用text、ntext、image老的数据类型

    6.每张表必须有主键,尽量使用单字段主键

    7.查询度较高的,不允许使用外键,会增加表结构变更及迁移的复杂度,外键插入对性能有影响,需检查主外键约束,建议在程序中控制一致性

    8.新建的表,所有字段禁止为NULL,允许为null会增加更多逻辑判断

    9.索引的设计原则

        1)where 后经常使用的列建索引

        2)对经常用到的列创建索引

        3)应该对排序的OrderBY子句创建索引

        4)数据量小的表禁止创建索引

        5)表索引数不超过6个

        6)充分利用唯一约束

        7)索引包含的字段不超过5个

        8)不适合创建索引的字段:性别、0/1、TRUE/FALSE

     10.sql查询注意点

    • 禁止在数据库做复杂运算

    • 禁止使用SELECT *

    • 禁止在索引列上使用函数或计算

    • 禁止使用游标

    • 禁止使用触发器

    • 禁止在查询里指定索引

    • 变量/参数/关联字段类型必须与字段类型一致

    • 参数化查询

    • 限制JOIN个数

    • 限制SQL语句长度及IN子句个数

    • 尽量避免大事务操作

    • 关闭影响的行计数信息返回

    • 除非必要SELECT语句都必须加上NOLOCK

    • 使用UNION ALL替换UNION

    • 查询大量数据使用分页或TOP

    • 递归查询层级限制

    • NOT EXISTS替代NOT IN

    • 临时表与表变量

    • 使用本地变量选择中庸执行计划

    • 尽量避免使用OR运算符

    • 增加事务异常处理机制

    • 输出列使用二段式命名格式

    原文:http://www.cnblogs.com/liyunhua/p/4534442.html 

    想法:关系型数据库不使用外键是有点奇怪,如果性能需要,是考虑不要使用外键的。

  • 相关阅读:
    微软 面试题
    SQL 公用表表达式(CTE)
    SQL 事务(Transaction)
    arch中pacman的使用
    arch中yaourt的安装和使用
    今天安装了arch,感觉不错,这速度可以
    纠结于arch+xfce还是xubuntu
    ubuntu 提速
    【转】linux下杀死进程
    【转】debian下的update-rc.d的使用
  • 原文地址:https://www.cnblogs.com/songjl/p/7567078.html
Copyright © 2020-2023  润新知