Sql Server 2005 索引
只有建立在表上的索引。一个表的存储由两部分组成的:一部分用来存放表的数据页面,另一部分存放索引页面。
?
在表中插入或更新表中数据时,将有额外的操作来维护索引,那如果没有在表中建立索引的时候,如果向表中插入数据时,只需向数据表插入即可,即维护一张表就OK了,那现在建立了索引,当你在向表中插入记录里,系统还向更改索引表的内容,即多维护一张表。
?
1.一个表只能有一个聚集索引 ,只能有一个,也可以不建。
2.创建非聚集索引之前要先创建聚集索引
3.关键值的唯一性使用unique来维护
聚集索引是和表的物理顺序是一致的,所以速度要快,但非聚集索引就不是了,它是和表的物理顺序是无关的,所以速度要慢。
可以使用存储过程sp_helpindex来查看表的所有索引信息
格式:Sp_helpindex ‘表名称’
索引选择:
在表中哪些列适宜建立索引呢?
适宜建立索引的列包括:主键字段,外键字段,要排序的列,要分组的列,以及WHERE子句中精确指定的列 (=)
Where name like ‘张%’?? 可搜索的。不需要整个表搜索
Where name like ‘%张%’? 不可搜索的。需要遍历整个表。
?
不适合建立索引的列:
列的类型是文本,图像或位
列的唯一性不强,如性别 (十万条)
列的范围太多,不能有效索引
CREATE INDEX index_nameON table_name (column_name)
?
Abstract from:
http://dufei.blog.51cto.com/382644/80766/