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
想法:关系型数据库不使用外键是有点奇怪,如果性能需要,是考虑不要使用外键的。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号