索引笔记


1.什么是索引?

    索引是以表列为基础的数据库对象,保存着表中排序的索引列,并且记录了索引列在表中的物理存储位置,实现了表中数据的逻辑排序。

2.索引的用途?

    1)加快数据的查询速度,减少系统的响应时间。

    2)加快表和表之间的连接速度。

3.使用索引的代价?

    1)一定的物理空间开销。

    2)创建和维护需要消耗时间,增删改操作时,索引会进行维护。

4.索引使用的原则?

    1)设为主键的列一定要设置为索引,可以加快主键的定位速度。

    2)定义有外键的列一定要设为索引,可以加快表之间的连接速度。

    3)对于经常查询的列最好建立索引,可以明显加快查询的速度。

    4)对于数据重复严重的列,查询很少涉及的列,不要建立索引。

    5)对于text,image,bit类型的列不要建立索引,这些列要不很大要不太小。

5.索引分类?

    索引主要分成三类,聚集索引,非聚集索引,唯一索引。

    1)聚集索引:只会对表和视图进行物理排序。一个表或者视图只能有一个聚集索引,一般为主键列。

    2)非聚集索引:不会对表和视图进行物理排序,表或者视图最多只能有250个非聚集索引。

    3)唯一索引:不允许索引有重复的索引值,

6.索引的建立和删除。

    1)索引的建立: create  unique [clustered]  index  ix_bookid on book (bookid Asc)

    注意事项:可以为聚集和非聚集索引建立unique索引。

    2)索引是删除:drop index book.ix_bookid

    注意事项:无法删除unique和primary key 约束的索引,除非先删除这些约束。

7.索引的相关操作?

    1)显示索引信息:exec sp_helpindex  students

    2)重命名索引: exec sp_rename students.ix_bookid,students.ix_id

    3)分析索引:主要采用两种方式,查看查询计划,和查询磁盘读取次数。

    4)索引的维护:主要采用

        1,统计信息更新 update statistics students lx_id

        2,dbcc showcontig(students,ix_id)扫描表

        3,使用dbcc indexdefrag(stu,students,ix_id)进行碎片整理。

    

posted @ 2012-01-04 17:19  李福春  阅读(304)  评论(0编辑  收藏  举报