“超市供销存系统”的数据库实施和管理任务六创建索引1.什么是索引汉语字典中的汉字按页存放,一般都有汉语拼音目录(索引)、偏旁部首目录等。我们可以根据拼音或偏旁部首,快速查找某个字词。IndexesUseKeyValuestoLocateData(根据索引键查找定位数据行)DataPages(数据页)…IndexPages(索引页)什么是索引2.索引分类数据表的物理顺序和索引表的顺序相同,一张表只能有一个聚簇索引。数据表的物理顺序和索引表的顺序不相同,索引表仅仅包含指向数据表的指针,每张表可以有多个。既可以采用聚簇索引的结构,又可以采用非聚簇索引的结构。不允许两行具有相同的索引值聚簇索引非聚簇索引唯一索引索引分类聚集索引(ClusteredIndex)聚集索引与数据混为一体;对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上;表的所有数据完全重新排列;一个表只能有一个聚集索引;SQLServer默认是在主键上建立聚集索引。非聚集索引(NonclusteredIndex)本索引与表的数据完全分离;无需将物理数据页中的数据按列排序,而是存储索引行;一个表最多可以建249个非聚集索引。3使用对象资源管理器创建索引例:在商品表的商品名称列上建一个非聚集索引,唯一,名叫aa.在SQLServerManagementStudio的“对象资源管理器”面板中,选择要创建索引的表选中“索引”选项右击,在弹出的快捷菜单中选择“新建索引”命令基本语句格式:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX索引名ON表名(列名[ASC|DESC])UNIQUECLUSTEREDNONCLUSTEREDASC|DESC创建唯一索引创建聚集索引创建非聚集索引创建排序方式,默认为升序(ASC)4.使用T-SQL语句创建索引索引创建索引列可以有两列或更多列组成,由两列或更多列组成的索引称作“复合索引”。SQLServer默认是在主键上建立聚集索引。创建唯一约束时自动创建唯一索引。5.管理索引查看索引信息[EXECUTE]SP_HELPINDEX表名删除索引1.在SQLServerManagementStudio“对象资源管理器”面板中删除索引删除索引2.使用Transact-SQL语句删除索引DROPINDEX表名.索引名DROPINDEX语句不适用于通过定义PRIMARYKEY或UNIQUE约束(通过使用CREATETABLE或ALTERTABLE语句的PRIMARYKEY或UNIQUE选项创建)创建的索引6.创建索引优缺点优点缺点加快数据检索速度唯一索引保证记录唯一性减少查询中分组和排序的时间加速表与表之间的连接占用存储空间花费时间7.创建索引的指导原则请按照下列标准选择建立索引的列。该列用于频繁搜索该列用于对数据进行排序请不要使用下面的列创建索引:列中仅包含几个不同的值。表中仅包含几行。为小型表创建索引可能不太划算,因为SQLServer在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长。