- 浏览: 1019834 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
晶晶实验十二 相关重做的等待事件
一,下面共描述了12个直接相关日志的等待事件,但只有前面几个是值得注意的.
1,log file parallel write
当日志缓存到日志文件时,这是一个主要的等待事件.虽然这个时间的名字中有"并行"(parallel)字样,但即使日志缓存并没有使用并行写,因日志缓存的写出而造成的等待仍然是此等待事件.
我们可以通过v$system_event来了解下某一个阶段内,此等待事件的平均等待时间.通过此时间值,来评估我们的日志I/O是否正常.有资料介绍当log file parallel write的平均等待时间大于10毫秒时.有可能就表明着日志的吞吐量缓慢.我认为这只是一个参考值,在不同的系统上要根据不同的情况来决定.记录一些在正常情况下log file parallel write等待事件的平均等待时间,当出现问题后,以此时间作为是否有问题的标准.这种方法也是可取的.
当日志I/O确实有问题时,减少重做产生的数量,确实能够缓解log file parallel write的等待时间.但有时,重做信息的数量是无法减少的.根据情况,将日志I/O转移到更快速的磁盘上,也是解决问题的方法之一.
日志缓存的大小,有时候也会对此等待事件产生影响.如果你的日志缓存更大,会降低LGWR刷新缓存到磁盘的次数,增大日志的缓存,也会有助于缓解此等待事件.但过大的日志缓存,有可能会造成LGWR间歇性的拥堵.因为LGWR被触发的条件之一是日志缓存满1/3,如果日志缓存过大,1/3的日志缓存数量可能过多,每次LGWR被触发,不得不写大量数据,这造成LGWR间歇性的停顿与拥堵,这也会增加此等待事件的等待时间.我们可以通过设置隐藏参数_log_io_size来改变日志缓存满1/3才触发LGWR的阙值.通过设置此参数,我们即可以拥有较大的日志缓存,又避免了LGWR间歇性的停顿或拥堵.
我没有在生产库中使用过这个参数,因为他毕竟是一个隐藏参数.虽然据说他不会带来什么bug.在我的测试机上,通过调节这个参数,确实可以对性能略有提升.但这些都是为数据库的"微调".不可能带来大幅度的性能提升.
LGWR 在刷新缓存时,需要redo allocation和redo writing闩,并且LGWR需要等待一些redo copy 闩的完成.因此,如果这些闩的争用较高,则不要减少_log_io_size此隐藏参数,因为减少它,将会使LGWR更为频繁的刷新缓存.这会进一步加剧这3个闩的争用.减缓LGWR完成工作的速度.
**小小结:日志缓存到底应该设置为多大??_log_io_size参数的值应该定为多少??这没有一个统一的标准,只有通过多做测试才能决定.
2,log file sync
此等待事件用户发出提交或回滚声明后,等待提交完成的事件,提交命令会去做日志同步,也就是写日志缓存到日志文件, 在提交命令未完成前,用户将会看见此等待事件,注意,它专指因提交,回滚而造成的写缓存到日志文件的等待.当发生此等待事件时,有时也会伴随log file parallel write.因为此等待事件将会写日志缓存,如果日志的I/O系统较为缓慢的话,这必将造成log file parallel write 等待.当发生log file sync等待后,判断是否由于缓慢的日志I/O造成的,可以查看两个等待事件的等待时间,如果比较接近,就证明日志I/O比较缓慢或重做日志过多,这时,造成log file sync的原因是因为log file parallel write,可以参考解决log file parallel write的方法解决问题,如果log file sync的等待时间很高,而log file parallel write的等待时间并不高,这意味着log file sync的原因并不是缓慢的日志I/O,而是应用程序过多的提交造成的.
3,log buffer space
服务器进程生成重做记录的速度快过LGWR写出重做记录的速度,因而发生等待.日志I/O缓慢是log buffer space等待的主要原因之一.还有一点,如果日志缓存区过小,也容易出现此等待事件.将日志缓存设置的大一些,对于缓解此事件的等待会有帮助.但是,过大的日志缓存,又会降低LGWR刷新缓存的频率,这可能会使提交时必须刷新的缓存数量增多.从而造成log file sync等待.日志缓存具体应该设置为多大,这就多进行测试咯.不同的环境下,不可能有一个标准.为了缓解log buffer space等待事件,将日志缓存调节的比较大之后,可以通过_log_io_size参数来提高LGWR刷新缓存的频率.这样做既可以减少log buffer space的等待,也可以减少log file sync等待.但这样的隐藏参数 应该小心使用.
4,log file switch(checkpoint incomplete)
在日志切换时,会完成一个检查点操作,如果此检查点完成的过于缓慢,就会造成此事件的等待,检查点为什么会缓慢呢?可能是buffer cache太大因此容纳的脏块太多,DBWR进程太少,调整检查点频率的参数设置频率太低等原因造成的.
5,log file switch(archiving needed)
在日志切换时,下一日志文件还没被归档完成,此时所有的数据库DML操作都停止下来,等待下一日志文件可用,至于原因,很简单,归档进程太慢或日志切换太快,再问为什么切换太快?日志文件太小或生成的重做太多.
6,log file switch(clearing log file)
这发生在DBA发布alter system clear log file命令.且LGWR正需要切换到被清空的日志文件.等待时间是1秒.
7,log file switch completion
当一个日志文件满了,oracle要打开另一个日志文件,写完上一日志文件,准备好下一日志文件,这之间的等待就是此等待事件了,简单点说,就是为了完成日志文件切换而发生的等待.
8,switch log file command
执行日志文件切换命令的时候等待日志文件切换完成.超时时间为5秒.
9,log switch/archive
当DBA手动输入命令alter system archive log change<SCN>时,可能会等待此事件.
10,log file sequential read
等待从日志文件中读,一般ARC进程会遭遇此事件,如果P3参数为1,证明等待发生在读日志文件头,否则,P3代表要读出的日志块的数量.
11,log file single write
日志文件写等待,注意,这里所指的写,并不是从日志缓存写到日志文件,这里的写并不涉及日志缓存,此事件只代表写日志文件头时发生的等待.有两种情况日志文件头被写:当添加新的成员文件或日志序列号增加.应对日志文件尽量使用裸设备.或避免将日志文件放在同一磁盘上,以减少此事件产生的可能.
12,LGWR wait for redo copy
LGWR将要写一组日志块,但它必须等待直到服务器进程完成任意当前的拷贝操作,这些拷贝操作影响将要被写出的缓存.
发表评论
-
enq: TX - row lock contention
2011-02-25 16:24 2390Article by Rampant Author Brian ... -
Oracle 9i在AIX上的性能调整 -- 内存篇
2011-01-19 23:29 1189内存访问的冲突出现在当进程申请的内存超过系统的物理内存总量时, ... -
包含IN子查询的SQL语句的优化
2010-12-09 11:10 6806当SQL语句中包含in语句时,有时候会极大的影响性能,我们可 ... -
Oracle中优化SQL语句执行的原则
2010-12-03 15:12 12741。已经检验的语句和已在共享池中的语句之间要完全一 ... -
详述逻辑读
2010-12-01 11:13 1273这篇实验讨论下数据的读写过程. 我们都知道,数据块是o ... -
深度分析数据库的热点块问题(latch: cache buffers chains)
2010-11-28 07:35 4570热点块的定义 数据库 ... -
oracle 常见等待事件及处理方法
2009-12-10 17:39 1579我们可以通过视图v$session_wait来查看系统当前的等 ... -
Oracle常见等待事件介绍
2009-12-10 17:36 1263Oracle的等待事件是衡量Oracle运行状况的重要依据 ... -
Oracle隐藏索引和索引可用性
2009-09-03 10:16 1042在我参与过的许多商店系统开发中,我发现在生产系统中创建一个索引 ... -
ORACLE SQL性能优化 (下)
2009-08-20 16:38 103831. 强制索引失效如果两个或以上索引具有相同的等级,你可以强 ... -
利用Oracle执行计划机制提高查询性能
2009-07-27 00:17 1093消耗在准备利用Oracle执行计划机制提高查询性能新的SQL语 ... -
Oracle性能调整与优化(二)
2009-07-26 23:48 1129为了能取得圆满成功,我将涉及到一些预备步骤,它们将在查看发生了 ... -
Oracle性能调整与优化一
2009-07-26 23:30 1105Oracle性能调整是一个范围比较广且有点复杂的主题,普通DB ... -
Oracle数据库设计提升性能的五条法则
2009-07-26 23:12 1059众所周知,数据库设计的好坏直接关系到数据库运行的效率。根据笔者 ... -
Oracle性能调整的要点之SGA
2009-07-26 23:09 1088一、Shared pool tunning Shared p ... -
不要让临时表空间影响数据库性能
2009-07-21 16:49 1141在Oracle数据库中进行排 ... -
关于SGA设置的一点总结
2009-07-16 23:05 997本总结不针对特例,仅对服务器只存在OS + ORACLE 为例 ... -
如何优化数据库的性能
2009-07-16 22:49 22291、 硬件调整性能 最 ... -
oracle性能优化心得
2009-07-12 22:19 1282很多的时侯, 做Oracle DBA的我们,当应用治理员向我 ... -
分析数据库性能的SQL
2009-07-12 22:10 1006--用于查看哪些实例的哪些操作使用了大量的临时段 SELEC ...
相关推荐
对于特定的等待事件,例如 db file scattered read,它通常与全表扫描相关。在进行全表扫描时,数据会分散读入 buffer cache。高频率的 db file scattered read 可能暗示需要对相关表创建合适的索引以优化查询性能。...
- **定义**:这两个等待事件与重做日志的写入有关。logfileparallelwrite表示在多个线程或进程中并行写入重做日志文件;logfilesync则是在提交事务时发生的同步写入操作。 - **影响**:这些事件可能导致写入性能瓶颈...
为深入理解这些等待事件,建议阅读相关参考文章,特别是关于User I/O类型的等待事件,因为用户I/O问题也可能间接影响到System IO和日志操作。通过监控和分析等待事件,可以发现性能瓶颈,进而采取针对性的优化措施,...
Oracle数据库在运行过程中,会遇到各种等待事件,这些等待事件是数据库性能分析的重要线索,帮助DBA(数据库管理员)理解数据库的运行状况并优化性能。本文将深入解析Oracle中的常见等待事件,特别是其中的十大等待...
"30种Oracle常见的等待事件说明.zip_oracle"这个压缩包文件包含了一份详细的文档,解释了30个最常见的Oracle等待事件及其解决策略。以下是对这些等待事件的详细介绍: 1. **Redo Log Space**: 当事务需要写入重做...
1. **db file scattered read**:这种等待事件通常与全表扫描相关,表示数据分散在多个缓冲区中,可能是因为索引不足或不合适导致的。处理方法包括优化查询代码,尽量避免全表扫描,考虑增加合适索引,或者将小表的...
1. **Administrative** - 包括与数据库管理相关的等待事件。 2. **Application** - 由应用程序引发的等待事件,如行级锁等待。 3. **Cluster** - 在集群环境中发生的等待事件。 4. **Commit** - 在提交事务时的等待...
此外,AWR报告还涵盖了其他值得注意的定时和等待事件,如“Log file sync”等待,通常与日志写入速度慢有关;以及“Buffer busy waits”,可能提示数据一致性冲突或内存不足。 在排查CPU使用问题时,除了查看“CPU ...
- **主要等待事件分析**:重点分析那些对数据库性能影响较大的等待事件。 通过上述内容的学习,不仅可以帮助学员掌握Oracle数据库性能优化的基本技能,还能通过实战案例的分析,提高解决实际问题的能力。这对于DBA...
针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...
针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...
针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...
以下是一些常用的Oracle SQL脚本,用于获取关于数据库会话、等待事件、执行的SQL语句以及文件和块信息的相关知识: 1. **查询会话总体等待信息**: 这个脚本通过`V$SESSION`和`V$SESSION_EVENT`视图联合查询,可以...
1. **安装与集成**:首先,你需要下载并安装这个CTP包,然后在你的WPF项目中引用相关的DLL文件,以便在XAML设计视图中使用Ribbon控件。 2. **XAML语法**:在XAML文件中,你可以定义Ribbon的各个部分,如RibbonTab、...
针对数据库的启动和关闭、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手,深入研究相关技术,并...
本书针对数据库的启动和关闭、能数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题从基础知识入手,深入研究相关技术,并结合...
本书针对数据库的启动和关闭、能数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题从基础知识入手,深入研究相关技术,并结合...
本书针对数据库的启动和关闭、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、恨不能诊断与SQL优化等几大Oracle热点主题,从基础知识入手,深入研究相关技术,并...