继吉 发表于 2016-11-1 08:26:26

索引及其用途--SQL Server 2005

六.索引及其用途
 
1.索引是以表列为基础的数据库对象,它保存着表中排序的索引列。
 
2.其主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。
 
3.创建索引与维护索引都会浪费时间,对表中的数据进行增加,删除和修改操作时,索引就要进行维护,否则索引的作用就会下降;另外索引也会占用一定的物理空间,如果占用的物理空间过多,就会影响到整个数据库SQL Server系统的性能。
 
4.建立索引的原则:
 
(1)定义主键的数据列一定要建立索引。

(2)定义有外键的数据列一定要建立索引。

(3)对于经常查询的数据列最好建立索引。

      A、对于需要在指定范围内的快速或频繁查询的数据列;
  B、经常用在WHERE子句中的数据列。

(4)对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。

(5)对于定义为text、image和bit的数据类型的列不要建立索引。
 
5.索引的分类:

(1)聚集索引:聚集索引会对表和视图进行物理排序。
(2)非聚集索引:不对表和视图进行物理排序,最多可建立250个非聚集索引,或者249个非聚集索引与1个聚集索引。
(3)唯一索引:唯一索引不允许两行具有相同的索引值。
 
6.创建索引的语法:
CREATE 
INDEX index_name
ON {table_name | view_name}
]
说明:
UNIQUE: 建立唯一索引。
CLUSTERED: 建立聚集索引。
NONCLUSTERED: 建立非聚集索引。
Index_property: 索引属性。
UNIQUE索引既可以采用聚集索引结构,也可以采用非聚集索引的结构,如果不指明采用的索引结构,则SQL Server系统默认为采用非聚集索引结构。
 
7.删除索引语法:
DROP INDEX table_name.index_name[,table_name.index_name]
说明:table_name: 索引所在的表名称。
     index_name :  要删除的索引名称。
 
    8.显示索引信息:
 
    使用系统存储过程:sp_helpindex 查看指定表的索引信息。
 
    执行代码如下:
    Exec sp_helpindex book1;
 
    9.重命名索引
    语法:
    Exce sp_rename table_name.old_index_name, new_index_name
 
    10.显示查询计划的命令为:
    SET SHOWPALN_ALL ON | OFF 或 SET SHOWPLAN_TEXT ON | OFF
    说明:帮助用户分析有哪些索引被系统采用。
 
    例子:
    USE book
    GO
    SET SHOWPLAN_ALL ON
    GO
    SELECT * FROM book1 WHERE 编号='YBZT2406'
    GO
    SET SHOWPLAN_ALL OFF
    GO 
    说明:在Set showplan命令与select 命令之间一定要有 go语句。
 
   11.设置是否显示磁盘IO统计的命令为:
   SET STATISTICS IO ON | OFF
 
   12.索引的维护
   更新索引的语法:
   UPDATE STATISTICS table_name index_name
 
   使用DBCC SHOWCONTIG 语句扫描表语法:
   DBCC SHOWCONTIG (table_name, index_name)
 
   使用DBCC INDEXDEFRAG语句进行碎片整理语法:
   DBCC SHOWDEFRAG(database_name,table_name,index_name)
 
页: [1]
查看完整版本: 索引及其用途--SQL Server 2005