前台等待事件 oracle,Oracle等待事件之buffer busy waits

产生原因

官方定义:

This wait happens when a session wants to access a database block in the buffer cache but it cannot as the buffer is "busy". The two main cases where this can occur are:

Another session is reading the block into the buffer

Another session holds the buffer in an incompatible mode to our request

模拟等待

创建测试表并插入数据:

SQL> create table tb1 (id int ,name varchar2(10));

Table created.

SQL> insert into tb1 values (1,'scott');

1 row created.

SQL> insert into tb1 values (2,'tom');

1 row created.

SQL> commit;

Commit complete.

复制代码

会话1修改数据:

SQL> select userenv('sid') from dual;

USERENV('SID')

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

1

SQL> begin

for i in 1..100000 loop

update tb1 set name='rose' where id=2;

commit;

end loop;

end;

/

复制代码

会话2修改数据:

SQL> select userenv('sid') from dual;

USERENV('SID')

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

27

SQL> begin

for i in 1..100000 loop

update tb1 set name='john' where id=1;

commit;

end loop;

end;

/

复制代码

在会话3查看等待情况:

--定位到造成等待的SQL

SQL> SELECT g.inst_id,g.sid,g.serial#,g.event,g.username,g.sql_hash_value,s.sql_fulltext

FROM gv$session g,v$sql s

WHERE g.sql_hash_value = s.hash_value and username='HR' and event='buffer busy waits';

INST_ID SID SERIAL# EVENT USERNAME SQL_HASH_VALUE SQL_FULLTEXT

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

1 1 7 buffer busy waits HR 401484711 UPDATE TB1 SET NAME='rose' WHERE ID=2

1 27 49 buffer busy waits HR 2040921087 UPDATE TB1 SET NAME='john' WHERE ID=1

--定位到热点快

SQL> select event,sid,p1,p2,p3 from v$session_wait_history where event='buffer busy waits'

EVENT SID P1 P2 P3

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

buffer busy waits 1 4 5471 1

buffer busy waits 1 4 5471 1

buffer busy waits 1 4 5471 1

buffer busy waits 1 4 5471 1

buffer busy waits 1 4 5471 1

buffer busy waits 27 4 5471 1

buffer busy waits 27 4 5471 1

buffer busy waits 27 4 5471 1

buffer busy waits 27 4 5471 1

buffer busy waits 27 4 5471 1

10 rows selected.

--P1=file#

--P2=block#

--定位到块所属的段

SQL> SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, A.PARTITION_NAME FROM DBA_EXTENTS A WHERE FILE_ID = 4 AND 5471 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;

OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME PARTITION_NAME

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

HR TB1 TABLE USERS

复制代码

解决方法

As buffer busy waits are due to contention for particular blocks then you cannot take any action until you know which blocks are being competed for and why. Eliminating the cause of the contention is the best option. Note that "buffer busy waits" for data blocks are often due to several processes repeatedly reading the same blocks (eg: if lots of people scan the same index) - the first session processes the blocks that are in the buffer cache quickly but then a block has to be read from disk - the other sessions (scanning the same index) quickly 'catch up' and want the block which is currently being read from disk - they wait for the buffer as someone is already reading the block in.

The following hints may be useful for particular types of contention - these are things that MAY reduce contention for particular situations:

Block TypePossible Actionsdata blocksEliminate HOT blocks from the application. Check for repeatedly scanned / unselective indexes. Change PCTFREE and/or PCTUSED. Check for 'right- hand-indexes' (indexes that get inserted into at the same point by many processes). Increase INITRANS. Reduce the number of rows per block.

segment headerIncrease of number of FREELISTs. Use FREELIST GROUPs (even in single instance this can make a difference).

freelist blocksAdd more FREELISTS. In case of Parallel Server make sure that each instance has its own FREELIST GROUP(s).

undo headerAdd more rollback segments.

参考: WAITEVENT: "buffer busy waits" Reference Note (Doc ID 34405.1)

欢迎关注我的公众号,一起学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win8消费者预览版Chrome无法设置默认浏览器

核心提示:在Windows 8消费者预览版中Chrome无法设置默认浏览器该怎么办?在这里就来告诉你解决的方法! 虽然说IE10很优秀,但萝卜青菜各有所爱,例如Win8迷就喜欢谷歌的Chrome浏览器,各种同步!在Windows 8消费者预览版中…

oracle有人用过fra吗,FRA(闪回恢复区)

1、闪回恢复区简介闪回恢复区可以集中存储所有与恢复相关的文件。FRA可以使用本地附加的存储、Oracle的群集文件系统(Cluster FileSystem,简写为OCFS)或Oracle 10g中新的自动存储管理(ASM)特性。2、闪回恢复区可包含的文件类型(1) 归档的重做日志(2) 控制文件(3) 控制文件自动备…

谷歌Chrome浏览器发布10年成霸主

谷歌chrome浏览器发布10年成霸主 9月3日消息,据The Verge报道,谷歌于2008年9月2日首次发布了Chrome浏览器。作为“浏览器的全新体验”,Chrome首次推出了谷歌网络漫画,标志着该公司第一款网络浏览器问世。 谷歌Chrome浏览器发布1…

oracle服务端安装和下载,oracle 11g 服务端下载地址及安装说明

Oracle 11g 服务端的安装步骤 简介 本文主要介绍 Oracle 11g 服务端的安装步骤,在介绍之前说明以下几点: 1. 所安装的服务器是本机的虚拟机,操作系统为 Windows Server 2019: 2. 以下 ...Oracle 11g服务端的安装和配置1.双击Oracle11g_database安装目录下的Setup.exe. 2.选…

xx Chrome浏览器市场份额下滑

