易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle中Delete操作的流程

刚才在EYGLE的博客中看到一篇帖子,讲的是DELETE的操作流程,很简短,同时也精辟。
===================================================================================
Oracle中,一个Delete操作的流程
删除(DELETE)
1.Oracle读Block到Buffer Cache(如果该Block在Buffer中不存在)
2.在redo log buffer中记录delete操作的细节
3.在相应回滚段段头的事务表中创建一个undo条目
4.把将要删除的记录创建前镜像,存放到Undo Block中
5.在Buffer Cache中的相应数据块上删除记录,并且标记相应的数据块为Dirty
提交(COMMIT)
1.Oracle产生一个SCN
2.在回滚段事务表中标记该事务状态为commited
3.LGWR Flush Log Buffer到日志文件
3.如果此时数据块仍然在Buffer Cache中,那么SCN将被记录到Block Header上,这被称为快速提交(fast commit)
4.如果dirty block已经被写回到磁盘,那么下一个访问这个block的进程将会自回滚段中获取该事务的状态,确认该事务被提交。然后这个进程获得提交SCN并写回到Block Header上。这被称为延迟块清除(delayed block cleanout)。


相关文档:

关于oracle的表空间,分区表,以及索引的总结

 http://episode.javaeye.com/blog/183016
表空间: 
Oracle的UNDOTBS01.DBF文件太大的解决办法 
1、.禁止undo tablespace自动增长 
alter   database   datafile   'full_path\undotbs01.dbf'   autoextend   off; 
2.-- 创建一个新的小 ......

ORACLE RBA(redo byte address)

Redo Byte Address (RBA)
Recent entries in the redo thread of an Oracle instance are addressed using a 3-part redo byte address, or RBA. An RBA is comprised of
the log file sequence number (4 bytes)
the log file block number (4 bytes)
the byte offset into the block at which the redo record sta ......

ORACLE三层嵌套实现分页功能和ROWNUM的使用

(一)实现分页及性能
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。
分页查询格式:
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * from TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM & ......

jdbc连接Oracle

     虽然自己学习Java也还一段时间了,也连过一些数据库,比如说mysql,那已是好长之前的事了,但是呢,Oracle我就从未连过,尽管我学习Oracle也有一段时间了,嘿嘿,今天就尝试了一盘,真的觉得,所有的东西,都要自己尝试才行啊。
    首先是写好了连接: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号