项目1:建立索引
1.基于reader表的部门字段创建一个名称为“IX_department”的非聚集索引。
create NONCLUSTERED index IX_department
on reader(部门)
2.基于book表的图书名称字段创建一个名为“IX_book_name”的唯一非聚集索引。
create UNIQUE NONCLUSTERED index IX_book_name
on book(图书名称)
项目2:查看、修改和使用索引,并验证索引的作用
1.查看reader表中索引的信息。
sp_helpindex reader
2.将索引“IX_book_name”更名为“IX_bname”。
sp_rename ‘book.IX_book_name’, ‘IX_bname’, ‘index’
3. 向book表中插入一条记录,记录内容为:B00006、大学英语、马小明、P001、第一版、24。执行插入操作后,检查是否插入成功,为什么?
insert book (图书编号,图书名称,作者,出版社编号,版次,价格)
values (‘B00006’,‘大学英语’,‘马小明’,‘P001’,‘第一版’,24)
4.删除索引“IX_department”。
drop index reader.IX_department
总结:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED ]
INDEX index_name ON
{ table | view } ( column [ ASC | DESC ] [ ,…n ] ) }
参数说明:
UNIQUE:用于指定创建唯一索引,即不允许存在索引值相同的两行。
CLUSTERED:用于指定创建的索引为聚集索引。
NONCLUSTERED:用于指定创建的索引为非聚集索引。
index_name:用于指定所创建的索引的名称。
table:用于指定创建索引的表的名称。
view:用于指定创建索引的视图的名称。
column:用于指定被索引的列。
ASC|DESC:用于指定具体某个索引列的升序或降序排序方向。
2:查看、修改和使用索引,并验证索引的作用
查看索引碎片信息
DBCC SHOWCONTIG (table_name, index_name)
使用系统存储过程查看索引信息
sp_helpindex [@objname =] ‘table_name’
参数说明:
[@objname =] ‘table_name’:指定当前数据库中表的名称。
删除索引
DROP INDEX ‘table.index | view.index’ [ ,…n ]
参数说明:
DROP INDEX:表明要删除的对象是索引。
table | view:用于指定被删除的索引所在的表或视图。
index_name:指定要删除索引的名称。
注意:DROP INDEX命令不能删除由CREATE TABLE或者ALTER TABLE命令创建的主键或者唯一性约束索引,既在对表建立主键或唯一性约束时自动建立的聚集索引或唯一非聚集索引;也不能删除系统表中的索引。