sql-索引

索引

1、 索引是SQL Server 使用的一种内部表结构,它是基于表中一个或多个列的值,提供对表中行的快速存取。

2、 使用索引的优点

1) 提高执行查询的速度。

2) 实施数据唯一性。

3) 加速了表之间的链接。

3、 使用索引的缺点

1) 创建索引需要花费时间。

2) 需要大量磁盘空间来存储数据和原先的数据源(表)。

3) 每次修改数据时索引都需要更新。

4、 索引的种类

1) 族索引 Clustered Index

2) 非族索引

   4.1 族索引

              在族索引中:

a) 数据被物理的排序。

b) 每个表只可创建一个族索引。

   4.2 非族索引

              在非族索引中:

                行的物理顺序不同于索引的顺序。

注意:

a) 非族索引一般在用于连接和where子句的列上创建,且它的值可能被经常地修改。

b) 当给出create index命令时,sql server 缺省地创建非族索引。

c)  每个表可多达249个非族索引。

d) 族索引应在非族索引之前被创建。(族索引改变行的顺序)

5、 索引和堆结构

Sql server 支持定义在表中任意列(包括已计算的列)上的索引。

如果表没有任何族索引,数据不以特定顺序存储。这种结构叫做堆。

6、 索引的特性

1) 索引加速了连接表的询问、执行排序和分组。

2) 索引可用来实施行的唯一性。

3) 索引对数据大多数是唯一的列很有用。

4) 当你修改索引列的数据时,相关索引会被自动更新。

5) 你需要时间和资源来维护索引。你不应该创建不被经常性使用的索引。

7、 语法

7.1 create index

CREATE [UNIQUE]  [CLUSTERED |NONCLUSTERED]

INDEX  index_name

ON table_name(column_name[,column_name]…)

   7.2 drop index

              DROP INDEX indexname

              ON table.column

8、 索引选择

需要进行详细的询问分析,以确定询问过程中会涉及到哪个索引。这涉及到

1) 考察确定所引用列的查找子句。

2) 认识数据对于确定索引作用的重要性。

3) 以重要性的次序对询问进行排列

9、 索引使用准则

如果不是在一个有效查找的变元中或在至少与索引的第一列匹配的连接子句中包含列,那么SQLServer不能使用索引。

10、优化

1FillFactor 子句,通过在每次索引页面充满时而使发生的页面分割的数量的最小化,来提供系统性能。

2DBCC SHOWCONTIG 主要用于找出表或索引被大量分裂的原因。当在表上进行执行大量的插入和更新操作,通常就会发生表碎片。

3DBCC INDEXDEFRAG 命令用于对指定表或视图的族或2级索引进行碎片整理。

 

上述只是对索引的简单了解。详细内容请参考:SQLSERVER2005帮助文档。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值