xx chrome浏览器市场份额下滑 谷歌浏览器继续成为世界上排名第一的桌面浏览器,尽管上个月份额小幅下降,而新版Windows 10默认的微软edge浏览器则努力提高市场份额。就市场份额而言,谷歌浏览器是61.69%,而微软或多或少已经停止使用…

linux系统使用小端内存,linux进程内存管理

1.数据的内部存储大端:起始地址存放数据的高位小端:起始地址存放数据的低位大端小端是由处理器的体系结构决定的,不是操作系统。测试方法:点击(此处)折叠或打开#include int main(){int a0x12345678;char *pNULL;p&a;if(*p 0…

internet explorer浏览器市场份额仍超Chrome和Firefox

internet explorer浏览器市场份额仍超Chrome和Firefox 很多人并不知道 Microsoft Edge 是个什么浏览器,原因很简单,目前该浏览器仅支持 Windows 10 操作系统,而且 Edge 也是随 Windows 10 的发布才首次出现在人们的视野当中。微软对其寄予厚…

linux如何挂载nfs目录,linux – NFS导出已经挂载NFS的目录(在服务器上)

我有一个NFS服务器,A,共享一个文件夹. B正在安装文件夹. B也在分享该文件夹.但是C无法安装它. C上的错误是:mount.nfs: 192.168.0.1:/export/myfolder Failed,reason given by server: Permission denied在B上,/ var / log / messages中的错误是Aug 17 15:21:21 B m…

chrome浏览器无法加载百度网页启动组件怎么办

chrome浏览器无法加载百度网页启动组件怎么办 chrome浏览器无法加载百度网页启动组件怎么办?chrome浏览器百度打不开提示无法加载百度网页启动组件怎么办?使用chrome浏览器打开百度的时候总是无法访问,提示“无法加载百度网页启动组件”,该怎么解决这…

linux线程同步教程,多线程同步

1.linux使用多线程同步的方法1)互斥锁:当线程A锁定了互斥变量时,线程B再去锁定时就会被挂起,直到A解锁。注意:当线程要不断的去轮询检查某个条件以判断是否可以操作需同步的数据时,可使用条件变量提高效率。demo如下&a…

为什么谷歌浏览器打不开 Google Chrome打不开解决方法

核心提示:很多用户反映有谷歌浏览器打不开状况,下面小编就为大家分享一个解决方法。 谷歌浏览器它是又Google(谷歌)公司开发的免费网页浏览器。它在全球拥有大量用户群体。很多用户反映有谷歌浏览器打不开状况,下面小编就为大家分享一个解决…

linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘

[linux学习笔记]之一:ubuntu ch340调试备忘已有 2183 次阅读2016-11-8 21:52|个人分类:linux最近迷上了Linux,入了一块板。电脑使用win7ubuntu 双系统,可是调试的时候就麻烦了,ubuntu下写好sd卡镜像,调试的时候还要切换…

Chrome 69正式版浏览器遭批 恢复完整显示域名

Chrome 69正式版浏览器遭批 恢复完整显示域名 日前,谷歌发布了全新的Chrome 69正式版浏览器,带来了全新的材料设计等特性,也算是庆祝chrome浏览器10周年。不过,新版Chrome隐藏域名中的“www”遭到了用户批评,并认为会…

微软协助谷歌开发ARM平台Chrome浏览器

微软协助谷歌开发ARM平台chrome浏览器 美国科技博客9to5xx发现,,近日,微软的一些工程师正在为谷歌Chrome浏览器贡献代码,帮助其成为ARM平台上的原生Windows应用。 此外,高通高管上月表示,高通也正努力将原…

嵌入式linux 配置usb otg,嵌入式linux系统环境下USB设备的驱动实现

0 引言嵌入式linux系统环境以其易于移植裁减、内核小、效率高、完整、原代码开放及性能优异等特点,在嵌入式领域得到了非常广泛的应用。Linux的USB设备端的源代码中主要有USB device的海量存储设备、串口设备、网络设备等设备驱动程序及各种USB device控制器芯片的…

android Chrome浏览器快捷键

核心提示:在本教程中将为你介绍android Chrome浏览器快捷键! 众所周知,Google Android系统中内置的网页浏览器是桌面版Chrome浏览器的简化版本Chrome Lite,同样采用了开源的Webkit核心,安卓中文网整理了适用于搭载实体键盘G1的Ch…

linux 裸设备使用,linux裸设备使用

一、配置:RHAS4:1,将硬盘分区:#fdisk -l#fdisk /dev/sdb2,绑定:方式一:#raw /dev/raw/rawN /dev/sdbN#raw -qa#vi /etc/rc.localraw /dev/raw/rawN /dev/sdbN方式二:#vi /etc/sysconfig/rawdevi…

在iOS设备上如何使用Chrome浏览器的书签

核心提示:谷歌Chrome浏览器iOS版正式登陆AppStore。不过有很多人安装以后没有找到书签工具,以为没有。其实不然。iOS设备上的Chrome浏览器是内置有书签工具的,和Safari相比,不是很明显。只有搭配相应的App时,才能体现出…

linux p7zip密码,linux下7zip使用方法

现在流行的压缩软件有WIN平台下的winrar, winzip。Linux下则是bzip2, gzip等等。现在有一个叫做7z的压缩软件,号称是目前压缩比最大的软件。WIN平台下使用的是图形界面,使用方法和winrar差不了多少。但是在Linux下,7z可以使用的是命令行方式。…

下载腾讯视频里的视频_手机腾讯视频如何升级新版本

软件是否好用,还得大家下载腾讯视频安装才知道。本文分享怎么下载腾讯视频里的视频_手机腾讯视频如何升级新版本腾讯视频升级新版本。腾讯视频电影频道拥有大量高清在线电影资源,热门高清电影、好评电影、电影预告都可以在线观看,不去电影院也…