![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle性能调优
lb517290079
这个作者很懒,什么都没留下…
展开
-
Oracle常见等待事件介绍
Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。 空闲事件指Orac...原创 2009-12-10 17:36:10 · 152 阅读 · 0 评论 -
Oracle性能调整与优化(二)
为了能取得圆满成功,我将涉及到一些预备步骤,它们将在查看发生了什么时需要,这些步骤包括运行plustrce SQL脚本、创建一个“EXPLAIN_PLAN”表、授予角色、配置sql*plus环境查看执行计划。所有这些步骤都包括在“Oracle 9i R2数据库性能调整指南和参考”中“在sql*plus中使用自动跟踪”,对于Oracle 10g,这些步骤包括在“sql*plus用户指南和参考10.2...原创 2009-07-26 23:48:24 · 148 阅读 · 0 评论 -
利用Oracle执行计划机制提高查询性能
消耗在准备利用Oracle执行计划机制提高查询性能新的SQL语句的时间是Oracle SQL语句执行时间的最重要的组成部分。但是通过理解Oracle内部产生执行计划的机制,你能够控制Oracle花费在评估连接顺序的时间数量,并且能在大体上提高查询性能。 准备执行SQL语句 当SQL语句进入Oracle的库缓存后,在该语句准备执行之前,将执行下列步骤: 1) 语法检查:检查SQL语句拼写...原创 2009-07-27 00:17:03 · 95 阅读 · 0 评论 -
ORACLE SQL性能优化 (下)
31. 强制索引失效如果两个或以上索引具有相同的等级,你可以强制命令ORACLE优化器使用其中的一个(通过它,检索出的记录数量少) .举例:SELECT ENAMEFROM EMPWHERE EMPNO = 7935AND DEPTNO + 0 = 10 /*DEPTNO上的索引将失效*/AND EMP_TYPE || ‘' = ‘A' /*EMP_TYPE上的索引将失效*/这是一种相当直接的提高...原创 2009-08-20 16:38:12 · 70 阅读 · 0 评论 -
Oracle隐藏索引和索引可用性
在我参与过的许多商店系统开发中,我发现在生产系统中创建一个索引并不需要经过详细的论证,甚至连应用程序代码也没有检查就创建了,大多数时候都是靠个人经验和感觉行事的,人们往往只会思考与创建索引有关的列是否会受到影响,完全靠临场反应,到最后数据库中往往有上百个索引创建了但可能从未使用过,或对SQL执行性能有负面影响。作为一名DBA,我们有责任找到并清除这些闲置的以及对性能有负面影响的索引。但我们从哪里开...原创 2009-09-03 10:16:04 · 324 阅读 · 0 评论 -
Oracle 9i在AIX上的性能调整 -- 内存篇
内存访问的冲突出现在当进程申请的内存超过系统的物理内存总量时,为了处理这种情况,系统将程序与数据在内存和硬盘间进行交换。控制内存交换操作(Paging)大量的内存交换操作会极大地影响系统的性能,尤其是在当数据库文件创建在文件系统上时(JFS and JFS2)。在这种情况下经常访问的数据,即在SGA中存在,也同样在文件的缓存中存在。这种相同的数据在内存中缓存两次的情况,会降低内存的使用效率,从...原创 2011-01-19 23:29:39 · 105 阅读 · 0 评论 -
enq: TX - row lock contention
Article by Rampant Author Brian CarrThis is indicative of a session waiting for a row lock held by another session; the amount of wait time associated with this wait event is excessive and can b...原创 2011-02-25 16:24:19 · 124 阅读 · 0 评论 -
深度分析数据库的热点块问题(latch: cache buffers chains)
热点块的定义数据库的热点块,从简单了讲,就是极短的时间内对少量数据块进行了过于频繁的访问。定义看起来总是很简单的,但实际在数据库中,我们要去观察或者确定热点块的问题,却不是那么简单了。要深刻地理解数据库是怎么通过一些数据特征来表示热点块的,我们需要了解一些数据库在这方面处理机制的特性。数据缓冲区的结构我们都知道,当查询开始的时候,进程首先去数据缓冲区中查找是否存在查询所需要的数据块...原创 2010-11-28 07:35:44 · 187 阅读 · 0 评论 -
相关重做的等待事件
晶晶实验十二 相关重做的等待事件 一,下面共描述了12个直接相关日志的等待事件,但只有前面几个是值得注意的. 1,log file parallel write 当日志缓存到日志文件时,这是一个主要的等待事件.虽然这个时间的名字中有"并行"(parallel)字样,但即使日志缓存并没有使用并行写,因日志缓存的写出而造成的等待仍然是此等待事件. 我们可以通过v$system_...原创 2010-12-01 11:07:58 · 103 阅读 · 0 评论 -
详述逻辑读
这篇实验讨论下数据的读写过程. 我们都知道,数据块是oracle最基本的读写单位,但用户所需要的数据,并不是整个块,而是块中的行,或列.当用户发出SQL语句时,此语句被解析执行完毕,就开始了数据的抓取阶段,在此阶段,服务器进程会先将行所在的数据块从数据文件中读入buffer cache,这个过程叫做物理读.物理读,每读取一个块,就算一次物理读.当块被送进buffer cache后,并不能立...原创 2010-12-01 11:13:29 · 117 阅读 · 0 评论 -
Oracle中优化SQL语句执行的原则
1。已经检验的语句和已在共享池中的语句之间要完全一样 2。变量名称尽量一致 3。合理使用外联接 4。少用多层嵌套 5。多用并发 语句的优化步骤一般有: 1。调整sga区,使得sga区的是用最优。 2。sql语句本身的优化,工具有explain,sql trace等 3。数据库结构调整 4。项目结构调整 写语句的经验: ...原创 2010-12-03 15:12:19 · 77 阅读 · 0 评论 -
Oracle性能调整与优化一
Oracle性能调整是一个范围比较广且有点复杂的主题,普通DBA面对的最大的问题是从哪里开始以及该做些什么。你知道的所有信息可能是有人(一个用户)报告了一个关于应用程序或查询性能下降的问题,当你面对这样的问题时该从何下手呢?Oracle的调整方法对那些已经取得了Oracle 8i性能调整认证考试的人而言,有一个试验区域实验Oracle的调整方法,当Oracle 9i发布时Oracle强调了...原创 2009-07-26 23:30:50 · 284 阅读 · 0 评论 -
Oracle数据库设计提升性能的五条法则
众所周知,数据库设计的好坏直接关系到数据库运行的效率。根据笔者的经验,对于提升数据库性能来说,合理的数据库设计,比升级服务器的硬件配置,还要来的有效。但是,笔者无论是在跟同事合作,又或者是在论坛上跟相关同行交流的时候,总是会发现有些人有一些不好的数据库设计习惯,影响了数据库的性能,增加了数据库管理员的工作量。笔者认为,为了提升数据库的性能,在Oracle数据库设计的时候,要做到五条法则。一...原创 2009-07-26 23:12:01 · 108 阅读 · 0 评论 -
oracle 常见等待事件及处理方法
我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象。v$session_wait的p1、p2、p3告诉我们等待事件的具体含义,根据事件不同其内容也不相同,下面就一些常见的等待事件如何处理以及如何定位热点对象和阻塞会话作一些介绍。 <1> db file scattered read DB 文件分...2009-12-10 17:39:18 · 355 阅读 · 0 评论 -
Oracle语句优化30个规则详解
1. 选用适合的Oracle优化器 Oracle的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(...原创 2009-01-01 21:51:32 · 64 阅读 · 0 评论 -
ORACLE索引与高性能SQL介绍
[size=large]什么是索引索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。使用索引的目的加快查询速度减少I/O操作消...原创 2009-07-12 21:52:04 · 192 阅读 · 0 评论 -
调整缓冲区高速缓存(Buffer Cache)的性能
[size=medium]调整缓冲区高速缓存(Buffer Cache)的性能Buffer cache由数据块组成。1. Buffer cache的工作原理LRU列表:MRU………………. LRU。(全表扫描FTS放在LRU端。)缓冲区块的状态:Free、Pinned、Clean、Dirty。Dirty List或Write List(写列表)。数据...原创 2009-07-12 21:55:00 · 242 阅读 · 0 评论 -
分析数据库性能的SQL
[size=medium]--用于查看哪些实例的哪些操作使用了大量的临时段SELECT to_number(decode(SID, 65535, NULL, SID)) sid,operation_type OPERATION,trunc(EXPECTED_SIZE/1024) ESIZE,trunc(ACTUAL_MEM_USED/1024) MEM, trunc(MAX_MEM...原创 2009-07-12 22:10:43 · 104 阅读 · 0 评论 -
oracle性能优化心得
[size=medium]很多的时侯, 做Oracle DBA的我们,当应用治理员向我们通告现在应用很慢、数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下手,因为我们认为数据库的各种命种率都是满足Oracle文档的建议。实际上如今的优化己经向优化等待(waits)转型了,实际中性能优化最根本的出现点也都集中在IO,这是影响性能最主要的方面,由系统...原创 2009-07-12 22:19:42 · 98 阅读 · 0 评论 -
如何优化数据库的性能
1、 硬件调整性能 最有可能影响性能的是磁盘和网络吞吐量,解决办法 扩大虚拟内存,并保证有足够可以扩充的空间;把数据库服务器上的不必要服务关闭掉把数据库服务器和主域服务器分开把SQL数据库服务器的吞吐量调为最大在具有一个以上处理器的机器上运行SQL2、 调整数据库若对该表的查询频率比较高,则建立索引;...原创 2009-07-16 22:49:42 · 113 阅读 · 0 评论 -
关于SGA设置的一点总结
本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其他应用请酌情考虑。写这个也是因为近来这种重复性的问题发生的太多所导致的。 首先不要迷信STS、OCP SG以及某些专家给出的任何建议、内存百分比的说法。基本掌握的原则是:l data buffer 通常可以尽可能的大l shared_pool_size 要适度l ...原创 2009-07-16 23:05:57 · 150 阅读 · 0 评论 -
不要让临时表空间影响数据库性能
在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库是如何处理的呢? 通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。在这个程序全局区...原创 2009-07-21 16:49:07 · 437 阅读 · 0 评论 -
Oracle性能调整的要点之SGA
一、Shared pool tunningShared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。Gets:(parse)在namespace中查找对象的次数;...原创 2009-07-26 23:09:22 · 129 阅读 · 0 评论 -
包含IN子查询的SQL语句的优化
当SQL语句中包含in语句时,有时候会极大的影响性能,我们可以把in子查询用exists子查询或外连接替代:例子如下: 1.SQL语句中包含IN子查询:SQL> select * from servers s 2 where s.srvr_id = 3333333 or 3 s.srvr_id in (select t.srvr_id 4 ...原创 2010-12-09 11:10:33 · 446 阅读 · 0 评论