zoukankan      html  css  js  c++  java
  • 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 

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

  • 相关阅读:
    d
    今天刚注册,测试下
    关于Hadoop的简单介绍
    leveldb 阅读笔记 (2) 简易测试框架
    leveldb 阅读笔记(1) 内存分配器 Arena
    数论
    伴随网站
    convenience website
    大佬独特的骗分技巧
    动态规划
  • 原文地址:https://www.cnblogs.com/songjl/p/7567078.html
Copyright © 2011-2022 走看看