《SQL Server数据库应用开发技术》课件第八章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《SQL Server数据库应用开发技术》课件第八章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server数据库应用开发技术 SQL Server数据库应用开发技术课件第八章 SQL Server 数据库 应用 开发 技术 课件 第八
- 资源描述:
-
1、第第8 8章章 索引与视图索引与视图知识技能目标:知识技能目标:1理解索引的概念、索引种类和创建索引的优缺理解索引的概念、索引种类和创建索引的优缺点点2熟练掌握索引的创建和删除熟练掌握索引的创建和删除3理解视图的概念及使用视图的优缺点理解视图的概念及使用视图的优缺点4熟练掌握视图的创建、查看、修改、删除、更熟练掌握视图的创建、查看、修改、删除、更名名5熟练掌握通过视图查询和更新数据方法熟练掌握通过视图查询和更新数据方法第第8 8章章 索引与视图索引与视图 引导案例:引导案例:前面的章节中已经创建了教务管理数据库,前面的章节中已经创建了教务管理数据库,输入了相应的数据。数据库建立起来后,就可以输
2、入了相应的数据。数据库建立起来后,就可以操作数据库中的数据了,其中最主要的操作就是操作数据库中的数据了,其中最主要的操作就是查询操作。为了提高查询的效率,就需要在相应查询操作。为了提高查询的效率,就需要在相应的表上创建索引,为了增强查询的灵活性,就需的表上创建索引,为了增强查询的灵活性,就需要在表的基础上创建视图,满足用户复杂的查询要在表的基础上创建视图,满足用户复杂的查询需要。本章介绍这两方面的技术。需要。本章介绍这两方面的技术。第第8 8章章 索引与视图索引与视图8.1 8.1 索引概念索引概念8.2 8.2 索引的创建与管理索引的创建与管理8.3 8.3 索引的维护索引的维护8.4 8.
3、4 视图概念视图概念8.5 8.5 视图的创建与管理视图的创建与管理8.6 8.6 通过视图查询和更新数据通过视图查询和更新数据小结小结8.1 8.1 索引概念索引概念8.1.1 8.1.1 索引的概念索引的概念用户对数据库最频繁的操作是数据查询,一般情况下,执行查询操作时,需要对整个表进行数据搜索。当表中的数据很多时,搜索就需要很长的时间,为了提高检索数据的效率,数据库引入了索引机制。在数据库中,使用索引无须对整个表扫描,就可以找到所需要的数据。索引是某个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。可以在表或视图的一列或多列上创建索引,基于两列或多列上建立
4、的索引称为复合索引。如果表中任意两行被索引的列值不允许出现重复值,那么这种索引称为唯一(UNIQUE)索引。返回目录8.1 8.1 索引概念索引概念8.1.2 8.1.2 聚簇索引和非聚簇索引聚簇索引和非聚簇索引 按照索引的组织方式,可以将索引分为聚集索引和非聚集索引。1 1聚簇索引(聚簇索引(Clustered IndexClustered Index)对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即聚簇索引与数据是混为一体的,它的叶节点中存储的是实际的数据。可以在表或视图的一列或多列上的组合上创建索引,在实际开发中,一般在定义成主键的列建立聚集索引,且创建主键约束时,若表中
5、没有聚集索引,则SQL Server将主键列作为聚集索引列。在每个表中只能创建一个聚集索引。返回目录8.1 8.1 索引概念索引概念8.1.2 8.1.2 聚簇索引和非聚簇索引聚簇索引和非聚簇索引 2 2非聚簇索引(非聚簇索引(Nonclustered IndexNonclustered Index)非聚集索引与书中内容的组织方式类似,数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置,索引中的项目按键值的顺序存储,而表中的数据按另一种顺序存储,具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数据按列排序。在表中,最多可以建立250个非聚集索引,或者249个
6、非聚集索引和1个聚集索引。返回目录8.1 8.1 索引概念索引概念8.1.3 8.1.3 创建索引的优缺点创建索引的优缺点1 1创建索引的优点创建索引的优点 通过创建唯一索引,可以保证数据记录的唯一性。可以大大加快数据检索速度。可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。在使用ORDER BY和GROUP BY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。返回目录8.1 8.1 索引概念索引概念8.1.3 8.1.3 创建索引的优缺点创建索引的优缺点2 2创建索引的缺点创建索引的缺点 创建索引要
7、花费时间和占用存储空间。建立索引加快了数据检索速度,却减慢了数据修改速度。返回目录8.1 8.1 索引概念索引概念8.1.48.1.4考虑建索引的列和不考虑建索引的列考虑建索引的列和不考虑建索引的列1考虑建索引的列考虑建索引的列 如果在一个列上创建索引,该列就称为索引列。索引列中的值称为关键字值。考虑建索引的列有以下这些列:(1)主键:通常检索、存取表是通过主键来进行的。因此,应该考虑在主键上建立索引。(2)连接中频繁使用的列:用于连接的列若按顺序存放,系统可以很快地执行连接。如外键,除用于实现参照完整性外,还经常用于进行表的连接。(3)在某一范围内频繁搜索的列和按排序顺序频繁检索的列。返回目
8、录8.1 8.1 索引概念索引概念8.1.48.1.4考虑建索引的列和不考虑建索引的列考虑建索引的列和不考虑建索引的列2不考虑建索引的列不考虑建索引的列建立索引需要产生一定的存储开销,在进行插入和更新数据的操作时,维护索引也要花费时间和空间。一般来说,如下一些列不考虑建立索引:(1)很少或从来不在查询中引用的列,因为系统很少或从来不根据这个列的值去查找数据行。(2)只有两个或很少几个值的列(如性别,只有两个值“男”或“女”),以这样的列创建索引并不能实现建立索引的好处。(3)以bit、text、image数据类型定义的列。(4)数据行数很少的小表一般也没有必要创建索引。返回目录8.2 8.2
9、索引的创建与管理索引的创建与管理8.2.1 8.2.1 用用T-SQLT-SQL语句创建索引语句创建索引 用T-SQL语句创建索引,通过使用CREATE INDEX语句来实现。语法格式:CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX 索引名 ON 表名|视图名(列名ASC|DESC,.n)WITH PAD_INDEX,FILLFACTOR=填充因子 ,DROP_EXISTING返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.1 8.2.1 用用T-SQLT-SQL语句创建索引语句创建索引 说明:说明:UNIQUE:用于指定为表或视图创建唯一
10、索引,即不允许存在索引值 相同的两行。CLUSTERED:用于指定创建的索引为聚集索引。NONCLUSTERED:用于指定创建的索引为非聚集索引。PAD_INDEX:用于指定索引中间级中每个页(节点)上保持开放的空间。FILLFACTOR=填充因子:用于指定在创建索引时,每个索引页的数 据占索引页大小的百分比,填充因子的值 为1到100。DROP_EXISTING:用于指定应删除并重新创建已命名的先前存在的 聚集索引或者非聚集索引。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.1 8.2.1 用用T-SQLT-SQL语句创建索引语句创建索引【例8.1】使用-SQL语句在“教务
11、管理数据库”数据库的“学生表”上创建一个名“XS_XM_INDEX”的非唯一性非聚簇索引,索引关键字为“姓名”,升序,填充因子50%。【例8.2】使用-SQL语句在“教务管理数据库”的“学生表”上创建一个名为“XS_XH_INDEX”的唯一性聚集索引,索引关键字为“学号”,按降序排列,填充因子70%。【例8.3】使用-SQL语句在“教务管理数据库”的“学生表”上创建一名为“XS_XH_XM_INDEX”的唯一性聚集索引,索引关键字为“学号”和“姓名”,均按降序排序,删除并重新创建同名的索引文件。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.2 8.2.2 用用T-SQLT-S
12、QL语句管理索引语句管理索引 当索引创建之后,可以使用T-SQL语句查看、更名和删除索引。1 1查看索引查看索引在创建索引之前或在创建索引之后,可以用sp_helpindex系统存储过程查看表的所有索引信息。语法格式:SH_HELPINDEX 表名【例.4】用系统存储过程sp_helpindex查看教务管理数据库中“学生表”的索引信息。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.2 8.2.2 用用T-SQLT-SQL语句管理索引语句管理索引 2 2重命名索引重命名索引创建索引后,可以用sp_rename系统存储过程来更改索引的名称。语法格式:SP_RENAME 表名.原索
13、引名,新索引名【例.5】用系统存储过程sp_ rename将“学生表”的索引XS_XM_INDEX 重新命名为XS_XM_INDEX 1。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.2 8.2.2 用用T-SQLT-SQL语句管理索引语句管理索引 3 3删除索引删除索引在创建索引之后,如果该索引不再需要,使用DROP INDEX命令可以删除一个或者多个当前数据库中的索引。语法格式:DROP INDEX 表名.索引名,.n【例.6】用DROP语句将“学生表”的索引XS_XM_INDEX1删除。注意:删除索引时要注意,如果索引是在CREATE TABLE语句中创建的,只能用AL
14、TER TABLE命令来删除索引,而不能用DROP INDEX来删除。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.3 8.2.3 用用SSMSSSMS创建与管理索引创建与管理索引1 1使用使用SQL Server Management StudioSQL Server Management Studio创建索引创建索引1)打开SQL Server Management Studio。2)展开要创建索引的数据库,再展开“表”结点。3)展开要建索引的表。4)在“索引”结点上单击右键,选择“新建索引”。5)在“索引名称”文本框中,输入“ZYB_ _ZYH_INDEX”,在“索引类
15、型”列表框中选择索引类型为“非聚集”,“唯一”索引。6)单击“添加”按钮,弹出对话框,选择要在其上创建索引的列。7)单击“确定”按钮,回到“新建索引”对话框,其中,“排序”列用于设置索引的排列顺序。如“升序”。8)单击“确定”按钮,即完成了索引的创建过程。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.3 8.2.3 用用SSMSSSMS创建与管理索引创建与管理索引2 2使用使用SQL Server Management StudioSQL Server Management Studio查看索引查看索引1)打开SQL Server Management Studio。2)在对
16、象资源管理器中展开要查看索引的数据库,再展开“表”结点3)展开要查看索引的表。4)展开“索引”结点,则会出现表中已存在的索引列表。5)双击某一索引名称,则出现索引属性对话框,用户可以查看索引的信息。返回目录8.2 8.2 索引的创建与管理索引的创建与管理8.2.3 8.2.3 用用SSMSSSMS创建与管理索引创建与管理索引3 3使用使用SQL Server Management StudioSQL Server Management Studio删除索引删除索引1)打开SQL Server Management Studio。2)展开要查删除索引的数据库,再展开“表”结点。3)展开要删除索引
17、的表。4)展开择“索引”结点,则会出现表中已存在的索引列表。5)选择某个需要删除的索引,如“ZYB_ _ZYH_INDEX”索引,单击鼠标右键,在弹出的菜单中单击“删除”菜单项,则打开删除索引对话框。6)单击“确定”按钮后,完成删除操作。返回目录8.3 8.3 索引的维护索引的维护在创建索引后,为了得到最佳的性能,必须对索引进行维护。因为随着时间的推移,用户频繁执行插入、修改和删除等一系列操作,这些操作会使数据变得支离破碎,从而造成索引性能的下降。SQL Server提供了多种方法来维护索引。1 1更新索引的统计信息更新索引的统计信息在创建索引时,SQL Server会自动存储有关的统计信息,
18、查询优化器会利用索引的统计信息来估算使用该索引查询数据的成本。但随着用户频繁执行插入、修改和删除等一系列操作后,这些统计信息可能已经过时了,因此有必要对索引的这些统计信息进行更新。返回目录8.3 8.3 索引的维护索引的维护1 1更新索引的统计信息更新索引的统计信息可以使用UPDATE STATISTICS命令来更新索引的统计信息。语法格式:UPDATE STATISTICS 表名 索引名【例8.7】使用UPDATE STATISTICS命令,更新在“教务管理数据库”数据库的“学生表”的“XS_XH_INDEX”索引的统计信息。返回目录8.3 8.3 索引的维护索引的维护2 2使用使用DDCC
19、 SHOWCONTIGDDCC SHOWCONTIG命令扫描表命令扫描表对表的频繁操作可能会导致表碎片,而表碎片会造成数据库查询性能的降底,用户可以使用DBCC SHOWCONTIG来扫描表,并通过返回值确定该表的索引页是否已经严重不连续。语法格式:DBCC SHOWCONTIG(表名,索引名)【例8.8】使用DBCC SHOWCONTIG命令获取“教务管理数据库”数据库的“学生表”的“XS_XH_INDEX”索引碎片信息返回目录8.3 8.3 索引的维护索引的维护3 3使用使用DDCC INDEXDEFRAGDDCC INDEXDEFRAG命令整理碎片命令整理碎片可以使用DBCC INDEX
展开阅读全文