《视图和索引》PPT课件.ppt

上传人:za****8 文档编号:12724480 上传时间:2020-05-19 格式:PPT 页数:61 大小:1.68MB
返回 下载 相关 举报
《视图和索引》PPT课件.ppt_第1页
第1页 / 共61页
《视图和索引》PPT课件.ppt_第2页
第2页 / 共61页
《视图和索引》PPT课件.ppt_第3页
第3页 / 共61页
点击查看更多>>
资源描述
第6章视图和索引,通过本章的学习,读者应该掌握以下内容。创建和管理视图利用视图简化查询操作使用视图实现数据库的安全管理使用索引来提高检索的效率索引的概念、创建和操作规划和维护索引,6.1视图的基本概念,视图是一种在一个或多个表上观察数据的途径,可以把视图看做是一个能把焦点定在用户感兴趣的数据上的监视器。,视图是虚拟的表,与表不同的是,视图本身并不存储视图中的数据,视图是由表派生的,派生表被称为视图的基本表,简称基表。,视图可以来源于一个或多个基表的行或列的子集,也可以是基表的统计汇总,或者是视图与基表的组合,视图中的数据是通过视图定义语句由其基本表中动态查询得来的。,6.1.1视图的基本概念,在视图的实现上就是由SELECT语句构成的,基于选择查询的虚拟表。其内容是通过选择查询来定义的,数据的形式和表一样由行和列组成,而且可以像表一样作为SELECT语句的数据源。,但是视图中的数据是存储在基表中的,数据库中只存储视图的定义,数据是在引用视图时动态产生的。因此,当基表中的数据发生变化时,可以从视图中直接反映出来。当对视图执行更新操作时,其操作的对象是基表中的数据。,6.1.2视图的优点和缺点,(1)隐蔽数据库的复杂性。(2)为用户集中提取数据。(3)简化数据库用户权限的管理。(4)方便数据的交换。视图的缺点主要表现在对数据修改的限制上。,6.2视图的创建和查询,在默认状态下,视图中的列名继承了它们基表中的相应列名,对于下列情况则需要重新指定列的别名。,(1)视图中的某些列来自表达式、函数或常量时。(2)当视图所引用不同基表的列中有相同列名时。(3)希望给视图中的列指定新的列名时。,6.2.1在SQLServerManagementStudio下创建视图,图6-5启动视图设计器窗口,图6-6为创建视图添加基表,图6-7确定视图中的列,如果输出某个表的所有列则选择“*”,图6-8设置连接和查询条件,图6-9设置视图的属性,图6-10最终得到的视图描述及预览,6.2.2使用CREATEVIEW创建视图,创建视图的基本语法如下。CREATEVIEW视图名(视图列名1,视图列名2,.,视图列名n)WITHENCRYPTIONASSELECT语句WITHCHECKOPTION,6.2.3视图数据的查询,视图创建后,就可以像对表的查询一样对视图进行查询了。对视图查询时,首先进行有效性检查,检查通过后,将视图定义中的查询和用户对视图的查询结合起来,转换成对基表的查询。对基表执行的是这个联合查询。,6.3视图的维护,6.3.1查看视图的定义信息1使用SQLServerManagementStudio查看2使用sp_helptext查看使用系统存储过程sp_helptext查看视图定义信息的语法格式如下。EXECUTEsp_helptext视图名,图6-12查看和修改视图,图6-13查看视图的定义信息,6.3.2查看视图与其他对象的依赖关系,1使用SQLServerManagementStudio查看,图6-14显示视图的依赖关系,2使用sp_depends查看,使用系统存储过程sp_depends可以查看视图与其他数据对象之间的依赖关系,语法格式如下。EXECUTEsp_depends视图名,图6-15使用sp_depends显示视图的依赖关系,6.3.3修改视图,1在视图设计器中修改视图在视图设计器中修改视图和视图的创建是一样的,修改也就是再创建。,图6-16视图设计器下修改视图,2使用ALTERVIEW修改视图,使用ALTERVIEW语句修改视图的语法格式如下。ALTERVIEW视图名WITHENCRYPTIONASSELECT语句WITHCHECKOPTION,6.3.4删除视图,1使用SQLServerManagementStudio删除视图2使用DROPVIEW删除视图删除视图的语法格式如下。DROPVIEW视图名1,视图名n使用该语句一次可以删除多个视图。,6.4通过视图修改表数据,对视图进行的修改操作有以下限制。(1)若视图的字段来自表达式或常量,则不允许对该视图执行INSERT和UPDATE操作,但允许执行DELETE操作。(2)若视图的字段来自集合函数,则此视图不允许修改操作。,(3)若视图定义中含有GROUPBY子句,则此视图不允许修改操作。(4)若视图定义中含有DISTINCT关键字,则此视图不允许修改操作。(5)若视图的定义不允许被修改,则视图也不允许修改操作。,6.5索引概述,索引是一个在表上或视图上创建的独立的物理数据库结构,在视图上创建索引只能针对架构绑定的视图。所以我们所讲的主要是针对表上的索引。,6.5.1SQLServer2005中数据的存储与访问,1数据的存储在SQLServer2005中,数据存储的基本单位是页,页的大小是8KB。每页的开始部分是96个字节的页首,用于存储系统信息,如页的类型、页的可用容量、拥有页的对象ID等。,2数据的访问,SQLServer2005提供了两种数据访问的方法。,(1)表扫描法,在没有建立索引的表内进行数据访问时,SQLServer2005通过表扫描法来获取所需要的数据。当SQLServer2005执行表扫描时,它从表的第一行开始进行逐行查找,直到找到符合查询条件的行。,显然,使用表扫描法所耗费的时间直接与数据表中存放的数据量成正比。当数据表中存在大量的数据时,使用表扫描将造成系统响应时间过长。,(2)索引法,在建有索引的表内进行数据访问时,SQLServer2005通过使用索引来获取所需要的数据。,当SQLServer2005使用索引时,它会通过遍历索引树来查找所需行的存储位置,并通过查找的结果提取所需的行。通常由于索引加速了对表中数据行的检索,所以使用索引可以加快SQLServer2005访问数据的速度,减少数据访问时间。,6.5.2索引的作用,创建索引的好处主要有以下两点。(1)加快数据查询。(2)加快表的连接、排序和分组工作。,创建索引也有它的不足,如下所述。(1)创建索引需要占用数据空间和时间。(2)建立索引会减慢数据修改的速度。,6.5.3索引的分类,按照索引值的特点分类,可以将索引分为唯一索引和非唯一索引;按照索引结构的特点分类,可以将索引分为聚集索引和非聚集索引。,1唯一索引和非唯一索引,唯一索引要求所有数据行中任意两行中的被索引列或索引列组合不能存在重复值,包括不能有两个空值NULL,而非唯一索引则不存在这样的限制。,2聚集索引和非聚集索引,聚集索引会对表进行物理排序,所以这种索引对查询非常有效。表中只能有一个聚集索引。当建立主键约束时,如果表中没有聚集索引,SQLServer2005会用主键列作为聚集索引键。非聚集索引不会对表进行物理排序。,6.6创建索引,索引可以在创建表的约束时由系统自动创建,也可以通过SQLServerManagementStudio或CREATEINDEX语句来创建。,6.6.1系统自动创建索引,在创建或修改表时,如果添加了一个主键或唯一键约束,则系统将自动在该表上,以该键值作为索引列,创建一个唯一索引。,6.6.2在图形界面下创建索引,在SQLServerManagementStudio的表设计器下建立和修改索引很便捷,这里通过实例说明其使用方法。,6.6.3使用CREATEINDEX语句创建索引,创建索引命令常用格式如下。CREATEUNIQUECLUSTERED|NONCLUSTEREDINDEX索引名ON表名(字段名,n)WITH索引选项,nON文件组,6.7管理和维护索引,6.7.1查看和修改索引信息可以使用SQLServerManagementStudio查看、修改索引的定义,或者使用sp_helpindex系统存储过程或有关表上的索引信息。,6.7.2删除索引,1使用企业管理器删除索引2使用Transact-SQL语句删除索引删除索引命令常用格式如下。DROPINDEX表名.索引名,n,6.7.3索引的分析与维护,1索引的分析(1)显示查询计划SQLServer2005提供了两种显示查询中的数据处理步骤以及如何访问数据的方式。以图形方式显示执行计划,图6-29客户订单查询的执行计划,以表格方式显示执行计划通过在查询语句中设置SHOWPLAN选项,我们可以选择是否让SQLServer2005显示查询计划。,设置是否显示查询计划的命令为:SETSHOWPLAN_ALLON|OFF或SETSHOWPLAN_TEXTON|OFF,图6-30扫描订单信息表聚集索引的说明,图6-31显示查询计划分析索引,(2)数据I/O统计,数据检索语句所花费的磁盘活动量也是我们较关心的性能之一。通过设置STATISTICSIO选项,我们可以使SQLServer2005显示磁盘I/O信息。设置是否显示磁盘I/O统计的命令为:SETSTATISTICSIOON|OFF,2索引的维护,在创建索引后,为了得到最佳的性能,必须对索引进行维护。因为随着时间的推移,用户需要在数据库上进行插入、更新和删除等一系列操作,这将使数据变得支离破碎,从而造成索引性能的下降。,(1)统计信息更新,图6-33设置数据库的属性决定是否实现统计的自动更新,(2)使用DBCCSHOWCONTIG语句扫描表,对表进行数据操作可能会导致表碎片,而表碎片会导致额外的页读取,从而造成数据库查询性能的降低。此时用户可以通过使用DBCCSHOWCONTIG语句来扫描表,并通过其返回值确定该表的索引页是否已经严重不连续。,(3)使用DBCCINDEXDEFRAG语句进行碎片整理,当表或视图上的聚集索引和非聚集索引页级上存在碎片时,可以通过DBCCINDEXDEFRAG对其进行碎片整理。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!