用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
wwweducn的公告
<center><script language="javascript"> document.getElementById("Header1_HeaderTitle").outerHTML="<table><tr><td><a href='http://blog.csdn.net/wwweducn/' style='color:#ffffff;font-size:20pt'><b><font face='Monotype Corsiva' color=''>wwweducn(烟台大苹果)Blog</font></b></a></td></tr></table>"; </SCRIPT> <!-- google广告 --> <h3 align="left">特别推荐</h3> <!-- 内容广告for content --> <script type="text/javascript"><!-- google_ad_client = "pub-6914800521101529"; google_ad_width = 125; google_ad_height = 125; google_ad_format = "125x125_as"; google_ad_type = "text_image"; google_ad_channel = ""; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <script language="javascript" type="text/javascript" src="http://js.users.51.la/460834.js"></script> <noscript><a href="http://www.51.la/?460834" target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/460834.asp" style="border:none" /></a></noscript> </P> </center>
文章分类
BBS
两全其美
水木社区
blog博客
aprin的专栏
Casularm Blog
DBA-博客园
Everest的博客(RSS)
LileLTP-Java之路
SmallWhiteDragon
songshuweiba
俺老朱
分享Java快乐
北邮小硕
天外传音
我的google page
胡一刀
记忆人生
风中的飘絮
DataBase
ADP (Analyse, Design&Programmierung)
Akadia
Asktom
cnoug
Itpub
Ixora
Oracle example library
Tahiti
Friends'博客
十月天
小源
小白兔的家
蔡鸟的小窝
java学习
javafan
赛迪网
信息查询
IP Whois查询
万年历查询
很好呀-网址大全
时间校对
更多查询...
铁路时刻查询
存档

原创  db block gets和consistent gets的区别 收藏

buffer_gets=db block gets + consistent gets = LOGIC IO(逻辑读次数).

consistent gets : 通过不带for update的select 读的次数
db block gets : 通过update/delete/select for update读的次数.


consistent get : 在一致读模式下所读的快数,包括从回滚段读的快数。
db block gets : 在当前读模式下所读的快数,比较少和特殊,例如数据字典数据获取,在DML中,更改或删除数据是要用到当前读模式。

consistent gets :consistent_gets是从回滚段中读到的前映(或叫读取一致性影象), 看见的数据是查询开始的时间点的,所以若存在block在查询开始后发生了变化的情况,则必须产生 before image 然后读数据,这就是一致读的含义
查询就是表示 consistent gets (query mode),因为查询要保证所获取的数据的时间点的一致性,所以叫一致读,即使是从当前 buffer 获得的数据,也叫 consistent gets ,这仅仅表达一种模式一种期望,并不表示真实的是从 当前buffer 获得 还是从回滚段获取数据产生的 bufore image 。

db block gets : current mode , 不管这个块上的数据是否可能存在 before image ,也就是说不管是否存在回滚中数据可以 回滚,只看见当前最新块的数据,即使别人正在更新,也看见别人更新状态的数据,比如dml的时候就不需要看见别人更改前的数据,而是看见正在更改的,当然同时,若操作相同数据则被lock住。也就是说一次查询中看见的数据可能不在同一个时间点上,比如一个大的dml,当dml 开始更新一个非常大的表后,这个表更新的过程中,有一个进程去把该表末尾的一个记录更新了,然后这个大更新抵达该记录的时候会被阻塞的,若该进程事物提交,则大更新会覆盖该事务的更新,也就是说,这个大更新所看见的数据是当前的,不具有时间点的一致性,所以叫 current mode,个人认为db block gets这个词用的不好, 容易让人误解. 如果改成inconsistent gets可能会更准确一些
 

consistent gets
db block gets + consistent gets = logical io (as opposed to physical io). consistent gets are current mode gets. This might entail a reconstruction of the block with the undo (rollback) mechanism.

Number of times a consistent read was requested for a block.

db block gets
db block gets + consistent gets = logical io (as opposed to physical io). db block gets are current mode gets, blocks that are read as they are (even if these are being modified by another session)

Number of times a CURRENT block was requested.

发表于 @ 2006年12月05日 16:57:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:如何穿过防火墙连接oracle数据库 | 新一篇:system进程占用cpu(microsoft-ds,445端口)

  • 发表评论
  • 评论内容:
  •  
Copyright © wwweducn
Powered by CSDN Blog