索引---最直接的切入点(MSSQL个人笔记之数据库优化之路一)(二)

2014-11-24 17:08:34 · 作者: · 浏览: 1
r(20))='scott';
4.组合索引的顺序很重要
在组合查询中多个条件查询只有在组合索引的第一列索引查会使用 例如:
有一个组合索引
[sql]
create index id_name_fsex_index on test(name,sex,id)
select name from test where name='mrzhou' and sex='男'
这样才会有索引的使用
如果
[sql]
create index id_name_sex_index on test(id,name,sex)
www.2cto.com
则复合索引就不会被使用。也就是说在使用复合索引的时候 要想在多条件查询走索引的话,要根据查询的条件设置索引的顺序。第一个索引列要是经常使用的。否则是不会被使用的。
5.where子句使用in关键字的情况
select * from Consume where cardno in ('3322','2323') 可以使用到cardno上的索引
而如果跟上子查询就会导致无法使用索引 如
select * from consume where cardno in (select cardno from creditcard where maxconsume>3000);
重新组织和生成索引
数据库中的数据经常发生变化,当插入修改删除数据的时候
数据库
引擎会自动对索引维护, 久而久之这些修改会导致索引分散在数据库中,形成碎片。
[sql]
select * from sys.dm_db_index_operational_stats(DB_ID(),OBJECT_ID(N'ceshi.tb'),null,null);
查询数据库ceshi 中tb表所有的索引统计信息
重新组织索引
1》索引 右键-》 重新组织
2》
[sql]
use ceshi
go
alter index Clus_uniq_index_id on tb reorganize;
go www.2cto.com
重新生成索引
1》索引 右键-》 重新生成索引
2》
[sql]
use ceshi
go
alter index Clus_uniq_index_id on tb rebuild;
go
作者 szstephenzhou