什么时候使用绑定变量性能反而更差
摘要:当我在做培训时,在解释绑定变量的好处时,大家都比较容易理解。但是,对于并不是任何时候绑定变量都是最优的。这一点很多人不是和理解。下面就讨论一下在什么时候会出现绑定变量会使性能变差。 扫描成本和OPTIMIZER_INDEX_COST_ADJ 我们知道,在CBO模式下,Oracle会计算各个访问路径的代价,采用最小代价的访问路径作为语句的执行计划。而对于索引的访问代价的计算,需要根据一个系统参数OP
阅读全文
posted @
2013-01-17 15:02
一江水
阅读(1817)
推荐(2) 编辑
收集oracle统计信息
摘要:优化器统计范围:表统计; --行数,块数,行平均长度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;列统计; --列中唯一值的数量(NDV),NULL值的数量,数据分布; --DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NULLS,HISTOGRAM;索引统计;--叶块数量,等级,聚簇因子; --DBA_INDEXES:LEAF_BLOCK...
阅读全文
posted @
2010-02-04 14:26
一江水
阅读(62611)
推荐(3) 编辑
Oracle中各个命中率的总结及调优笔记整理
摘要:关于Oracle中各个命中率的计算以及相关的调优1)Library Cache的命中率:.计算公式:Library Cache Hit Ratio = sum(pinhits) / sum(pins)SQL>SELECT SUM(pinhits)/sum(pins) FROM V$LIBRARYCACHE;通常在98%以上,否则,需要要考虑加大共享池,绑定变量,修改cursor_shari...
阅读全文
posted @
2009-12-24 14:26
一江水
阅读(16769)
推荐(0) 编辑
详细讲解Oracle I/O子系统的配置和设计
摘要:很多人都知道,Oracle IO子系统是数据库中一个非常重要的组成部分。 由于很多软件系统的瓶颈都是由DISK IO引起的,系统花费了大量的CPU_TIMES用于等待I/O行为的完成。 在我们设计数据库的IO子系统的时候,应该考虑以下因素: ■ 存储,最小的磁盘容量 ■ 可用性,诸如(24 x 7) 不间断的服务 ■ 性能,诸如I/O的吞吐量和系统响应时间 基本...
阅读全文
posted @
2009-12-23 18:48
一江水
阅读(1769)
推荐(0) 编辑
如何在spfile中设置events
摘要:使用spfile的情况下设置trace和debug的多个events的方法:1) 使用init.ora作为参数文件的events设置,在init$ORACLE_SID.ora中增加如下的参数项: event='10325 trace name context forever, level 10' event='10015 trace name context forever, level 1' 在...
阅读全文
posted @
2009-12-23 12:06
一江水
阅读(1690)
推荐(0) 编辑
PRE_PAGE_SGA 的玩法[转]
摘要:看了看官方文档,了解到一个以前没有注意到的细节(还是得看文档啊........),在Oracle实例启动时,只会在物理内存中首先加载SGA的个内存区的最小的大小(以Granule粒度计算)。而剩余的SGA内存只作为虚拟内存(Page File)分配,只有当进程touch到相应的page时,才会置换到物理内存中。出于最优性能的考虑我们可能需要在实例启动的时,将所有SGA都分配到物理内存中去。这时就可...
阅读全文
posted @
2009-12-23 11:05
一江水
阅读(1769)
推荐(0) 编辑
Oracle awr和ash
摘要:1. 10g之前用户的连接将产生会话,当前会话记录保存在v$session中;处于等待状态的会话会被复制一份放在v$session_wait中。当该连接断开后,其原来的连接信息在v$session和v$session_wait中就会被删除。这是10g之前的状况。2. v$session_wait_history与ASH若是一个普通的会话(我是指没有大量地耗费资源),则对于性能调整来说无足轻重。但若...
阅读全文
posted @
2009-09-24 11:58
一江水
阅读(6475)
推荐(0) 编辑
Statspack分析报告详解
摘要:Statspack分析报告详解: statspack 输出结果中必须查看的十项内容 1、负载间档(Load profile) 2、实例效率点击率(Instance efficiency hit ratios) 3、首要的5个等待事件(Top 5 wait events) 4、等待事件(Wait events) 5、闩锁等待 6、首要的SQL(Top sql) 7、实例活...
阅读全文
posted @
2009-08-31 00:28
一江水
阅读(1235)
推荐(0) 编辑
latch free 等待事件说明
摘要:当进程想要获取锁存器而此时该锁存器正被其他进程持有时产生Latch Free(锁存器空闲)等待事件,类似于排队,Oracle使用锁存器来保护数据结构。一次只能在一个进程在获得锁存器后修改或检查数据结构。其他需要访问该数据结构的进程必须等到它们获得锁存器后。不同于排队的是,请求锁存器的进程不需要在队列中等待。如果获取锁存器失败,则进程仅仅等待一小段时间就可以再次请求锁存器。这一小段等待时间成为...
阅读全文
posted @
2009-08-31 00:25
一江水
阅读(10321)
推荐(0) 编辑
Oracle高可用环境之DDL操作
摘要:高可用环境之DDL操作在这之前,应该有锁与阻塞的基础知识。DDL锁Note:执行DDL会先commit当前会话操作,再执行DDL,即DDL是非原子性操作。X类型锁:truncate、drop、alter table drop/add/modify等绝大部分DDl,会在表上持有X类型的TM锁。S类型锁:online操作,会在表上持有RS类型的锁。高可用环境下DDL操作风险分析:1、DDL阻塞DML,...
阅读全文
posted @
2009-08-10 00:25
一江水
阅读(1879)
推荐(0) 编辑
ORACLE的表分析策略[转]
摘要:对表进行分析,通常情况下可以对表,索引,列进行单独分析,或者进行组合分析,但这三者哪些是相对重要的,哪些分析显得不那么重要?通过本篇文章的实验相信大家也会对直方图有更一步的了解.1.首先创建测试表,并插入100000条数据SQL> create table test(id number,nick varchar2(30));Table created.SQL> begin 2 for ...
阅读全文
posted @
2009-08-05 23:24
一江水
阅读(2104)
推荐(0) 编辑
用orabm测试oracle服务器的TPS值
摘要:用orabm测试oracle服务器的TPS值1、orabm简介 Orabm是一个开源的oracle性能测试工具,,包含了一套SQL脚本和几个命令行程序。作者Geoff Ingram,是《High-Performance Oracle: Proven Methods for Achieving Optimum Performance and Availability》一书的作者。该工具可以从作者的主...
阅读全文
posted @
2009-07-09 21:37
一江水
阅读(3225)
推荐(0) 编辑
如何在对in操作使用变量绑定
摘要:如何在对in操作使用变量绑定 大家都知道在sql语句中变量绑定的重大意义,甚至有高人指出:一个应用想要它变的很糟糙的话,只要不使用变量绑定就可以了。这话的确不假。这时可能有人就会问:我该绑定的都绑定了,可是我实在无法想到好的方法在in操作符中使用变量绑定。下面的方法可以解决这个疑问。 我们知道in操作符接受两种list, 一个是由一个个item组成的list, 另一个是由另一个表...
阅读全文
posted @
2009-04-27 00:08
一江水
阅读(2931)
推荐(0) 编辑
海量数据处理分析
摘要:海量数据处理分析 北京迈思奇科技有限公司 戴子良 笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面: 一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什...
阅读全文
posted @
2009-04-19 16:16
一江水
阅读(3720)
推荐(0) 编辑
Oracle的等待事件(zt)
摘要:Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。空闲事件指Oracle正...
阅读全文
posted @
2009-04-18 18:01
一江水
阅读(600)
推荐(0) 编辑
Oracle Wait Interface读书笔记之Buffer busy waits事件 [转]
摘要:来自http://lancexu1212.spaces.live.com/当进程需要存取SGA中的buffer的时候,它会依次执行如下步骤的操作:1.获得cache buffers chains latch,遍历那条buffer chain直到找到需要的buffer header2.根据需要进行的操作类型(读或写),它需要在buffer header上获得一个共享或独占模式的buffer pin或...
阅读全文
posted @
2009-04-18 17:16
一江水
阅读(1395)
推荐(0) 编辑
buffer busy waits - 等待事件
摘要:事件参数说明: 事件号:145事件名:buffer busy waits参数一:file#参数二:block#参数三:9i -原因码,10g - block class#事件说明:一、ORACLE会话正在等待PIN住一个缓冲区,会话必须在读取或修改缓冲区之前将该缓冲区PIN住。二、在任何时侯只有一个进程可以PIN住一个缓冲区。三、buffer busy waits表明读/读、读/写、写/写争用。四...
阅读全文
posted @
2009-04-18 15:24
一江水
阅读(1108)
推荐(0) 编辑
buffer busy waits
摘要:buffer busy waits=================http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=34405.1当会话想要访问缓冲存储器中的数据块,而该数据块正在被其它会话使用时产生buffer busywaits事件。其它会话可能正在从数据文件...
阅读全文
posted @
2009-04-18 15:21
一江水
阅读(4611)
推荐(1) 编辑
buffer busy waits等待事件的原因:hot block [转]
摘要:http://blog.chinaunix.net/u/24260/showart_456274.html ************************************************************************************************************************************************...
阅读全文
posted @
2009-04-18 01:35
一江水
阅读(855)
推荐(0) 编辑
wait events研究之"buffer busy waits"
摘要:buffer busy wait是在多个进程尝试访问同一buffer时出现的较常见的等待事件,按buffer类型分为四种:data block, segment header, undo header, undo block。确定访问哪个对象时出现buffer busy waits事件,可通过下面的方法进行定位: SELECT owner, object_name, subobject_n...
阅读全文
posted @
2009-04-18 00:52
一江水
阅读(763)
推荐(1) 编辑