没有必胜的秘籍,没有方程式遵循~~ 要赢~~只有全身心的投入!
  • 晶晶实验九之详细论述增量检查点篇

    2008-03-03 02:15:22   /   Oracle数据库管理

    晶晶实验九之详细论述增量检查点篇**为什么要有检查点?被修改过的块,在oracle中都被统称为脏块.所有的脏块被一个链表串起来,称做检查点队列.在buffercache中,每一个块都有一个buffer header 简称BH,在BH中有一个ckptq项,此项目中记录了指向检查点队列上一个块和下一个块的指针.如果某一个块不在检查点队列中,他的ckptq项为空.通过ckptq项oracle将所有的脏块串成了一个双向链表.这个双向链表就是检查点队列了.1,只有脏块才会在检查点队列中,非脏块的ckptq为空.2,当块首次被更改时,块会立即被加进检查点队列.如果检查
  • 晶晶实验八之DML语句时回滚和重作的工作流程

    2008-03-01 23:39:21   /   Oracle数据库管理

    实验所用表:create table jj_10(id number(5),name char(2000)) tablespace jj_ts_1;insert into jj_10 values(1,'aa');insert into jj_10 values(2,'bb');insert into jj_10 values(3,'bb');insert into jj_10 values(4,'cc');insert into jj_10 values(5,'dd');commit;查看每一行所对应的文件号,块号:SQL> select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid),id from jj_10;DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS
  • 晶晶的Oracle夜未眠 2 :长夜漫漫,无心睡眠,晶晶姑娘我再次失眠。

    2008-02-21 19:01:27   /   Oracle数据库管理

    晶晶的Oracle夜未眠 2 :长夜漫漫,无心睡眠,晶晶姑娘我再次失眠。记得在《我左眼见到鬼》这部电影中,郑秀文对一个胖女鬼说:“现在的女人,有哪个敢吃饱的?” 这不禁让我联想起了如今的IT人,无论是程序员还是DBA,有哪个“睡”的够的。我即是女性,又是IT人,吃又吃不饱,睡又睡不够,真是生活在水深火热之中啊。唉,没办法,即来之,则安之。由于睡的晚,我的梦,都是在白天做,俗称白日梦。比如以前我们办公室的同事,后来去北京的那个,第一次夜未眠时提到过的。人家是99年河南大学的本科,在当地
  • 晶晶实验七之事务表篇

    2008-02-21 17:13:16   /   Oracle数据库管理

    回滚段头中,有一项非常重要的信息,就是事务表。对事务表频繁的访问,可能会造成回滚段头的争用.了解什么样的操作会访问事务表,对于了解回滚段头争用的原因非常重要.下面我们来做一些实验来验证一下,什么样的操作才会访问事务表.首先简单介绍一个视图,备份x$bh.对这个视图我想大家都有一定的了解,bh即buffer header 的简写.在bufferheader中有一个TCH 列,表示块被访问的次数.我们通过他来验证事务表什么时候被访问.需要注意的是.TCH列每3秒,才会重新计算一次,3秒之内无论访问某一个块多少次.TCH列只会增加1.在会话A开启一
  • 晶晶实验六自己动手构造CR块

    2008-02-20 16:01:23   /   Oracle数据库管理

    一、查询魔术步1:在会话17中发布如下声明:17> var x refcursor17> exec open :x for select substr(c,1,5),id from t8;PL/SQL 过程已成功完成。步2:在会话13删除T8的所有记录且提交:13> delete t8 ;已删除 10 行。13> commit;提交完成。步3:在会话17中输出游标X的所有行:17> print xSUBSTR(C,1ID---------- ----------g7h8i9J10AA1B2C3
  • 晶晶的Oracle夜未眠:个人感悟篇

    2008-02-19 13:56:42   /   Oracle数据库管理

    晶晶的Oracle夜未眠:有很多的话题,从来就不会有结论。因为人是多样性的,社会是多样性。就好像几年前的C++ VS Java,后来的.Net VS J2EE等等。在Oracle界,同样有一个话题永远都谈不完,深入学习 VS 不用深入学习。早些年,还在做程序员时,CSDN上有一个程序牛人总结过,国外大公司的至胜之道,就是将别人傻瓜化,让别人可以更懒。从许多年前傻瓜照相机的风靡一时,到微软Windows系别软件傻瓜化的操作,就连程序设计,盖茨怕各位程序员大人们太累,为大家准备了各种控件,很方便的拖拽一下鼠标,一套程序就出来了,于是,盖茨取
  • 晶晶实验一至五全部的连接

    2008-02-18 14:48:19   /   Oracle数据库管理

    晶晶实验五_讨论锁 篇http://www.itpub.net/thread-940666-1-1.html晶晶实验四_讨论闩 篇http://www.itpub.net/thread-940637-1-1.html晶晶实验三DDL和DML操作都加什么样的TM锁篇http://www.itpub.net/thread-940378-1-2.html晶晶实验二插入时对L1块的选择篇http://www.itpub.net/thread-940196-1-4.html晶晶实验_插入时寻找空闲块的步骤篇(ASSM表空间)http://www.itpub.net/thread-940169-1-3.html感谢斑竹,感谢大家.感谢坛友...我会更加努力的.后面还有更精彩的哟~~~  ^_^
  • 晶晶实验五_讨论锁 篇

    2008-02-17 22:04:50   /   Oracle数据库管理

    锁是保护和用户相关的资源,例如:表,用户,会话.和闩比起来,锁的实现要复杂的多.锁的获取和释放也没有闩快,有些锁持有的时间会比较长,如果说TM锁和TX锁.在DML操作中,用户不提交,这两个锁就不会被释放.锁主要保护会话层面上的一些资源.理解锁的原理还是比较简单的.不过先要明白相关锁的一些数据结构.下面我们先从介绍锁相关的数据结构开始入手.一,池在SGA中和锁相关的内存区有两块.我分别称呼他们为'队列资源池'和'锁池'.池其实指的就是一块固定大小的内存,是计算机中经常会用到的一个计算机术语.队列资源池:存放所
  • 晶晶实验四_讨论闩 篇

    2008-02-17 19:41:12   /   Oracle数据库管理

    因为闩的种类过多,以后分别在各自领域详细介绍.今天先总的介绍闩的概念.闩不象锁,锁的结构非常复杂,在晶晶实验五中,我们就要讨论锁的结构.闩的实现相对与锁来说就非常简单了,大多数闩没有等待者,持有者等等这些队列,且大部分闩没有共享,独占等模式.(当然有部分闩例外).闩是内存中的一些位,使用CPU的硬指令(test and set 或swap)将其值设置为0或非0,表示是否被持有,他的实现代码极其简单,因此,闩的获取和释放都是非常快的.闩的持有过程也应该非常短暂.比如:有些闩是保护lock和 pin的释放获取过程,当lock 和pin 获取完
  • 晶晶实验三DDL和DML操作都加什么样的TM锁篇

    2008-02-16 17:41:50   /   Oracle数据库管理

    大家都知道TM锁共有6种模式,最常见的是3(插入,更新,删除);4(创建索引时);5(部分DDL操作如:删除列)等等,这些锁比较容易看到,不再详述实验经过.有些操作速度过块,如:Truncate和Drop等.这时不容易看到锁的状态,下面我做了个小实验来看清楚这些速度较快的命令持有什么样的锁. 例如:Truncate和Drop因为命令执行速度快,只有靠脚本来快速观察.如下:create or replace procedure my_cursor iscursor aa is select lmode from v$lock where type='TM' and sid=您的会话SID;x number(3):=9;beginfor i in 1..3000 loop
  • 晶晶实验二插入时对L1块的选择篇

    2008-02-15 23:06:38   /   Oracle数据库管理

    我的实验目的是证明:不同的会话做插入操作会选择不同的L1块,即使一个L1块内只使用了一个块。实验环境:块大小:8K;区大小1M;实验表只包含一个区,为插入行;步一:先通过查看dba_segments视图找到段头,通过段头找到L2块,转储L2块,查看一共有几个L1,并记录其状态(L系列块的查找详见晶晶实验一,此处不再详述)*** 2008-02-15 21:57:39.593Start dump data blocks tsn: 12 file#: 10 minblk 139 maxblk 139buffer tsn: 12 rdba: 0x0280008b (10/139)scn: 0x0000.001e692e seq: 0x01 flg: 0x
  • 晶晶实验_插入时寻找空闲块的步骤篇(ASSM表空间)

    2008-02-15 21:16:15   /   Oracle数据库管理

    服务器进程寻找空闲块的步骤:在ASSM表空间中,执行Insert声明时,Oracle是如何为声明分配可用块的?以前已经有网友论证,在ASSM中,可用块的管理,由L3、L2和L1三级位图块实现。具体的步骤就是,先通过数据字典找到段头,而段头其实就是表的第一个L3块,在其中寻找L2。根据执行插入声明的服务器进程的PID,计算出一个随机HASH值,根据此HASH值,在L2中找到一个L1。再根据服务器进程的PID,在L1中查找一个可用的数据块,并在其中插入新行。具体的步骤如下:步1:我的实验环境如下:块大小:8K;区大小40K;实验表现占5个区;
322/2<12

数据统计

  • 访问量: 38807
  • 日志数: 31
  • 图片数: 4
  • 建立时间: 2008-02-15
  • 更新时间: 2008-05-29

RSS订阅

Open Toolbar