SQL Server-索引的创建和删除
发布网友
发布时间:2024-08-20 21:45
我来回答
共1个回答
热心网友
时间:2024-08-28 13:51
通过索引可以快速访问表中的记录,大大提高了数据库的查询性能。本篇介绍创建、更新、删除索引的方法。
索引
索引是对数据库表中一个或多个列的值进行排序的逻辑结构。每个索引都有一个特定的搜索码与表中的记录关联。索引按顺序存储搜索码的值。
使用索引能够快速访问表中的记录,提高查询速度。何时使用索引由SQL Server DMBS确定。
索引类型及特点
SQL Server有两种类型的索引:聚簇索引和非聚簇索引。
(1)聚簇索引
聚簇索引指示表中数据行按索引键的排序次序存储。在SQL Server中,如果该表上尚未创建聚簇索引,且在创建PRIMARY KEY约束时未指定非聚簇索引,系统会自动在此PRIMARY KEY键上创建聚簇索引。
聚簇索引的特点如下:
每个表只能有一个聚簇索引。聚簇索引改变数据的物理排序方式,使得数据行的物理顺序和索引中的键值顺序是一致的。所以,应该在创建任何非聚簇索引之前创建聚簇索引。
(2)非聚簇索引
非聚簇索引具有完全独立于数据行的结构。数据表中的数据行不按索引键的次序存储。在非聚簇索引中,每个索引都有指针指向包含该键值的数据行。
非聚簇索引的特点如下:
如果创建索引时没有指定索引类型,默认情况下为非聚簇索引。应当在创建非聚簇索引之前创建聚簇索引。每个表最多可以创建259个非聚簇索引。包含索引的所有长度固定列的最大大小为900B。包含在同一索引中的列的最大数目为16。最好在唯一值较多的列上创建非聚簇索引。
使用索引的准则
业务规则﹑数据特征和数据的使用决定了创建索引的列。一般情况下,应当在经常被查询的列上创建索引,以便提高查询速度。但索引将占用磁盘空间,并且降低添加、删除更新行的速度。
(1)创建查询的列
主关键字所在的列。外部关键字所在的列或在连接查询中经常使用的列。按关键字的范围值进行搜索的列。按关键字的排序顺序访问的列。
(2)不使用索引的列
在查询中很少涉及的列。包含较少的唯一值。更新性能比查询性能更重要的列。有text , ntext或image数据类型定义的列。
创建索引
1.交互式为表SC创建PRIMARY KEY ,则在此主键自动创建聚簇索引。
用表设计器打开数据库jxsk中的表SC,在SC表设计器中,右击,选择“索引/键”选项,打开“索引/键”对话框。此时窗口中内容为空,说明表SC中没有创建任何索引。单击“关闭”按钮,返回表设计器。
同时选中列SNO和列CNO,单击工具栏中的“?”按钮,即在SNO和CNO上创建了主键。
在SC表设计器中,右击,选择“索引/键”选项,打开“索引/键”对话框,查看列表中的信息:索引“列”是SNO(ASC)和CNO(ASC),当前的索引“名称”为PK_SC,“创建为聚集的”为“是”。此索引即是创建主键时,系统自动生成的聚簇索引。
2.用create语句为表T在TNO列上按降序创建聚簇索引IND_TNO
create clustered index IND_TNO on T(TNO desc)