千家信息网

Oracle local write wait等待事件

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,Note 1:TypicallyDBWR has to free up some buffers when you want to read something from the disk.Durin
千家信息网最后更新 2025年11月12日Oracle local write wait等待事件

Note 1

TypicallyDBWR has to free up some buffers when you want to read something from the disk.During this process there are chances that you will be waiting for your local buffer(i.e blocks dirtied/invalidated by your session) to be written to disk. Duringthis time the waits are shown as local write waits.

当你想从此盘读取数据,DBDW不得不清空一些buffer。在此过程中,可能会遇到等待你本地buffer写入磁盘(如脏块、失效的块)。

Note 2

Basically 'localwrite' wait happens (as the name indicates) when the session is waiting for itslocal (means writes pending because of its own operation) write operation.This could happen typically if the underlying disc has some serious problems(one of the member disk crash in RAID-05 - for example, or a controllerfailure). That is why I might have said ' you never see this wait in the normaldatabases!'. You may see this during (rarely) Truncating a largetable while most of the buffers of that table in cache. During TRUNCATEs thesession has to a local checkpoint and during this process, the session may waitfor 'local write' wait.

基本上'localwrite' wait 表示会话在等待自己的写操作。在磁盘发生严重问题时会发生(例如RAID 5的一个磁盘崩溃,或者磁盘控制器错误),这在正常的系统中极少发生,在TRUNCATE 一个大表而这个表在缓存中的时候,会话必需进行一个local checkpoint,这个时候会话会等待local session wait.

MOS 的文档:

Truncates Taking Too Long... [ID334822.1]

提到了这个等待事件。

1 Cause

Processes that involve temporary tablesbeing truncated and repopulated in multiple, concurrent batch streams maypresent this situation.

涉及到临时表被以并发多路并行形式truncaterepopulate,可能会出现此类情况。

The underlying problem is we have to writethe object's dirty buffers to disk prior to actually truncating or dropping theobject. This ensures instance recoverability and avoids a stuck recovery. Itseems at first glance perfectly reasonable to simply truncate a temporarytable, then repopulate for another usage. And then to do the temporarypoplulate/truncate operations in concurrent batches to increase throughput.

However, in reality the concurrenttruncates get bogged down as dbwr gets busy flushing those dirty block buffersfrom the buffer cache. You will see huge CI enqueue waits. The multipletruncate operations in concurrent streams absolutely kill throughput. This isspecially critical with large buffers.

2 Solution

In9.2.0.5 and higher, it may also help to make sure a "temp"table that is frequently truncated have storage defined so that itoccupies one extent. But this workaround is only available as long as theextent is no more than 50% the size of the buffer cache. In non-RACenvironments the table still has to be smaller than 50% of the buffercache, but it allows the table to have up to 5 extents before falling backto the old algorithm.

另外个例子(from internet):

一个数据仓库的系统,在AWR报告中出现靠前的等待时间为LOCAL WRITE WAITEq:RO Fast Object Reuse. 分析相关的语句为TRUNCATE一个中间表。RO队列的意义可以从V$LOCK_TYPE中检索到。

SQL> SELECT DESCRIPTION FROM V$LOCK_TYPE WHERE TYPE='RO';

DESCRIPTION

--------------------------------------------------------------------------------

Coordinates flushing of multiple objects

字面上的意思是协调清空多个对象。分析应用,该语句发生在ETL过程中,主要步骤为填充中间表,修改中间表,TRUNCATE中间表。在调度程序中有较多该流程的过程 .

TRUNCATE DROP TABLE的时候, ORACLE必须使DATA BUFFER中所有该对象的数据块失效或者刷新到磁盘,步骤为此时请求RO队列锁,找缓冲区中该对象的块,并使其无效化或者刷新到磁盘,然后释放RO锁,如果多个进程并发地进行TRUNCATE的时候,就会在RO队列上发生竞争,表现为等待事件Eq: RO fast object reuse. 如果TRUNCATE等待相关的块刷新到磁盘,就表现为等待时间local write wait.

这个问题的发生有两个原因:1 I/O2 并行TRUNCATE.

该问题不能通过增大BUFFER CACHE来解决,BUFFER CACHE 愈大,搜寻相关数据块的时间愈长。

处理的方法

1 可以对这种类型的中间表使用非默认块大小的表空间,在CACHE BUFFER中设定不同块大小的缓冲区。减小搜寻相关数据块的时间,降低竞争。

2 保证DBWn写入的效率。


磁盘 数据 时候 时间 对象 过程 问题 队列 事件 多个 大小 步骤 系统 缓冲区 语句 分析 竞争 缓冲 不同 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 维护网络安全空间秩序 新华软件开发商 公司代理服务器域名怎么查 教育局公司网络安全协议书 丽水桌面软件开发工具 表格数据库怎么保存 超图附加数据库失败 数据库删除学生信息的代码 汉寿天气预报软件开发 数据库程序设计结束语 快递打单服务器不可达是什么意思 服务器被黑客攻破可以拦截数据吗 民法典遇上网络安全 未来3年网络安全市场 怀旧服开一个服务器多少钱 安阳县法院网络安全 潢川软件开发有限公司 网络技术试验 静安区上门软件开发定制大概费用 多大才算大数据库 表观遗传文章投稿数据库 计算机网络技术第四版电子书 优学派服务器没反应怎么回事 曙光服务器有多少个内存卡槽 张家港运营网络技术市场价格 自动化行业大数据库 数据库指定列中数的和 幼儿园网络安全教育主题活动简报 网络安全产业融资 多大才算大数据库
0