楼主: xinjingcool

[Tips] 一些常用的动态性能视图(V$views)ER图及其说明

[复制链接]
招聘 : 系统架构师
论坛徽章:
372
双子座
日期:2015-08-18 12:18:21摩羯座
日期:2015-09-20 17:10:27秀才
日期:2015-09-21 09:46:16秀才
日期:2015-09-21 11:16:42秀才
日期:2015-10-08 17:57:58天枰座
日期:2015-10-28 18:28:29秀才
日期:2015-11-11 09:48:44秀才
日期:2015-11-11 10:07:14秀才
日期:2015-11-11 10:22:49秀才
日期:2015-09-11 10:43:06
11#
发表于 2005-8-15 18:22 | 只看该作者
Good, thanks, download

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2005-8-16 19:05 | 只看该作者
good job!! Is is useful for me.

使用道具 举报

回复
论坛徽章:
16
授权会员
日期:2005-11-01 10:49:02ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472011新春纪念徽章
日期:2011-02-18 11:43:322010年世界杯参赛球队:南非
日期:2010-05-12 11:08:572010新春纪念徽章
日期:2010-03-01 11:04:542009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2008-10-31 12:50:13生肖徽章2007版:狗
日期:2008-10-24 18:01:04奥运会纪念徽章:排球
日期:2008-10-24 13:30:01生肖徽章2007版:狗
日期:2008-10-20 14:41:16
13#
发表于 2005-8-17 13:42 | 只看该作者
不错啊

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2005-8-17 14:56 | 只看该作者
顶下.我喜欢.

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2005-8-24 11:15 | 只看该作者
真是好東西,謝謝囉

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2005-8-24 15:35 | 只看该作者

真是好东东

真是好东东

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2005-8-25 11:21 | 只看该作者
好东西
Thanks a lot

使用道具 举报

回复
论坛徽章:
35
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25劳斯莱斯
日期:2013-11-04 15:42:11奥迪
日期:2013-11-04 15:42:11福特
日期:2013-11-04 15:42:11比亚迪
日期:2013-11-02 11:33:55法拉利
日期:2013-11-10 17:40:262014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有对象
日期:2014-03-06 14:09:44马上有房
日期:2014-05-06 18:40:39
18#
发表于 2005-8-25 17:42 | 只看该作者
[[B]小结
从以上分析可以看出update事务的大致流程:

1.        分配一个回滚段,获得usn
2.        在回滚段事务表中分配一个事务槽,获得slot,seq和uba(先写Redo logbuffer)
3.        更新datablock上的ITL(xid,uba)
4.        把旧值记录在undo block内(先写Redo Logbuffer)
5.        更改datablock的内容(先写Redo Logbuffer)

提交(commit)
1.        在回滚段事务表中标记该事务状态为commited(先写redo logbuffer)
2.        LGWR 把Log Buffer写入Redo Logfile
3.        告诉用户事务已提交
4.        如果此时data block仍然在Buffer Cache中且没有被写回到磁盘或要清除的data block没有超过db cache的10%,那么commit SCN将被记录到Block Header上(fast block cleanout),否则下一个访问这个data block的进程将会从回滚段中获取该事务的状态,确认该事务被提交,然后这个进程获得commit SCN并写回到Block Header上(delayed block cleanout)。
[/B]


针对文中的分析及总结,补充一下个人的看法:
1:没有考虑到锁的影响.如果出现分配回滚段前有锁,则做怎样的处理?猜测:此时在for update的事务中是不会有旧值之说的;而是将新值写到 redo buffer 的对应栏位.
2:没有将测试环境说出来,因为在不同环境下事物流程有细微差别,如使用flash recovery;
3:另文中的10%这个数据是怎样得到的?
个人认为如果此文能够将出现的异常考虑在内并由此分析则对backup/recovery的原理会有帮助!
其实Oracle针对DML or DDL语句总是"先日志后修改"---先记录变化的情况然后再进行数据的修改.这是从SCN上可以看出.

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2007-06-21 10:49:06
19#
发表于 2005-8-26 10:47 | 只看该作者
就要开始新的DBA生活了,紧张

使用道具 举报

回复
论坛徽章:
1
20#
发表于 2005-8-29 12:33 | 只看该作者
嗯支持一下

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表