索引和视图-PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《索引和视图-PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 索引 视图 PPT 课件
- 资源描述:
-
1、第第7章章 索引和视图索引和视图本章学习目标本章学习目标l掌握索引的创建、管理、维护和删除等操作 l掌握视图的创建、修改、使用和删除等操作 l学会使用视图查询、修改、更新和删除数据 7.1 索引索引1、索引基础知识、索引基础知识 索引的概念和作用 索引是对数据库表中一个或多个列(例如Student表的“学号”列)的值进行排序的结构。 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。 索引的分类 SQL Server 中的索引分为3类,分别是:聚集索引非聚集索引唯一索引 聚集索引聚集索引 聚集索引会对表和视图进行物理排序,所以这种索引对查询非常有效,在表和视图中只
2、能有一个聚集索引。当建立主键约束时,如果表中没有聚集索引,SQL Server 会用主键列作为聚集索引键。也可以手动在表的任何列或列的组合上建立索引,但在实际应用中,一般为定义成主键约束的列建立聚集索引。返回返回非聚集索引非聚集索引 非聚集索引不会对表和视图进行物理排序。如果表或视图中不存储聚集索引,则表或视图是未排序的。在表和视图中最多可以建立250个非聚集索引,或者249个非聚集索引和一个聚集索引。 返回返回唯一索引唯一索引 唯一索引确保索引键不包含重复的值,因此,表或视图中的每一行在某种程度上是唯一的。例如,如果在表中的“姓名”字段上创建了唯一索引,则以后输入的姓名将不能同名。返回返回2
3、、建立索引、建立索引 创建表或视图的索引的方法有两种:使用对象资源管理器和T-SQL语句。使用“对象资源管理器”创建索引 具体的方法请参考本书第7章使用使用“对象资源管理器对象资源管理器”创建索创建索引引使用使用“对象资源管理器对象资源管理器”创建索创建索引引使用使用“对象资源管理器对象资源管理器”创建索创建索引引使用T-SQL语句创建索引 T-SQL语句创建索引的基本语法如下:CREATE UNIQUECLUSTERED|NONCLUSTEREDINDEX index_name ON (columnASC|DESC,.n) INCLUDE(column_name,.n)WITH(,.n)属性
4、和参数说明:UNIQUE:建立唯一索引。CLUSTERED:建立聚集索引。NONCLUSTERED:建立非聚集索引。index_name:索引名称,索引名称在表或视图中必须唯一,但在数据库中不必唯一。object:表名或视图名。column:索引所基于的一列或多列。ASC|DESC:确定特定索引列的升序或降序排序方向。默认值为ASC(升序)。INCLUDE(column_name,.n):指定要添加到非聚集索引的叶级别的非键列。非聚集索引可以唯一,也可以不唯一。relational_index_option:索引属性。如DROP INDEX ix_Student表示先删除已经存在的索引,因为索
5、引名称不能重复,否则会出错。【例7.1】使用T-SQL语句在CJGL数据库中的Student表上创建名为IX_Student的唯一、聚集索引,该索引基于表中的“学号”列。T-SQL脚本语句如下:USE CJGLGOCREATE UNIQUE CLUSTEREDINDEX IX_StudentON Student(StuNo)GO 注意:注意:UNIQUE和CLUSTERED之间不能用“,”号“学号”列中不能有重复值关键字的大小写不影响结果只有表的所有者才能执行CREATE INDEX语句更多请参考本书第页3、管理索引、管理索引 管理索引的操作包括:显示索引信息重命名索引删除索引其他显示索引显示
6、索引 在索引创建完成后,可以查看索引的相关信息,包括查看索引的名称、类型、索引键列等。查看索引信息有两种方法:一种是用“对象资源管理器”进行显示;另一种是用T-SQL的相关语句进行显示。 使用“对象资源管理器”显示索引 在“对象资源管理器”中找到相应的表,展开“索引”前面的“+”号后,会列出已经存在的索引列表,可以用鼠标右键单击其中一个索引名称,在打开的快捷菜单中选择“属性”,即可弹出相应的“索引”属性窗口,进行查看相关索引的信息。 如下页图所示:使用T-SQL语句显示索引 使用T-SQL语句显示相关索引信息,实际是调用了系统自定义的存储过程sp_helpindex(存储过程的相关知识请参看本
7、书第9章的内容)。【例7.2】使用T-SQL语句显示CJGL数据库中Student表的索引信息。 在查询窗口中使用的T-SQL语句如下:USE CJGLGOEXEC sp_helpindex StudentGO 执行结果如图所示返回返回重命名索引重命名索引 重命名索引和显示索引信息一样,同样有两种方法:利用“对象资源管理器”和T-SQL命令。 使用“对象资源管理器”重命名索引 此种方法重命名索引比较简单,和重命名表名的操作一样。使用T-SQL语句重命名索引利用T-SQL命令重命名索引,同样也是调用了系统自定义的存储过程sp_rename。其基本语法如下:EXEC sp_rename table
8、.old_index,new_index参数说明:table.old_index:当前的索引名称。new_index:新的索引名称。【例7.3】用sp_rename存储过程重命名CJGL数据库中的Student表下的IX_Student索引为IX_new_Student。在查询窗口中输出以下T-SQL命令:USE CJGLGOEXEC sp_renamesp_renamestudent.IX_Studentstudent.IX_Student, ,IX_new_StudentIX_new_StudentGO返回返回删除索引删除索引删除索引同样有两种方法:利用“对象资源管理器”和T-SQL命令。
9、使用“对象资源管理器”重命名索引右键单击要删除的索引,在弹出的快捷菜单中执行“删除”命令,此时会弹出 “删除对象”窗口,单击窗口中的“确定”按钮即可删除此索引。 使用T-SQL语句删除索引 使用T-SQL命令的DROP INDEX语句删除索引的基本语法如下:DROP INDEX table_or_view_name.index_name,DROP INDEX table_or_view_name.index_name,nn属性和参数说明:table_or_view_name:表或视图名index_name:索引名n:删除多个索引【例7.5】删除CJGL数据库下的Student表中的名为IX_n
10、ew_Student的索引。 在查询窗口中输入如下T-SQL语句: USE CJGL GO DROP INDEX Student.IX_new_Student Go返回返回3、索引分析和维护、索引分析和维护索引分析 SQL Server 提供了分析索引和查询性能的方法,这里只介绍常用的两种命令:SHOWPLAN_ALLSTATISTICS IOSHOWPLAN_ALLSHOWPLAN_ALL命令命令 SQL Server将显示在执行查询的过程中连接表时所采取的每个步骤,以及是否选择和选择了哪个索引,从而达到帮助用户分析有哪些索引被系统采用的目的。 SHOWPLAN_ALL的基本语法如下:SET
11、 SHOWPLAN_ALLON|OFF【例7.6】在CJGL数据库中的Student表中查询姓为“王”的所有学生信息,并且分析哪些索引被采用。 在本例中,假设已经创建了三个索引,一个是基于“学号”PRIMARY KEY约束的索引“PK_Student”,一个是基于“性别”的名为“IX_SSex_Student”的索引,一个是基于“姓名”的名为“IX_SName_Student”的索引。 在查询窗口中输入如下命令,并查看结果。 USE CJGL GO SET SHOWPLAN_ALL ON GO SELECT * FROM Student WHERE 姓名 LIKE 王% GO SET SHOW
12、PLAN_ALL OFF GO执行结果和索引的使用情况如下图所示执行结果分析: 在执行语句SHOWPLAN_ALL后,能发现在建立的三个索引中,只有基于“学号”PRIMARY KEY约束的索引“PK_Student”被调用(图中红框),而其余两个并未出现,则说明其余的两个索引在这里是毫无用处的。索引维护 判断索引是否需要维护的标准是索引碎片的大小。数据库上进行很多次的插入、更新和删除操作,久而久之就会使数据变得杂乱无序,造成索引碎片,从而造成性能的下降。 可以通过DBCC SHOWCONTIG命令来扫描表,同其返回值来确定该索引页的碎片是否严重。 DBCC SHOWCONTIG语句的基本语法是
展开阅读全文