SQL SERVER规范、索引创建

索引

定义:

索引是一个单独的,存储在磁盘上的数据结构,它们包含则对数据表里所有记录的引用指针,使用索引用于快速找出在某个或多个列中有某一特定值的行,对相关列使用索引是降低查询操作时间的最佳途径。索引包含由表或视图中的一列或多列生成的键。

索引的优点主要有以下几条:

(1).通过创建唯一索引,可以保证数据库表的每一行数据的唯一性。

(2).可以大大加快数据的查询速度,这也是创建索引的最主要的原因。

(3).实现数据的参照完整性,可以速表和表之间的连接。

(4).在使用分组和排序子句进行查询时,也可以显著减少查询中分组和排序的时间。

索引不利的一面:

(1).创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加。

(2).索引需要占磁盘空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果有大量的索引,索引文件可能比数据文件更快达到做大文件尺寸。

(3).当对表中的数据进行增加,删除和修改的时候,索引也要动态地维护,这样就就降低了数据的维护速度。

创建索引:create[unique] index idxname on tabname(col….) include(col.)

删除索引:drop index idxname

表设计注意要点:

1.字符类型建议采用varchar/nvarchar数据类型

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

3.科学计数建议采用numeric数据类型

4.自增长标识建议采用bigint数据类型  

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

6.每张表必须有主键

7.不允许使用外键,数据完整性由程序控制

8.新加的表,所有字段禁止NULL

9.旧表新加字段,需要允许为NULL

 

SQL SERVER 规范

禁止在数据库做复杂运算

禁止使用SELECT *

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

尽量少使用游标

禁止使用触发器

禁止在查询里指定索引

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

限制JOIN个数

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

尽量避免大事务操作

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

使用UNION ALL替换UNION

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

NOT EXISTS替代NOT IN

尽量避免使用OR运算符

增加事务异常处理机制

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

 

限制JOIN个数

 

单个SQL语句的表JOIN个数不能超过5

过多的JOIN个数会导致查询分析器走错执行计划

过多JOIN在编译执行计划时消耗很大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值