Category Archives: oracle 11g

11203的parse count(total)中不包含softer soft parse

Jonathan Lewis在07年的一篇文章Parse Calls中详细介绍了parse相关的一些statistics. 在10g以及11202的oracle版本中parse count(total)是包含softer soft parse的(文章中提到),但是在11203中实验证明parse count(total)中不再包含softer soft parse。 我们来看实验结果: 首先是10g版本(11202的实验结果和10g是一样的) 我们执行一条很简单的SQL: select count(*) from temp; 然后通过另外一个session查看v$sesstat select a.name,b.value from v$statname a,v$sesstat b where a.STATISTIC#=b.STATISTIC# and b.sid=&&sid. and (a.name like ‘parse count%’ or a.name like ‘session cursor cache hits’); … Continue reading

Posted in oracle 11g | 450 Comments

11g Bug 10082277 – Excessive allocation in PCUR or KGLH0 heap of “kkscsAddChildNo”

在11.2.0.2的数据库上,我们遇到了oracle 11g的Bug 10082277 Excessive allocation in PCUR or KGLH0 heap of “kkscsAddChildNo” (ORA-4031) Bug 10082277 Excessive allocation in PCUR or KGLH0 heap of “kkscsAddChildNo” (ORA-4031) This note gives a brief overview of bug 10082277. The content was last updated on: … Continue reading

Posted in oracle 11g, oracle bugs | 494 Comments

JDBC 11g Driver Timestamp和Date的问题

JDBC 11g驱动和JDBC 10g驱动在处理timestamp变量上有所区别。 在Java中创建一个ts timestamp变量 java.sql.Timestamp ts = new java.sql.Timestamp(date.getTime()); 如果将这个变量和数据库中的Date字段相比较,比方说 CREATE TABLE TEST_DATE (DATE_FIELD Date) SELECT COUNT(1) FROM TEST_DATE WHERE DATE_FIELD >= ? 绑定开始声明的java中的ts为绑定变量 在10g jdbc驱动下oracle会将java timestamp变量的毫秒部分截断,然后相比较,也就是说 2010-09-15 16:00:00 (date column) >= 2010-09-15 16:00:00.00100 (timestamp value) 成立 但是在jdbc 11g驱动下,oracle会将Date … Continue reading

Posted in oracle 11g | 164 Comments

Invisible index

11g的Invisible index和前面版本的virtual index是完全不同的。 Invisible index是有segment的,并且在做DML操作的时候是维护这个索引的,而virtual index并没有真实的被创建出来,没有分配segment空间,只是optimizer可见而已。 让我来说的话,virtual index是在QA环境上做测试的一个工具,用处不大,主要被oracle自己使用(Oracle Enterprise Manger Tuning Pack), 而invisible index是在production实施的一个过渡阶段,对于某些大型的复杂的application很有价值。 另外invisible index对于drop index也很有帮助,可以做为drop index的一个过渡阶段。 在drop前(建议先monitoring usage)先设置index invisible,观测一段时间,比如一个星期,如果有问题可以很快的rollback,如果没有问题再drop index。 在我06年初的那篇文章里提到virtual index的几个特性: 1. 需要设定隐藏参数 “_use_nosegment_indexes”=true, 因为涉及隐藏参数,所以不建议在prod环境使用,除非oracle建议 2. hint 对virtual index有效 3. 没有hint的情况下,RBO时虚拟索引对于optimizer不可见, CBO时oracle会考虑使用虚拟索引 这里对应的也列出Invisible的几个特点: 1. 可以在创建的时候指定,也可以用alter index xx … Continue reading

Posted in oracle 11g | 91 Comments

oracle 11g

oracle 11g的linux binary出来也有段时间了,前段时间一直在忙,一直没时间也没有合适的linux系统来测试 最近终于有了太SUSE9 Linux的系统可以用来做一些测试 到otn.oracle.com上download了binary 安装过程挺顺利的,一路next,中间有warning说支持SUSE10,不支持SUSE9,忽视,继续next 装完binary后手工建库,一开始看alert就被忽悠了一把 tail -500f alert_TEST.log Sat Sep 1 06:23:07 2007 WARNING: The background_dump_dest init.ora parameter has been deprecated. WARNING: Please remove the background_dump_dest parameter from the init.ora file. WARNING: The diagnostic_dest init.ora parameter now … Continue reading

Posted in oracle 11g | 143 Comments