关于 索引 的简单整理

分类:

聚集索引(CLUSTERED) 和非聚集索引( NONCLUSTERED) 语法上还分唯一(UNIQUE)索引和非唯一(复合)索引

建立/ 查看/删除/改名  索引:

一般的 在主键约束下 都会为主表构建唯一的聚集索引(物理排序 速度快 占空间),而要增加索引时要注意
新增的索引必须是经常查询有用的字段 例如经常以名字Name字段 查询,则创建一个不唯一的 非聚集索引 更为合理

例:
// 建立
//
USe   DB_Name
go
create   [ Unique ]   [ Clustered / nonClusterd  ]
index  ix_Name  on  Table_Name
go


// 删除
//
Drop   index  Table_Name.ix_Name


// 查看表的所有索引
//
EXEC  sp_helpIndex Table_name

// 改索引名
//
EXEC  sp_rename  ' Table_name.IX_OldName ' , ' IX.NewName '

分析:

用ShowPlan_all命令分析查询语句引用的索引


Use   DB_name
go
set  ShowPlan_All  ON
go  
select   *   from  Table_name  where  Name = ' LALA '
go
SET  ShowPlan_All  OFF
go

 用 Statistics IO 命令查看数据索引花费的磁盘活动量 显示SQLserver的 IO占用信息

同上用法 Set Stajtistics ON | OFF

维护:
通过数据库属性页钩好自动更形统计信息选项来让系统自动更新选项信息,也可手动Update Statistics,

Use   DB_name
go
update   STATISTICS  Table_name IX_Name
go

来更新指定索引的统计信息。

也可通过 DBCC ShowConfig 语句获取数据库的表索引的碎片信息而进一步用 DBCC IndexDefrag整理碎片

Use   DB_Name
go
DBCC  ShowConfig (Table_Name,Ix_Name)
go

=====

DBCC  IndexDeFrag ( DB_Name ,Table_Name,IX_Name)
go


PS:应避免频繁的进行索引统计更新 在数据库操作比较频繁时更应避免


 

你可能感兴趣的:(索引)