- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用服务 服务中国 Oracle数据库调优 内容总览 一、oracle的索引 1、oracle索引分类。 2、索引的日常维护。 3、为什么我建立的索引用不上或使用了效率不高的索引。 4、建立索引的基本原则。 5、使用索引带来的问题。 二、sql语句的高效写法 1、ORACLE常用优化器。 2、日常写sql语句应注意什么。 oracle的索引—索引分类 常见的几种索引: 一、B-tree索引 二、函数索引 三、位图索引 oracle的索引—索引分类 一、B-tree索引 介绍B-tree索引之前我们先考虑一下我们平时是怎么查字典的。比如按部首法查询“陈”字。 oracle的索引—索引分类 如下图: oracle的索引—索引分类 B*Tree索引是最常见的索引结构,默认建立的索引就是这种类型的索引。B-Tree索引是基于二叉树(平衡树 Balance Tree)的,由根节点 (Root node) 、分支块(branch block)和叶块(leaf block)组成。根节点 (Root node) 和枝节点 (Branch node) 里有包含叶子区索引键集合中最前面的那个索引键和叶子区的数据块地址( Data Block Address , DBA ) , 而叶子区包含了实际的索引键、rowid等。 结构见下图: oracle的索引—索引分类 一、B-tree索引 oracle的索引—索引分类 一、B-tree索引 select语句执行 1)不使用索引 2)使用索引 创建语句:Create index indexname on tablename(columnname[columnname...]) nologging; oracle的索引—索引分类 二、函数索引 创建语句:Create index indexname on tablename(functionname(columnname)) nologging; oracle的索引—索引分类 三、位图 (BITMAP) 索引 列的唯一值/总记录数很小时,即列的唯一性很不好时使用位图索引。如:性别(男、女)、车牌颜色(蓝、黄、白、黑)等。 结构如下图: oracle的索引—索引分类 三、位图 (BITMAP) 索引 oracle的索引—索引分类 三、位图 (BITMAP) 索引 实例 select count(*) from ywdlr_jbxa where a.xb=1; select count(*) from ywdlr_jbxa where a.xb_new=1; select count(*) from ywdlr_jbxa where a.xb_new1=1; 创建语句: Create BITMAP index indexname on tablename(columnname[columnname...]) nologging; oracle的索引—索引的日常维护 一、索引重建 1、为什么要重建索引(rebuild) 日常业务中某些表涉及到大量的修改删除操作, 数据索引需要周期性重建。索引重建不仅可以提高查询性能,还能增加索引表空间空闲空间大小。 比如:某张表大量删除记录后, 记录对应索引占用的数据块空间并没有释放。如下图: oracle的索引—索引的日常维护 比如对应表中值小于100000以下的记录删除,此时再查询100000以下的记录时会出现效率问题。 oracle的索引—索引的日常维护 二、表、索引分析 1、表、索引分析(analyze)的概念 ORACLE在执行SQL时如果使用成本方式分析(CBO)则所有的成本分析信息来源依靠于系统的统计分析表数据,如果说统计分析的数据是不准确的,那可能会使ORACLE分析出来的路径执行性能极差,所以统计分析数据是影响ORACLE性能极重要的信息。 表的统计信息主要包括表的行数,每行的平均长度(字节),空闲块,统计时间等信息;索引的统计信息主要包括行数、层数、叶块数、统计时间等信息。 表、索引分析常用语句: analyze index P_IDX_SB_SBXX_DM_SWGLY compute statistics; analyze table SB_SBXX estimate statistics sample 20 percent; analyze table SB_SBXX compute statistics; exec dbms_stats.gather_table_stats(ZZDS, SB_SBXX,ESTIMATE_PERCENT=5, cascade=true); oracle的索引—索引的日常维护
文档评论(0)