动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.ORACLE 乱码问题的解决.
.一个控制文件被损坏,如何启动?.
.如何在Windows 2000下将Oracle完.
.配置shark与oracle的连接.
.Oracle9i 数据库的设计指引全集(.
.了解Oracle数据库中的系统参数.
.给Oracle数据库打补丁.
.ORACLE PL/SQL 基础2 (游标的学习.
.实用心得:Oracle中监控索引的使.
.性检查的简单快捷方法(利用Post方.
.在ORACLE中移动数据库文件.
.中间件体系结构之掌握多层调整.
.Connect To Oracle DataBase.
.修改oracle的internal口令.
.oracle数据库的启动与关闭.
.Oracle数据库中SQL语句性能调整原.
.OracleSupport全球解答的最hot的.
.Oracle 9i 视图.
.Oracle展示综合服务平台.
.主题数据库的特征是什么?.

Oracle数据库buffer busy wait等待事件

发表日期:2008-4-17 |


当会话意图访问缓冲存储器中的数据块,而该数据块正在被其它会话使用时产生buffer busy waits事件。其它会话可能正在从数据文件向缓冲区存储器度曲同样的数据块,或正在缓冲存储器中对其进行修改。

为了确保读取器会话拥有与获得所有更改或无更改的数据块一致的映像,正在修改该数据块的会话在其标题中标记一个标志,让其他会话知道有一个更改正在进行而等候更改的的完成。

视图v$waitstat不是OWI的组件,但其为没一类缓冲区提供了有用的等待统计。遭遇buffer busy等待事件最常见的缓冲区类为块、段标题、撤消块、撤消标题。

显示一个查询v$waitstat视图的采样输出:

具体示例如下:

SELECT * FROM V$waitstat WHERE COUNT>0;

CLASS COUNT TIME

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

data block 4170082 1668098

segment header 116 98

undo header 916 1134

undo block 2087 1681

1、等待参数

buffer wait busy的等待参数描述如下:

P1 在Oracle 8及其以后版本的数据库里,P1显示询问数据块驻留的绝对文件号。

P2 进程需要访问的实际块号。

P3 在Oracle10g以前的版本中,着是表示等待原因的数字。Oracle在内河代码中在

多个地方用不同的原因码提交。该原因码取决于版本。

2、等待时间

100厘秒或1秒。

· Oracle会话正在等待钉住一个缓冲区。必须在读取或修改缓冲区前将它钉住。在任何

时刻只有一个进程可以钉住一个缓冲区。

·buffer busy waits表明读/读、读/写、写/写争用。

·采取的适当措施取决于P3参数中的原因码。

在SGA中读取或修改缓冲区的会话必须首先获取cache buffers chains锁存器,并且遍历

这个缓冲区链,直到他发现必需的缓冲区头。然后,他必须以共享模式或独占模式获取

一个缓冲区锁或缓冲区头上的pin,这取决于他计划的操作。一旦缓冲区头被钉住,会话

就释放cache buffers chains锁存器,并在缓冲区自身上执行计划的操作。如果无法获

取一个pin,会话就在buffer busy waits等待事件上等待。这种等待时间不会应用于在

会话的私有PGA中执行的读取或写入操作。

3、诊断的原因、诊断和动作

·表示为什么进程无法获得一个缓冲区pin的主要原因码。

·buffer busy waits等待时间需要的块类。

·和buffer busy waits时间相关的SQL语句。

·缓冲区所属的段。

--查找等待块类型

SELECT 'segment Header' CLASS,

a.Segment_Type,

a.Segment_Name,

a.Partition_Name

FROM Dba_Segments a,

V$session_Wait b

WHERE a.Header_File = b.P1

AND a.Header_Block = b.P2

AND b.Event = 'buffer busy waits'

UNION

SELECT 'freelist Groups' CLASS,

a.Segment_Type,

a.Segment_Name,

a.Partition_Name

FROM Dba_Segments a,

V$session_Wait b

WHERE b.P2 BETWEEN a.Header_Block + 1 AND (a.Header_Block + a.Freelist_Groups)

AND a.Header_File = b.P1

AND a.Freelist_Groups > 1

AND b.Event = 'buffer busy waits'

UNION

SELECT a.Segment_Type || ' Block' CLASS,

a.Segment_Type,

a.Segment_Name,

a.Partition_Name

FROM Dba_Extents a,

V$session_Wait b

WHERE b.P2 BETWEEN a.Block_Id AND a.Block_Id + a.Blocks - 1

AND a.File_Id = b.P1

AND b.Event = 'buffer busy waits'

AND NOT EXISTS (SELECT 1

FROM Dba_Segments

WHERE Header_File = b.P1

AND Header_Block = b.P2);

◆ 带有原因码130的数据块(类#1)争用

如果buffer busy waits的等待事件主要集中在数据块(类#1)上,并且原因码130,则

表明应用程序运行在同一时刻查询相同数据集的多个会话,采用如下三件事最小化问题:

§减少并发级别或该表在运行现成直接内分区工作的方法。

§优化SQL语句,减少物理读取和逻辑读取的数量。

§增加freeLists和freeList Groups的数量。

◆ 带有原因码220的数据块(类#1)争用

多个会话同时在相同的对象上DML。采用如下三件事最小化问题:

减少并发级别或改变划分部分的方法。

减少块中行的数量。

在另一个具有较小块尺寸的表空间中重新构建对象(Oracle 9i或以上版本)。

可以使用较大的PCTFREE重新构建表或索引。可以使用命令改变表以最小化每个块的最

小行数:

ALTER TABLE table_name MINIMIZE RECORDS_PER_BLOCK;

从Oracle 9i开始,可以在另外一个具有较小的块尺寸的表空间中移动或重新构建对象。

虽然这些动作可以最小化buffer busy waits问题,但是他们无疑将增加全表扫描时间

和磁盘空间利用率。常言道,世上没有免费的午餐。

◆ 数据段头(类#4)的争用

如果buffer busy waits的等待时间主要集中在数据段头(即表或索引段头,并且不是

插销段头)上,这意味着数据库中的一些表或索引具有高段头活动。如下解决问题:

增加已经确定对象的进程FreeLists和FreeList Groups的数量。

确保PctFree和PctUsed之间内的间隙不会太小。

确保下一个区尺寸不会太小。

如果不希望混浠FreeLists和FreeList Groups,可以依靠自动段空间管理(Automatic

Segment Space Management,ASSM)特性,以分散从插入语句中引入的数据(9i特性)。

◆ 撤消段都(类#17)的争用

如果buffer busy waits等待时间主要集中在撤消段头上,这表明数据库中的回滚段

过少,或者他们的尺寸太小,从而造成对段头的频繁更新。如果在Oracle 9i中引入的系

统管理撤消,就不需要处理这种问题,因为Oracle将根据需要增加额外的撤消段。

◆ 撤消块的争用(类#18)

如果buffer busy waits等待时间主要集中在撤消块上,这通常意味着多个并发会话同

时查询更新的数据。当应用程序可以在不同的时间内查询和DML时,这种问题就不会存在。

◆ 系统级诊断

--文件等待次数

SELECT b.File_Id,

b.File_Name,

a.COUNT

FROM X$kcbfwait a,

Dba_Data_Files b

WHERE a.Indx = b.File_Id-1

AND a.COUNT > 0

ORDER BY a.COUNT;

上一篇:详细讲解Oracle数据库管理员认证方法 人气:808
下一篇:带你快速了解wait等待事件及其处理方法 人气:722
浏览全部Oracle的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号