摘要: 我们都知道,Oracle在进行dml过程中,有重要的一步,即创建undo和redo。redo用于事务重演,而undo用于事务的回退。创建undo,记录data block的前映像,需要在undo tablespace 中分配undo segment,来记录undo record。最近一个oracle群里遇到一个事务引起undo tablespace的一个undo segment暴涨的情况,群里也进行了讨论,其中有Q友发出了oracle doc中关于dml事务对undo segment 的分配和使用情况,如下:。群里讨论最后,我也来测试下这个过程及结论。(1):准备工作--创建一个新的undo 阅读全文
posted @ 2013-05-27 14:27 taowang2016 阅读(1299) 评论(0) 推荐(0) 编辑
摘要: SQL> drop table t;Table dropped.SQL> create table t(id int,name varchar2(20)) tablespace example;Table created.SQL> insert into t 2 select 1,'yejun' from dual;1 row created.SQL> select dbms_rowid.rowid_block_number(rowid) blk,name from t; BLK NAME---------- -------------------- 1 阅读全文
posted @ 2013-05-17 17:04 taowang2016 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 检查点的主要目的是以对数据库的日常操作影响最小的方式刷新脏块。脏块不断的产生,如何将脏块刷新到磁盘中去呢?在8i之前,Oracle定期的锁住所有的修改操作,刷新Buffercache中的所有脏块,这种刷新脏块的方式被称为完全检查点,这极大的影响了效率,从9i之后只有当关闭数据库时才会发生完全检查点。从8i开始,Oracle增加了增量检查点的概念,增量检查点的主要宗旨就是定期的刷新一部分脏块。将脏块一次刷新完是不合理的,因为脏块不断产生,没有穷尽。像完全检查点那样停止用户所有的修改操作,将脏块刷新完再继续,这绝对会极大的影响性能。所有增量检查点的一次刷新部分块是脏块问题的最好解决办法。那么,每次 阅读全文
posted @ 2013-05-17 14:57 taowang2016 阅读(470) 评论(0) 推荐(0) 编辑
摘要: http://t.askmaclean.com/thread-1302-1-33.html如何找出Oracle instance中当前打开游标open cursor的总数?v$open_cursor包括多种cursor:注意 11.2中v$open_cursor 才有 cursor_type 这一字段 之前都没有 , 即无法分清楚 是open cursor 还是cached cursorSQL> select distinct cursor_type from v$open_cursor;CURSOR_TYPE--------------------------------------- 阅读全文
posted @ 2013-05-09 11:30 taowang2016 阅读(1966) 评论(0) 推荐(0) 编辑
摘要: 一.DB(Data block) From:http://www.orafaq.com/wiki/Data_block A data block is the smallest unit of storage in an Oracle database. Every database has a default block size (specified when the database is created), although blocks in different tablespaces may have different block sizes. An extent cons... 阅读全文
posted @ 2013-04-23 15:12 taowang2016 阅读(819) 评论(2) 推荐(0) 编辑
摘要: http://blog.csdn.net/tianlesoftware/article/details/7777511一.RAC全局等待事件说明在RAC环境中,和全局调整缓存相关的最常见的等待事件是global cache cr request,global cache busy和equeue。当一个进程访问需要一个或者多个块时,Oracle会首先检查自己的Cache是否存在该块,如果发现没有,就会先通过global cache赋予这些块共享访问的权限,然后再访问。假如,通过global cache发现这些块已经在另一个实例的Cache里面,那么这些块就会通过Cache Fusion,在节点之 阅读全文
posted @ 2013-04-23 11:38 taowang2016 阅读(1362) 评论(0) 推荐(0) 编辑
摘要: https://blogs.oracle.com/askmaclean/entry/gc_buffer_busy_gcs_log?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+orana+%28OraNA%29http://t.askmaclean.com/thread-438-1-1.htmlgc current block busy 等待是RAC中global cache全局缓存当前块的争用等待事件, 该等待事件时长由三个部分组成:Time to process current block reques 阅读全文
posted @ 2013-04-23 10:58 taowang2016 阅读(740) 评论(0) 推荐(0) 编辑
摘要: http://www.askmaclean.com/archives/undo%E8%87%AA%E5%8A%A8%E8%B0%83%E4%BC%98%E4%BB%8B%E7%BB%8D.htmlOracle 10gr2的后续版本中添加了撤销(UNDO)信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下:当撤销表空间(UNDO TABLESPACE)大小固定,Oracle将根据表空间的大小和实际的系统负载动态调整撤销信息保存时间,该最短保存时间的具体长短基于撤销表空间大小的一定比例值公式换算后获得;它总是比设定的UNDO_RETENTION大, 阅读全文
posted @ 2013-04-22 17:21 taowang2016 阅读(308) 评论(0) 推荐(0) 编辑
摘要: http://www.oraclefans.cn/forum/showtopic.jsp?rootid=4806ROW CACHE LOCK等待事件是一个共享池相关的等待事件。是由于对于字典缓冲的访问造成的。P1 - Cache IdP2 - Mode HeldP3 - Mode Requestedmode 和REQUEST的取值:KQRMNULL 0 null mode - not lockedKQRMS 3 share modeKQRMX 5 exclusive modeKQRMFAIL 10 fail to acquire instance lock如果是RAC... 阅读全文
posted @ 2013-04-22 15:04 taowang2016 阅读(925) 评论(0) 推荐(0) 编辑
摘要: http://www.dbaleading.com/Article.asp?id=40http://www.ardentperf.com/2007/09/12/gc-buffer-busy-waits-in-rac-finding-hot-blocks/使用ash1、从dba_hist_snapshot中查得相关时间窗口select min(begin_interval_time) min, max(end_interval_time) max from dba_hist_snapshotwhere snap_id between 12831 and 12838;MIN ... 阅读全文
posted @ 2013-04-22 14:20 taowang2016 阅读(600) 评论(0) 推荐(0) 编辑