ORACLE优化
文章平均质量分 76
一叶知秋-木
大家好我是没川裤子
展开
-
测试一次I/0最多能读多少块
db_file_multiblock_read_count指定了一次最多能够读取的block数,当然这个值也是和操作系统相关的,ORACLE文档说,大多数的平台,一次I/O一般读1M的数据(This value is platform-dependent and is 1MB for most platforms),如果你的数据库的block size 为8,那么你一次就可以读128个块。现在我来原创 2013-10-09 22:20:47 · 678 阅读 · 0 评论 -
索引原理
索引概述 索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了加快对数据的搜索速度,也可以用来保证数据的唯一性。但是,索原创 2013-10-21 18:13:37 · 691 阅读 · 0 评论 -
深入研究B树索引-DML对B树索引的影响
B树索引的访问当oracle进程需要访问数据文件里的数据块时,oracle会有两种类型的I/O操作方式:1) 随机访问,每次读取一个数据块(通过等待事件“db file sequential read”体现出来)。2) 顺序访问,每次读取多个数据块(通过等待事件“db file scattered read”体现出来)。 第一种方式则是访问索引里的数据块,而第二种方式的I/O操作转载 2013-10-21 17:52:37 · 773 阅读 · 0 评论 -
经常DML操作对索引的影响
当表里的数据发生DML操作时,oracle会自动维护索引树。但是在索引树中没有更新操作,只有删除和插入操作。例如在某列上创建索引,将某列上的一个值“1”更新为“2”时,oracle会同时更新索引树,但是oracle是先将索引树中的“1”标示为删除,然后再将“2”写到索引树中。所以如果表更新比较频繁,那么在索引中删除的标示会越来越多,这时索引的查询效率必然降低,所以我们应该定期重建索引。原创 2013-10-21 17:38:26 · 2979 阅读 · 0 评论 -
ORACLE索引失效的一些原因
索引失效 1) 没有查询条件,或者查询条件没有建立索引 2) 在查询条件上没有使用引导列 3) 查询的数量是大表的大部分,应该是30%以上。 4) 索引本身失效 5) 查询条件使用函数在索引列上(见12) 6) 对小表查询 7) 提示不使用索引 8) 统计数据不真实 9) CBO计算走索引花费过大的情况。其实也包含了上面的情况,这里指的是表占有的block要比索原创 2013-10-21 17:11:58 · 705 阅读 · 0 评论 -
让我们摸清楚多表连接的原理
一、引言 数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散的原始业务数据,并通过便捷有效的数据访问手段,可以支持企业内部不同部门,不同需求,不同层次的用户随时获得自己所需的信息。数据仓库系统需要能够及时地追踪和分析大量的历史数据,并能够及时做出分析和预测,因此实时性是一个非常重要的指标。ORACLE由于可靠性、高性能等方面的特点,在电信行业大部分的数据原创 2013-10-16 15:30:39 · 1309 阅读 · 0 评论 -
dbms_xplan.display_cursor查看低效的执行计划
dbms_xplan.display_cursor定义:function display_cursor(sql_id varchar2 default null, cursor_child_no integ原创 2013-10-14 17:56:58 · 928 阅读 · 0 评论 -
解析SQL编译器SQL COMPILER
SQL引擎如何生成执行计划SQL编译器SQL COMPILER将语句编译到一个共享游标中,由解析器parser,查询优化器query optimizer和行源生成器row source generator组成。解析器parser:执行对SQL语句的语法,语义分析,将查询中的视图展开,划分为小的查询块查询优化器query optimizer:为语句生成一组可能被使用的执行计划,估算出原创 2013-10-15 10:24:41 · 2413 阅读 · 0 评论 -
ORALCE执行计划参数介绍-2
在SQL语句的执行计划中,包含很多字段项和很多模块,其不同字段代表了不同的含义且在不同的情形下某些字段、模块显示或不显示,下面的描述给出了执行计划中各字段的含义以及各模块的描述。 有关执行计划中各字段模块的描述请参考: 执行计划中各字段各模块描述 有关由SQL语句来获取执行计划请参考: 使用EXPLAIN PLAN获取SQL语句执行计划 有关原创 2013-10-12 18:14:41 · 620 阅读 · 0 评论 -
查看10053和10032跟踪事件
你是否想知道一句sql语句如何执行,它是否走索引,是否采用不同得驱动表,是否用nestloop join,hash join…..?这一切对你是否很神秘呢?或许你会说execution plan能看到这些东西,但是你是否清楚execution plan是如何得到?这篇文章就是给出了隐藏在execution plan底下的具体实现。10053跟踪事件:可以提供关于执行计划的信息,可以帮助原创 2013-10-12 16:49:19 · 1662 阅读 · 0 评论 -
10053事件优化器参数详细说明
优化器相关参数:记载了所有影响成本计算的参数***************************************PARAMETERS USED BY THE OPTIMIZER********************************OPTIMIZER_FEATURES_ENABLE = 8.1.6OPTIMIZER_MODE/GOAL = Choose原创 2013-10-12 16:58:07 · 1291 阅读 · 0 评论 -
RBO与CBO
Oracle的优化器有两种优化方式: 基于规则的优化方式:Rule-Based Optimization(RBO)基于成本或者统计信息的优化方式(Cost-Based Optimization:CBO) RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。 CBO方原创 2013-10-11 11:58:43 · 695 阅读 · 0 评论 -
Oracle SQL的优化细节
SQL的优化应该从5个方面进行调整:1.去掉不必要的大型表的全表扫描2.缓存小型表的全表扫描3.检验优化索引的使用4.检验优化的连接技术5.尽可能减少执行计划的CostSQL语句:是对数据库(数据)进行操作的惟一途径;消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;可以有不同的原创 2013-10-11 11:54:30 · 577 阅读 · 0 评论 -
SQL优化总结
SQL 的优化主要涉及几个方面:(1) 相关的统计信息缺失或者不准确(2) 索引问题(3) SQL 的本身的效率问题,比如使用绑定变量,批量DML 采用bulk等,这个就考验写SQL的基本功了,这一点也是最主要的一点。 一.SQL 编写注意事项 1.1 查看SQL对于生产环境上的SQL,可以从AWR 或者 Statspack 报告中获取相关的SQL原创 2013-10-11 11:41:35 · 522 阅读 · 0 评论 -
重建、合并、删除索引
重建索引 如果表中记录频繁地被删除或插入,尽管表中的记录总量保持不变,索引空间的使用量会不断增加。虽然记录从索引中被删除,但是该记录索引项的使用空间不能被重新使用。因此,如果表变化不定,索引空间量会不断增加,不论表中记录数量是否增加,这是因为索引中无效空间会增加。 要回收那些曾被删除记录使用的空间,需要使用Alter index rebuild命令。 重建索引有两种方法:一种是最简单的原创 2013-10-21 18:16:30 · 1454 阅读 · 0 评论