版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块六使用索引任务描述知识要点返回任务描述索引是数据库中重要的对象之一,它类似于图书的目录。索引允许数据库应用程序迅速找到表中特定的数据,而不用扫描表中全部的数据。在数据库中,使用索引可以很大程度上提高数据的查询效率,减少查询数据的时间,改善数据库的性能。索引是数据库中一个重要的对象,本模块将详细介绍索引的基本概念、使用索引的意义及索引的操作。任务1创建索引方法一:使用SQLServerManagementStudio创建索引下一页返回任务描述在“ebook”数据库中,为“Book”表创建基于“bookName”列的非聚集索引book_name_index。具体操作步骤如下:①启动SQLServerManagementStudio,在“对象资源管理器”窗口中依次展开“数据库”、“ebook”、“表”、“Book”节点。这时,如果展开“索引”节点,将看到表中存在的索引。由于“Book”表设置了主键,所以存在一个聚集索引pk_bookId,如图6.1所示。上一页下一页返回任务描述②右击“索引”节点,在弹出的如图6.2所示的快捷菜单中单击“新建索引”命令,打开如图6.3所示的“新建索引”对话框,默认进入“常规”页面。③根据任务描述,在“索引名称”对应的文本框中输入索引名称“book_name_index”,从“索引类型”对应的下拉列表框中选择索引类型为“非聚集”。④单击“添加”按钮,弹出如图6.4所示的“选择索引列”的对话框,从中选择要添加到索引键的表列。在此,选择“bookName”列,单击“确定”按钮,返回到“新建索引”对话框。上一页下一页返回任务描述⑤如果需要设置其他选项,可以单击“新建索引”对话框左上角的“选项”,进入“选项”界面,如图6.5所示。在此界面,可以根据实际需要,勾选相应的选项。⑥设置完成后,单击“确定”按钮,完成索引的创建,如图6.6所示。方法二:使用T-SQL语句创建索引在网上书店ebook数据库中,为“Book”表创建基于“出版社”列的非聚集索引book_publisher_index,代码如下:上一页下一页返回任务描述运行结果如图6.7所示。在“ebook”数据库中,为“Book”表创建基于“isbn”列的唯一、非聚集索引book_isbn_index,代码如下:运行结果如图6.8所示。提示:用户在创建和使用索引时,应注意以下事项。上一页下一页返回任务描述•必须是表的所有者才能执行CREATEINDEX语句来创建索引。•唯一索引既可以采用聚集索引的结构,也可以采用非聚集索引的结构。如果不指明CLUSTERED选项,则SQLServer默认为唯一索引,采用非聚集索引的结构。•如果表中已有数据,那么在创建唯一索引时,SQLServer将自动检验是否存在重复的值。若存在重复值,则唯一索引创建失败。•具有相同组合列、不同组合顺序的复合索引是不同的。上一页下一页返回任务描述•在建立唯一索引的表上插入、更新数据时,SQLServer将自动检验新的数据中是否存在重复值,如果存在,则SQLServer在第一个重复值处取消语句并返回错误信息。任务2重命名索引建立索引后,索引的名称也是可以更改的。重命名索引的方法有两种:使用SQLServerManagementStudio或者系统存储过程。方法一:使用SQLServerManagementStudio更改索引名称上一页下一页返回任务描述将“ebook”数据库中“Book”表的book_isbn_index索引名称更改为isbn_in⁃dex。①启动SQLServerManagementStudio,在“对象资源管理器”窗口中依次展开“数据库”、“ebook”、“Book”表、“索引”节点。②右击要修改名称的索引,在弹出的快捷菜单中选择“重命名”命令,索引名变为可修改状态,输入新的索引名,按回车键完成对索引的更名,如图6.9和图6.10所示。方法二:使用T-SQL语句更改索引名称上一页下一页返回任务描述在“ebook”数据库中,将“Book”表基于“bookName”列的索引book_name_in⁃dex,更名为bookName_index,代码如下:EXECsp_rename′Bookbook_name_index′,′bookName_index′运行结果如图6.11所示。任务3删除索引方法一:使用SQLServerManagementStudio删除索引上一页下一页返回任务描述删除“ebook”数据库中“Book”表的索引isbn_index。具体操作步骤如下:①启动SQLServerManagementStudio,在“对象资源管理器”窗口中依次展开“数据库”、“ebook”、“Book”表、“索引”节点。②右击要删除的索引,在弹出的快捷菜单中执行“删除”命令,打开“删除对象”对话框。在“删除对象”对话框中单击“确定”按钮,即可删除选定的索引,如图6.12所示。上一页下一页返回任务描述方法二:使用T-SQL语句删除索引①在“ebook”数据库中,删除“Book”表基于“publisher”列的索引book_publisher_index,代码如下:运行结果如图6.13所示。提示:使用DROPINDEX命令删除表中的索引时,需要注意如下事项:•不能用DROPINDEX删除由主键约束或唯一约束创建的索引,要删除这些索引,必须先删除主键约束或者唯一约束。上一页下一页返回任务描述•在删除聚集索引时,表中的所有非聚集索引都将被重建。②在“ebook”数据库中,删除“Book”表基于“bookId”列的索引pk_bookId,代码如下:DROPINDEXBook.pk_bookId运行结果如图6.14所示。从中可以看出,由于pk_bookId索引为主键约束创建的索引,所以必须删除主键约束,才可以删除此索引。任务4分析索引SQLServer提供了多种分析索引和查询性能的方法,常用的有SHOWPLAN和STATISTICSIO语句。上一页下一页返回任务描述1.显示查询执行信息在“ebook”数据库中的“Book”表上查询isbn为9787302262220的图书信息,并显示查询处理过程,分析哪些索引被系统采用,代码如下:上一页下一页返回任务描述运行结果如图6.15所示。从中可以看出,该查询使用了uk_isbn索引。2.显示磁盘活动量信息在“ebook”数据库中的“Book”表上查询出版社为清华大学出版社的图书信息,并分析执行数据查询所花费的磁盘活动量信息,代码如下:运行结果如图6.16所示。在执行结果界面中选择“消息”选项卡查看结果。上一页返回知识要点一、索引的概念索引(Index)是以表的字段列为基础而建立的一种数据库对象,是一种实现数据快速定位与加快数据访问速度的技术手段。索引通过存储排序的索引关键字与表记录的物理空间位置,建立了索引数据与物理数据间的映射关系,从而实现了表记录的逻辑排序。索引是与表(或视图)关联的页的集合,用于加速从表中检索或者用于强制实施的唯一性。二、索引的作用索引是数据库随机检索的常用手段,它实际上就是记录的关键字与其相应地址的对应表。通过索引可大大提高查询速度。下一页返回知识要点对于拥有复杂结构与大量数据的基本表而言,索引的作用与意义就如同目录对一本内容丰富而结构宏大的著作一样。在某种意义上,索引就是数据表的目录。使用索引可以大大提高系统的性能,其具体表现在:①通过创建唯一索引,可以保证数据记录的唯一性。②可以大大加快数据检索速度。③可以加速表与表之间的连接。④在使用ORDERBY和GROUPBY子句进行检索数据时,可以显著减少查询中分组和排序的时间。上一页下一页返回知识要点三、索引的数据结构索引本身就是记录源数据部分列码值与源数据记录行之间映射关系的物理表,这类表只包含索引关键字与地址指针两类数据域。索引关键字域的内容为基表或源视图中的一个字段列的码值,或为多个字段列组合而成的码值。地址指针域存放着指向数据所在物理页的位置与行位置的指针。四、索引的分类在SQLServer数据库中,根据索引存储结构的不同,将其分成两类:聚集索引(CLUS⁃TEREDINDEX)和非聚集索引(NONCLUSTEREDINDEX)。上一页下一页返回知识要点(1)聚集索引聚集索引是指表中数据行的物理存储顺序与索引列顺序完全相同。当在一个表的某列创建聚集索引时,表中的数据会根据索引列的顺序进行重新排序,再存储到磁盘上。因此,每个表只能创建一个聚集索引。聚集索引一般创建在表中经常搜索的列或按顺序访问的列上。因为聚集索引对表中的数据进行了排序,当使用聚集索引找到包含的第一个值后,其他连续的值就在附近了。除个别表外,数据表都应该创建聚集索引,以提高数据的查询功能。默认情况下,SQLServer为主键约束自动创建聚集索引。上一页下一页返回知识要点可以在表或视图的任何列或列的组合上创建索引,在实际开发中,一般在定义主键的列上建立聚集索引,即数据行按照主键列值物理排序。(2)非聚集索引非聚集索引不会对表和视图按照索引列值进行物理排序。如果表中没有建立聚集索引,则表中的数据行实际上是按照输入数据时的顺序排序的。非聚集索引对索引列进行逻辑排序,并能保存索引列的逻辑排序位置。在表或视图中,最多可以建立249个非聚集索引和一个聚集索引。上一页下一页返回知识要点五、索引的工作机制当进行数据检索时,系统先搜索索引文件,从中找到所需数据的位置指针,再通过指针直接从相应的数据页面中读取并加载相关数据。索引是基本表的目录,可以对一个基本表建立多个不同的索引,以提供不同的存取路径,如图6.17所示。六、使用索引的代价使用索引可以提高系统的性能,大大加快数据检索的速度,那么是不是可以为表中的每一列都建立索引呢?为每一列都建立索引是不明智的,因为使用索引要付出一定的代价。上一页下一页返回知识要点•索引需要占用数据表以外的物理存储空间;•创建索引和维护索引要花费一定的时间;•当对表进行更新操作时,索引需要被重建,降低了数据的维护速度。七、创建索引SQLServer在创建主键约束或唯一约束时,自动创建唯一索引,以强制实施PRIMARYKEY和UNIQUE约束的唯一性要求。如果需要创建不依赖于约束的索引,可以使用SQLServerManagementStudio或T-SQL语句创建索引。上一页下一页返回知识要点创建索引时要注意以下几点:•只有表或者视图的所有者才能创建索引。•在创建聚集索引时,会对表进行复制,对表中的数据进行排序,然后删除原始的表。因此数据库必须有足够的空闲空间来容纳数据库副本。•在使用CREATEINDEX语句创建索引时,必须指定索引名称、表及索引所应用的列的名称。•默认情况下,创建的索引是非聚集索引。•复合索引的列的最大数目为16。上一页下一页返回知识要点八、删除索引使用索引虽然可以提高查询效率,但是对一个表来说,如果索引过多,在修改表中记录时会增加服务器维护索引的时间。因此,当不再需要某个索引的时候,应该把它从数据库中删除。对于通过主键(PRIMARYKEY)约束和唯一(UNIQUE)约束自动创建的索引,可以通过删除约束的方法删除索引。对于用户创建的其他索引,可以使用SQLServerManage⁃mentStudio或者T-SQL语句删除。九、有关索引的T-SQL语句语法格式1.使用T-SQL语句创建索引上一页下一页返回知识要点创建索引的T-SQL语句格式如下:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameON{table_name|view_name}(column_name[ASC|DESC][,……n])[WITH[index_property[,……n]]上一页下一页返回知识要点参数说明如下:•UNIQUE表示建立唯一索引。•CLUSTERED表示建立聚集索引。•NONCLUSTERED表示建立非聚集索引,省略为非聚集索引。•index_name表示索引名称。•table_name表示索引所在的表名称。•view_name表示索引所在的视图名称。•column_name表示创建索引的列名称。•ASC|DESC表示按照升序或者降序排序。上一页下一页返回知识要点index_property:索引属性,如DROP_EXISTING表示先删除存在的索引。2.使用T-SQL语句更改索引名称可以使用系统存储过程sp_rename来更改索引的名称。其语法格式如下:EXECsp_renametable_name.old_index_name,new_index_name3.使用T-SQL语句删除索引可以使用T-SQL中的DROPINDEX命令删除表中的索引,其语法格式如下:上一页下一页返回知识要点DROPINDEXtable_name.index_name[,……
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026一年级下册语文爱护植物教育课件
- 甘肃省兰州五十一中2026届高三下化学试题第四次月考试卷解答含解析
- 2026一年级上册语文环保常识科普课件
- 安装环保设备合同模板(2篇)
- 时间管理办公场景指导书
- 供应商评估与选择模板全面评价
- 安全第一:防范校园意外事故的小学主题班会课件
- 贸易单证审核规范流程指南
- 建筑智能化系统集成设计指南
- 业务公开化运营承诺函7篇
- 2026年高考化学最后冲刺押题试卷及答案(共五套)
- 2025广西广投产业链服务集团有限公司招聘24人笔试历年参考题库附带答案详解
- 2025年广西继续教育公需科目考试试题和答案2025年公需科目考试试题及答案
- 2026版考评员国家职业技能鉴定考试题库(附答案)
- 2026年云南昆明市中考生物试题及答案
- 2026年企业税务合规协议合同
- 2025年广东省公务员考试行测试卷真题附答案详解(完整版)
- 快递站点客服承包合同模板
- 生猪屠宰场安全生产培训课件
- 牛肝菌种植技术培训课件
- (独家!)公安建设发展“十五五”规划
评论
0/150
提交评论