zoukankan      html  css  js  c++  java
  • 索引笔记


    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)进行碎片整理。

        

  • 相关阅读:
    WM_CHAR消息分析
    数据库OleDbConnection对象参考
    数据库使用Command对象进行数据库查询
    如何在VBNET中使用调试输出类Debug和Trace
    数据库与数据库连接
    数据库ADONETOleDbDataReader对象参考
    VBNET运行时处理对象事件(AddHandler和RemoveHandler)
    防火墙分类简述(班门弄斧了)
    杀毒防护类软件的组合转帖
    数据库ADONETOleDbCommand对象参考
  • 原文地址:https://www.cnblogs.com/snidget/p/2312276.html
Copyright © 2011-2022 走看看