第3章_管理数据库对象(理论).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章_管理数据库对象(理论)

4.4 创建各类索引 唯一索引 在emp表的ename列上创建一个唯一索引idx_emp_ename,创建之后该表中ename列就不允许出现重复值 复合索引 如果SELECT语句中的WHERE子句引用了复合索引中的所有列或大多数列,则使用复合索引可以显著地提高查询速度 创建此类索引时,应该注意定义中使用的列的顺序,通常,最频繁访问的列应该放置在列表的最前面 如果WHERE条件类似于“WHERE name=‘JACK’ AND job=‘CLERK’”语句,则Oracle将会使用此复合索引 创建各类索引 位图索引 由于emp表的job列、deptno列的取值范围有限,并且经常需要基于这些列进行查询、统计、汇总工作,所以应该基于这些列创建位图索引 创建各类索引 函数索引 为了使在查询条件中包含函数(包括SQL的内置函数或用户自定义函数)和表达式的查询语句的执行效率提高,可以适当地创建函数索引 在创建函数索引时,Oracle首先对包含索引列的函数值或表达式值进行求值,然后对求值后的结果进行排序,最后再将结果存储到索引中 1. 创建索引 2. 查看执行计划 4.5 合并、重建索引 随着不断地对表进行更新操作,表的索引中会产生越来越多的存储碎片,这将对索引的工作效率产生负面影响 用户可以通过两种方式来清除碎片:合并索引、重建索引 合并索引 重建索引 重建索引是重新创建一个新的索引,然后再删除原索引。如果在索引列上频繁地执行UPDATE或DELETE操作,则应该定期重建索引,以提高空间利用率 4.6 监视索引的使用情况 已经创建的索引是否能够有效地工作,取决于在执行SQL语句的过程中Oracle是否会使用到该索引 Oracle提供了一种比较简便的方法来监视索引的使用情况,即在v$object_usage数据字典动态性能视图中记录索引的使用情况 步骤 使索引处于被监视状态,查询v$object_usage,了解索引的被监视情况 执行SQL语句,查看被监视索引的使用情况 关闭索引监视状态 1. 查询V$object_usage数据字典,查看被监视的索引 2. 修改idx_emp_ename_job索引,使其处于被监视状态 3. 再次查询V$object_usage数据字典,确定索引处于被监视状态 关闭索引监视状态 4.7 查看索引信息 使用user_indexes数据字典视图查看一个表中所有的索引信息 INDEX_NAME:表示索引名 INDEX_TYPE:表示索引类型。其中,FUNCTION-BASED NORMAL表示基于函数的B树索引,BITMAP表示位图索引,NORMAL表示普通的B树索引 UNIQUENES:表示该列是否是唯一索引 4.8 创建索引的原则 一般不需要为数据量很小的表创建索引 对于数据量比较大的表,如果经常需要查询的记录数小于表中所有记录数的15%,则可以考虑为该表创建索引 应该为大部分列值不重复的列创建索引 对于取值范围较大的列(如ename列),应该创建B树索引;对于取值范围较小的列(如sex列),应该创建位图索引 对于包含很多个NULL值,但是经常需要查询所有非NULL值记录的列,应当创建索引 不能在LONG或BLOB等大对象数据类型的列上创建索引 如果在大部分情况下只需要对表执行只读操作,就可以为该表创建更多的索引以提高查询速度 如果在大部分情况下需要对表执行更新操作,则应该为少创建一些索引,以提高更新速度 总结 方案是数据库对象的集合,一个用户一般对应一个方案 同义词是方案对象的一个别名,常用于简化对象和提高对象访问的安全性 公用同义词由一个特殊的用户组PUBLIC所拥有,数据库中所有的用户都可以使用公用同义词 序列(SEQUENCE)是一个命名的顺序编号生成器,它能以串行的方式生成一系列顺序整数 视图(VIEW)是由SELECT子查询语句定义的一个逻辑表,只有定义而无数据,是一个“虚表”。视图是查看和操作表数据的一种方法 使用视图有诸多优点,如提供各种数据表现形式、提供某些数据的安全性、隐藏数据的复杂性、简化查询语句、执行特殊查询、保存复杂查询等 在表中的一个或多个列上创建索引,能够为数据的检索提供快捷的存取路径,减少查询时的硬盘I/O操作,加快数据的检索速度 对于经常需要进行连接(join)查询的多个表而言,在用于连接的列上创建索引能够显著地提高查询的速度 如果在大部分情况下只需要对表执行只读操作,则可以为该表创建更多的索引,以提高查询速度 第三章 管理数据库对象 内容回顾 VARCHAR2类型为Oracle常用的可变长度字符类型 CLOB数据类型用于存储可变长度的字符数据,BLOB数据类型用于存储较大的二进制对象 Oracle中的子查询可以分为单行子查询、多行子查询、多列子查询、相关子查询等

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档