06 2011 档案
摘要:一. Bulk 概述 本来只想测试一下Bulk Collect 和update性能的,但发现Bulk 的东西还是很多的,在OTN上搜了一些,整理如下。 1.1 Bulk Binding 和 Bulk SQLFrom: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_packages.htm#ADFNS343 Oracle Database uses two engines to run PL/SQL blocks and subprograms. The PL/SQL engine runs proced
阅读全文
摘要:关于ROWID的介绍参考我的Blog: Oracle Rowid 介绍 http://blog.csdn.net/tianlesoftware/archive/2009/12/16/5020718.aspx关于大表Update 的一个讨论,参考itpub: http://www.itpub.net/viewthread.php?tid=1052077一. 在虚拟机上 使用rowid 进行update 测试 使用rowid 进行update能提高速度,是因为通过rowid 能够迅速的进行定位,不用全表进行扫描。-- 查看表dave 记录数SYS@dave2(db2)> select cou
阅读全文
摘要:一. DBWR写磁盘数据触发条件 1. 当进程在辅助LRU链表和主LRU链表上扫描以查找可以覆盖的buffer header[空闲缓冲区]时,如果已经扫描的buffer header的数量到达一定的限度(由隐藏参数:_db_block_max_scan_pct决定)时,触发DBWR进程。 _db_block_max_scan_pct表示已经扫描的buffer header的个数占整个LRU链表上buffer header总数的百分比。这时,搜索可用buffer header的进程挂起,在v$session_wait中表现为等待“free buffer wait”事件,同时增加v$sysstat
阅读全文
摘要:一.ITL 说明ITL: Interested Transaction List,也叫事务槽,它位于BLOCK Header。先dump 一个block,看一下这个ITL的信息。SELECTa.,extent_ida.,block_ida.blocks,bFROMa,segment_name file_idbfile# ;SELECT,nameFROM;当某个对象比较大时,占用的block也就会很多,Oracle 的存储结构是segment -->extent-->block.每个extent 由一些block组成。在上面的示例中每个extent 由8个blocks组成。我们dum
阅读全文
摘要:一. 官网说明Memory Architecturehttp://download.oracle.com/docs/cd/B28359_01/server.111/b28318/memory.htm#i10221 The database buffer cache is the portion of the SGA that holds copies of data blocks read from datafiles. All users concurrently connected to the instance share access to the database buffer ca
阅读全文
摘要:一. B-Tree Index 原理官网说明: No index structure can satisfy all needs, but the self-balancing B-tree index comes closest to optimizing the performance of searches on large sets of data. Each B-tree node holds multiple keys and pointers. The maximum number of keys in a node supported by a specific B-tree
阅读全文
摘要:一. Bug 问题表现 2011年安装Oracle 10.2.0.4 和10.2.0.5 版本时,在配置OEM的时候会报错。 忽略这个错误后,DB 可以成功创建或者升级。 MOS 上关于这个bug的说明,参考:[ID 1222603.1] 该bug 的表现为DBCA和DBUA 配置失败: Database Configuration Assistant (DBCA) and Database Upgrade Assistant (DBUA) will report the following error in the console:Could not complete the Enterp.
阅读全文
摘要:一. 说明 如果对大表进行大规模的delete 和update,那么可以注意一下如下说明: (1) 查看执行计划,如果说删除的记录很多,走索引的成本会比全表扫描更大,因为更新数据时还需要做一些约束校验和创建index entry。而且对于多CPU 情况,全表扫描还可以使用并行的特性。 Oracle Parallel Execution(并行执行) http://blog.csdn.net/tianlesoftware/archive/2010/09/01/5854583.aspx (2)如果表上有索引,B-Tree 索引可以unusable索引,函数索引则disable 索引,等操作结束之后在
阅读全文
摘要:从AWR报告里发现一个SQL存在大量的version_count. SYS@xezf(qs-xezf-db1)> select sql_id,version_count from v$sqlarea where version_count> 500 order by 2 desc ;SQL_ID VERSION_COUNT------------- -------------9rwd4wkwm4bsy 3046cpqsn8zak6sw4 298566x4djqka2ppy 9760z7n7sst85222 617 在v$sqlarea 中保存了SQL的cursor,当有大量的ver
阅读全文
摘要:一. 官网说明1.1 v$session_longops V$SESSION_LONGOPS displays the status of various operations that run for longer than 6 seconds (in absolute time). These operations currently include many backup and recovery functions, statistics gathering, and query execution, and more operations are added for every Or
阅读全文
摘要:一. Recursive Calls 说明在执行计划的统计信息里有如下信息:SYS@anqing2(rac2)> set autot trace statisticsSYS@anqing2(rac2)> select * from ta,tb where ta.id=tb.id and ta.id set autot trace statSYS@anqing2(rac2)> select * from dba_objects;50256 rows selected.Statistics----------------------------------------------
阅读全文
摘要:一. Shared Pool 概述 在之前的blog对Oracle 的内存架构也做了一个概述,参考: Oracle 内存 架构 详解 http://blog.csdn.net/tianlesoftware/archive/2010/05/15/5594080.aspx 在网上搜到一篇介绍shared pool 非常详细的pdf资料。 原文链接以找不到,但还是要感谢作者Kamus的辛勤劳动。 结合Kamus 的pdf和csdn 网友的blog,重新整理了一下,链接如下: http://blog.csdn.net/robinson1988/archive/2010/11/26/6037925...
阅读全文
摘要:有关Oracle 的执行计划说明,参考我的Blog: Oracle Explain Plan http://blog.csdn.net/tianlesoftware/archive/2010/08/20/5827245.aspx一. 查看当前session 的SID SYS@anqing1(rac1)> SELECT USERENV('SID') FROM DUAL; USERENV('SID')--------------137SYS@anqing1(rac1)> SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;S
阅读全文
摘要:在IBM DBA 小荷的blog上看到一个用Logminer 做数据恢复的例子。 虽然对Logminer 也了解一点,但是用Logminer 做恢复还真没用过,所以也测试一下。 原文链接地址如下: 客户的一次疏忽,DBA的一次噩梦 http://www.oracleblog.org/working-case/dba-always-bad-luck-with-careless-customer/一. 在测试之前讲一点理论知识1.1. 补充日志(supplemental logging)先看一下补充日志都包含哪些信息和特性: (1)索引簇、链行和迁移行; (2)直接路径插入; (3)摘取LogM.
阅读全文
摘要:最近南方的雨下的很烦人。 暴雨,一下就是一天,不过平时我也不怎么出门,所以也就无所谓了。 在家看看电影,做做测试,在补补觉,周末2天也就过去了。 刚才owind 让我做了个测试。 正在使用的cursor 能否被移除。 关于cursor的东西, 几个星期前就准备整理一下的,可是看了一下官方文档,东西太多了。 一时也没不知道从哪下手。 就放那了。 今天这个测试也算对cursor 知识的一个开始。 测试就为证明以下两句话: cursor is pined ,can't be age out. only freeable cursor can be flush. The buffer is n
阅读全文
摘要:一. 官网的说明http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN100251.1 CURSOR_SHARINGPropertyDescriptionParameter typeStringSyntaxCURSOR_SHARING = { SIMILAR | EXACT | FORCE }Default valueEXACTModifiableALTER SESSION, ALTER SYSTEMBasicNo CURSOR_SHARING determines what
阅读全文
摘要:这个等待事件也算一个常见的等待事件。 在warehouse blog和 itpub 上有相关的2个帖子。 连接如下:cursor: pin S wait on X等待事件模拟http://warehouse.itpub.net/post/777/493962cursor: pin S wait on Xhttp://space.itpub.net/756652/viewspace-348176一. Mutex 说明 Oracle Mutex 机制 说明 http://blog.csdn.net/tianlesoftware/archive/2011/05/30/6455517.aspx To.
阅读全文
摘要:在maclean blog 上看到的这篇文章,很不错,转贴过来,原文链接如下:http://www.oracledatabase12g.com/archives/whats-smon-enabling-cache-recovery.html 我们在学习Oracle基础知识的时候会了解到实例恢复(Instance Recovery)或者说崩溃恢复(Crash recovery)的概念,有时候甚至于这2个名词在我们日常的语言中表达同样的意思。 实际上Instance Recovery与Crash Recovery是存在区别的:针对单实例(single instance)或者RAC中所有节点全部崩溃
阅读全文
摘要:一. 创建表并insert 数据create table ta (id number,name varchar2(10));create table tb(id number,job varchar2(10));beginfor i in 1..1000000 loopbegininsert into ta values(i,'dave');commit;end;end loop;end;beginfor i in 1..1000000 loopbeginif i10 theninsert into tb values(i,'girl');commit;end
阅读全文
摘要:在 老熊 的Blog上看到他们写的有关ORA-04031的文章,转到blog。老熊的Blog:http://www.laoxiong.net/an-ora-04031-case.html ORA-04031这个错误,几乎每一个专业的DBA都遇到过。这是一个相当严重的错误,Oracle进程在向SGA申请内存时,如果申请失败,则会报这个错误。大部分情况下是在向SGA中的shared pool申请内存时失败,而少有向large pool等池中申请内存失败。比如下面的报错:Wed Apr 27 16:00:25 2011Errors in file /oracle/app/oracle/admin/.
阅读全文