单元8 实现索引

单元8 实现索引

ID:20031333

大小:358.00 KB

页数:24页

时间:2018-10-09

单元8 实现索引_第1页
单元8 实现索引_第2页
单元8 实现索引_第3页
单元8 实现索引_第4页
单元8 实现索引_第5页
资源描述:

《单元8 实现索引》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单元8实现索引济宁职业技术学院数据库课程组大型数据库学习目标【知识目标】理解索引的作用。了解索引的种类和使用方法。熟练掌握创建索引的方法。掌握重新命名索引、删除索引的方法。掌握索引分析与维护的方法。【技能目标】会根据需要创建索引。会重新命名索引。会删除索引。会分析与维护索引。2任务陈述学生选课数据库中的课程表、学生表、学生选课表、班级表和系部表,在需要时可查看这些表中的数据。在用户查看这些表的数据时,提出希望提高查询数据的速度。3索引问题提出:需要按照学号、姓名查询数据,并且希望提高查询的速度。【分析】StuNo是S

2、tudent表的主键列,StuNo值惟一;StuName为非主键列,因会有重名所以值不惟一。如果提高查询学号,4索引索引(INDEX):是对数据库表中一个列或多个列的值(称为索引值)进行排序的结构。一个表可以创建多个索引。检索数据时,通过相应索引的索引值所指向的表中的数据行,能快速查找到所需要的数据。如果索引不当,会加大更新数据的成本。索引的不同分类:聚集索引和非聚集索引主键索引和非主键索引惟一索引和非惟一索引单列索引和复合索引5索引聚集(CLUSTERED)索引:数据行的物理存储顺序与索引顺序完全相同。每个表只能有

3、一个聚集索引。非聚集(NONCLUSTERED)索引:不改变表中数据行的物理存储数序。它建立一个逻辑表,记录索引值在表中的实际存储位置。一个表上最多可以建立249个非聚集索引。创建索引时如果没给出CLUSTERED或NONCLUSTERED,则默认创建非聚集索引。6索引主键索引:默认情况下,创建主键约束时自动创建基于主键的聚集索引。在创建聚集索引时,可以指定填充因子(默认值为0),以便在索引页上保留一定百分比的空间,减少发生索引页拆分的情况。非主键索引:在非主键的属性列上创建的索引,一般都是非聚集索引。7索引惟一(U

4、NIQUE)索引:索引列值不会出现重复值。在创建主键约束或惟一约束时,会自动为这些约束创建惟一索引;也可以在创建索引时使用UNIQUE选项。非惟一索引:索引列值不惟一。单列索引:基于表中单列创建的索引。复合索引:基于表中多个列所创建的索引。应先定义最可能具有惟一性的属性列。8何时使用索引如果已经创建了两个索引:一个是基于StuNo列的索引(聚集),另一个是基于StuName列的索引,何时使用这些索引?查询时SQLServer会自动选择与查询相匹配的索引。执行如下查询语句时,可能会使用基于StuNo列的索引:SELEC

5、T*FROMStudentWHEREStuNo='00000001'执行如下查询语句时,可能会使用基于StuName的索引:SELECT*FROMStudentWHEREStuName='林斌'9如何提高系统性能为了提高系统的性能,可将索引创建在与数据文件、日志文件不同的存储设备上。10创建索引创建索引,方法:使用ManagementStudio创建索引使用CREATEINDEX语句CREATE[UNIQUE][CLUSTERED

6、NONCLUSTERED]INDEXindex_nameONtable_name(co

7、lumn_name,…..)11创建索引【问题8.1】用户需要按照学生姓名查询信息,希望提高其查询速度。该题在Student表上创建基于StuName列、名为IX_StuName的索引。【问题8.2】使用Transcact-SQL语句。用户需要按照课程名查询信息,希望提高查询速度。该题在Student表上创建基于StuNo列、名为IX_StuNo的索引12复合索引在(列1,列2)上创建的复合索引与在(列2,列1)上创建的复合索引是不同的。查询数据时,只有在WHERE子句中使用了复合索引的第1个列时才会使用所创建的复合

8、索引。复合索引中列的顺序很重要:在次序上首先定义最具惟一性的列。13重命名索引重命名索引:EXECSP_RENAME‘table_name.old_index_name’,’new_index_name’【问题8.3】使用Transcact-SQL语句。将Student表的IX_StuName索引重新命名为IX_StuNameNew。【为保证本书的连贯性,重新命名后请按原样恢复】14删除索引使用ManagementStudio使用SQL语句:DROPINDEXtable_name.index_name【问题8.4】使

9、用SQLServerManagementStudio删除Student表上名为IX_StuName的索引。【为保证本书的连贯性,删除后请按原样恢复】【问题8.5】使用Transcact-SQL语句删除Course表上名为IX_CouName的索引。思考:可以删除Student表的聚集索引吗?15注意事项创建非聚集索引之前需要先创建聚集索引。不能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。