首页>>数据库>>SQLServer数据库索引含义,优缺点及创建,删除语法
SQLServer数据库索引含义,优缺点及创建,删除语法
来源: 易习特达网 www.easytd.com 时间: 2015-01-13 10:47:36

索引的含义

索引是对数据库表中一个或多个列的值进行排序的结构

索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针

索引优缺点:

优点

    加快访问速度

    加强行的唯一性

缺点

    带索引的表在数据库中需要更多的存储空间。

    操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新。

    表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引

    非聚集索引指定表的逻辑顺序。

索引语法及例子:

我们可以利用存储过程察看索引例如:

例:查看表orders的索引:

exec sp_helpindex orders

还可以修改索引名称

例:更改orders表中的索引orders_quan名称为orders_quantity:

exec sp_rename'orders.[orders_quan]','orders_quantity',' index'

创建和删除索引

一般语法如下:

CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]

INDEX index_name ON {table | view } column [ ASC | DESC ] [,...n])

[WITH

[PAD_INDEX]

[ [, ] FILLFACTOR = fillfactor]

[ [, ] IGNORE_DUP_KEY]

[ [, ] DROP_EXISTING]

[ [, ] STATISTICS_NORECOMPUTE]

[ [, ] SORT_IN_TEMPDB ]

]

[ON filegroup]

例如:

为表products创建一个聚集索引:

create unique clustered index pk_p_id

on products(p_id)

with

pad_index,

fillfactor = 10,

ignore_dup_key,

drop_existing,

statistics_norecompute

on [primary]

例:为表products创建一个复合索引:

create index pk_p_main

on products(p_id, p_name, sumvalue) --其中sumvalue 是一个计算列表达式为price*quantity

with

pad_index,

fillfactor = 50

on [primary]

例:创建一个视图并为它建一个索引:

create view dbo.work_years with schemabinding

as select top 100 percent emp_id,e_name, birthday, hire_date, year(getdate())

- year(hire_date) as work_years

from dbo.employee

order by work_years desc

删除索引:

DROP INDEX命令可以删除一个或多个当前数据库中的索引其语法如下:

DROP INDEX 'tablename.indexname' [,...n]

DROP INDEX命令不能删除由CREATE TABLE或ALTER TABLE命令创建的PRIMARY KEY或UNIQUE约束索引也不能删除系统表中的索引。

例:删除表products中的索引p_quantity

Drop index products1.p_quantity

本页地址:http://www.easytd.com/shujuku/d_15011310224.html

上一篇:MySQL数据库日期,时间函数相加减 下一篇:T/SQL语句代码块查询出中文日期并写入数据库表中