<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>otak-otak &#124; favorite evening food</title>
	<atom:link href="http://ora62.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ora62.wordpress.com</link>
	<description>favorite evening food</description>
	<lastBuildDate>Fri, 30 Dec 2011 07:21:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ora62.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>otak-otak &#124; favorite evening food</title>
		<link>http://ora62.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ora62.wordpress.com/osd.xml" title="otak-otak &#124; favorite evening food" />
	<atom:link rel='hub' href='http://ora62.wordpress.com/?pushpress=hub'/>
		<item>
		<title>ORA-600 17182 Block corruption</title>
		<link>http://ora62.wordpress.com/2011/12/30/ora-600-17182-block-corruption/</link>
		<comments>http://ora62.wordpress.com/2011/12/30/ora-600-17182-block-corruption/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 07:12:14 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[troubleshoot]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=78</guid>
		<description><![CDATA[Suddenly one of my customer make a call at night about ora-600 of their core system&#8230; logging into machine and grep the alert log, found the ora-600; database can be opened for a while (about 2 minutes) and then terminate. Doing block recovery for file 7 block 15312 Block recovery from logseq 147867, block 3707 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=78&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Suddenly one of my customer make a call at night about ora-600 of their core system&#8230;</p>
<p>logging into machine and grep the alert log, found the ora-600; database can be opened for a while (about 2 minutes) and then terminate.</p>
<p>Doing block recovery for file 7 block 15312<br />
Block recovery from logseq 147867, block 3707 to scn 3789052035<br />
Recovery of Online Redo Log: Thread 1 Group 6 Seq 147867 Reading mem 0<br />
Mem# 0: /redolog1/dbname/redo06.log<br />
Block recovery stopped at EOT rba 147867.3776.16<br />
Block recovery completed at rba 147867.3776.16, scn 0.3789052035<br />
Thu Dec 29 21:35:26 2011<br />
Completed: alter database open<br />
Thu Dec 29 21:35:29 2011<br />
Starting background process CJQ0<br />
Thu Dec 29 21:35:29 2011<br />
CJQ0 started with pid=45, OS id=192<br />
Thu Dec 29 21:35:29 2011<br />
Sweep Incident[95434]: completed<br />
Errors in file /oracle/diag/diag/rdbms/dbnameg/dbname/trace/dbname_smon_29913.trc:<br />
SVR4 Error: 2: No such file or directory<br />
Additional information: 3<br />
ORACLE Instance dbname (pid = 13) &#8211; Error 600 encountered while recovering transaction (203, 27) on object 79208.<br />
Errors in file /oracle/diag/diag/rdbms/dbnameg/dbname/trace/dbname_smon_29913.trc:<br />
ORA-00600: internal error code, arguments: [17182], [0xFFFFFFFF7B81D750], [], [], [], [], [], []<br />
Errors in file /oracle/diag/diag/rdbms/dbnameg/dbname/trace/dbname_smon_29913.trc (incident=95435):<br />
ORA-00600: internal error code, arguments: [KSMFPG2], [0xFFFFFFFF7B81D000], [], [], [], [], [], []<br />
ORA-00600: internal error code, arguments: [17182], [0xFFFFFFFF7B81D750], [], [], [], [], [], []<br />
Incident details in: /oracle/diag/diag/rdbms/dbnameg/dbname/incident/incdir_95435/dbname_smon_29913_i95435.trc<br />
Thu Dec 29 21:35:32 2011<br />
Trace dumping is performing id=[cdmp_20111229213532]<br />
Thu Dec 29 21:35:33 2011<br />
Fatal internal error happened while SMON was doing active transaction recovery.<br />
Errors in file /oracle/diag/diag/rdbms/dbnameg/dbname/trace/dbname_smon_29913.trc:<br />
ORA-00600: internal error code, arguments: [KSMFPG2], [0xFFFFFFFF7B81D000], [], [], [], [], [], []<br />
ORA-00600: internal error code, arguments: [17182], [0xFFFFFFFF7B81D750], [], [], [], [], [], []<br />
SMON (ospid: 29913): terminating the instance due to error 474<br />
Instance terminated by SMON, pid = 29913</p>
<p>from the alert log I found there are corruption at block level, but oracle actualy can recovered it automatically, but it seems when there is undo application for a transaction got stuck due to block corrupt at the other block.</p>
<p>find the object name as informed by alertlog:</p>
<p>select owner,object_name from dba_objects where object_id=79208;</p>
<p>now time to scan all the logical corruption by rman validate command:</p>
<p>run {<br />
allocate channel d1 type disk;<br />
backup check logical validate database;<br />
release channel d1;<br />
}</p>
<p>confirmed there are 2 block corruption on the table:</p>
<p>Error backing up file 7, block 15312: logical corruption<br />
Error backing up file 7, block 18714: logical corruption</p>
<p>another check by dbms_repair to investigate the real corruption, and marked it as corrupt:<br />
declare<br />
begin<br />
dbms_repair.admin_tables(<br />
table_name =&gt; &#8216;REPAIR_TABLE_99&#8242;,<br />
table_type =&gt; dbms_repair.repair_table,<br />
action =&gt; dbms_repair.create_action,<br />
tablespace =&gt; &#8216;USERS&#8217;);<br />
end;<br />
/<br />
select owner,object_name,object_type<br />
from dba_objects<br />
where object_name like &#8216;%REPAIR_TABLE%&#8217;;</p>
<p>declare<br />
begin<br />
dbms_repair.admin_tables(<br />
table_name =&gt; &#8216;ORPHAN_REP_TBL_99&#8242;,<br />
table_type =&gt; dbms_repair.orphan_table,<br />
action =&gt; dbms_repair.create_action,<br />
tablespace =&gt; &#8216;USERS&#8217;);<br />
end;<br />
/</p>
<p>select owner,object_name,object_type<br />
from dba_objects<br />
where object_name like &#8216;%ORPHAN%&#8217;;</p>
<p>set serveroutput on</p>
<p>declare<br />
rpr_count int;<br />
begin<br />
rpr_count :=0;</p>
<p>dbms_repair.check_object(<br />
schema_name =&gt; &#8216;TEST&#8217;,<br />
object_name =&gt; &#8216;TBL1&#8242;,<br />
repair_table_name =&gt; &#8216;REPAIR_TABLE_99&#8242;,<br />
corrupt_count =&gt; rpr_count);</p>
<p>dbms_output.put_line(&#8216;rep cnt : &#8216;||to_char(rpr_count));<br />
end;<br />
/</p>
<p>select object_name,block_id,corrupt_type,marked_corrupt,corrupt_description,repair_description from repair_table_99;</p>
<p>OBJECT_NAME BLOCK_ID CORRUPT_TYPE MARKED_COR<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br />
CORRUPT_DESCRIPTION<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
REPAIR_DESCRIPTION<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
TBL1 15312 6130 FALSE<br />
Block Checking: DBA = 29375440, Block Type = KTB-managed data block<br />
data header at 0x3d85b007c<br />
kdbchk: fseo(223) &lt; fsbo(282)<br />
mark block software corrupt<br />
TBL1 18714 6110 FALSE<br />
Block Checking: DBA = 29378842, Block Type = KTB-managed data block<br />
data header at 0x3d756e0ac<br />
kdbchk: the amount of space used is not equal to block size<br />
used=7403 fsc=0 avsp=769 dtl=8016<br />
mark block software corrupt</p>
<p>mark those block as corrupted:</p>
<p>declare<br />
l_fix_count int;<br />
begin<br />
l_fix_count:=0;</p>
<p>dbms_repair.fix_corrupt_blocks(<br />
schema_name =&gt; &#8216;TEST&#8217;,<br />
object_name =&gt; &#8216;TBL1&#8242;,<br />
object_type =&gt; dbms_repair.table_object,<br />
repair_table_name =&gt; &#8216;REPAIR_TABLE_99&#8242;,<br />
fix_count =&gt; l_fix_count);</p>
<p>dbms_output.put_line(&#8216;fix cnt : &#8216;||to_char(l_fix_count));<br />
end;<br />
/</p>
<p>select object_name,block_id,corrupt_type,marked_corrupt,corrupt_description,repair_description from repair_table_99;</p>
<p>OBJECT_NAME BLOCK_ID CORRUPT_TYPE MARKED_COR<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;-<br />
CORRUPT_DESCRIPTION<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
REPAIR_DESCRIPTION<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
TBL1 15312 6130 TRUE<br />
Block Checking: DBA = 29375440, Block Type = KTB-managed data block<br />
data header at 0x3d85b007c<br />
kdbchk: fseo(223) &lt; fsbo(282)<br />
mark block software corrupt</p>
<p>TBL1 18714 6110 TRUE<br />
Block Checking: DBA = 29378842, Block Type = KTB-managed data block<br />
data header at 0x3d756e0ac<br />
kdbchk: the amount of space used is not equal to block size<br />
used=7403 fsc=0 avsp=769 dtl=8016<br />
mark block software corrupt</p>
<p>now time to recover the table<br />
skip corrupted block from reading, and get the good data:</p>
<p>alter session set event=&#8217;10231 trace name context forever, level 10&#8242;;<br />
create table test.tmp as select * from test.tbl1;</p>
<p>ok done, now the application guy who have to look into the data and fix them<br />
have a nice sleep then :)</p>
<br />Filed under: <a href='http://ora62.wordpress.com/category/troubleshoot/'>troubleshoot</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=78&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/12/30/ora-600-17182-block-corruption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>perl script to automate restore, recover rman backup</title>
		<link>http://ora62.wordpress.com/2011/12/01/perl-script-to-automate-restore-recover-rman-backup/</link>
		<comments>http://ora62.wordpress.com/2011/12/01/perl-script-to-automate-restore-recover-rman-backup/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 04:26:41 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[barman]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=69</guid>
		<description><![CDATA[I created &#8216;simple-silly&#8217; perl script to automate restore and recover of rman backup. this script will only need supply rman backup log. how to execute: 1. to restore &#38; recover until all archivelog in the backup. ./restore_arc.sh &#60;full_path_rman_backup_log&#62; 2. to restore &#38; recover until all archivelog (until cancel). ./restore_arc_last.sh &#60;full_path_rman_backup_log&#62; has been tested on linux env, you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=69&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I created &#8216;simple-silly&#8217; perl script to automate restore and recover of rman backup. this script will only need supply rman backup log.</p>
<p>how to execute:<br />
1. to restore &amp; recover until all archivelog in the backup.<br />
./restore_arc.sh &lt;full_path_rman_backup_log&gt;</p>
<p>2. to restore &amp; recover until all archivelog (until cancel).<br />
./restore_arc_last.sh &lt;full_path_rman_backup_log&gt;</p>
<p>has been tested on linux env, you may use this script for your needs and please take your own risk :)</p>
<p>cat restore_arc.sh</p>
<p>#!/bin/bash<br />
. /home/ujang/.bashrc</p>
<p>SCRPATH=/home/ujang/docs/orascript/backup-recovery/rman<br />
LOGPATH=/home/ujang/docs/orascript/backup-recovery/rman<br />
TAG=`date +%Y%m%d`<br />
CMDFILE=${SCRPATH}/restore.txt<br />
LOGFILE=${LOGPATH}/restore_${TAG}.log<br />
RMANLOG=$1<br />
cd $SCRPATH<br />
export ORACLE_HOME=/apps/oracle/product/9.2<br />
export ORACLE_SID=PROD<br />
./restore.pl $RMANLOG spfile=NO lastarc=NO<br />
##$ORACLE_HOME/bin/rman target / nocatalog cmdfile=$CMDFILE msglog $LOGFILE</p>
<p>cat restore_arc_last.sh</p>
<p>#!/bin/bash<br />
. /home/ujang/.bashrc</p>
<p>SCRPATH=/home/ujang/docs/orascript/backup-recovery/rman<br />
LOGPATH=/home/ujang/docs/orascript/backup-recovery/rman<br />
TAG=`date +%Y%m%d`<br />
CMDFILE=${SCRPATH}/restore.txt<br />
LOGFILE=${LOGPATH}/restore_${TAG}.log<br />
RMANLOG=$1<br />
cd $SCRPATH<br />
export ORACLE_HOME=/apps/oracle/product/9.2<br />
export ORACLE_SID=PROD<br />
./restore.pl $RMANLOG spfile=NO lastarc=YES<br />
##$ORACLE_HOME/bin/rman target / nocatalog cmdfile=$CMDFILE msglog $LOGFILE</p>
<p>cat restore.pl</p>
<p>#!/usr/bin/perl<br />
my @array = qq[input archive log thread];<br />
my @match = (&#8220;sequence=&#8221;,&#8221;thread=&#8221;,&#8221;DBID=&#8221;,&#8221;piece handle=&#8221;,&#8221;CONTROL&#8221;,&#8221;SPFILE&#8221;);<br />
my @seqid;<br />
my $thread=0;<br />
my $dbid=0;<br />
my $ctlfile=&#8221;XXX&#8221;;<br />
my $initfile=&#8221;XXX&#8221;;<br />
my $orahome=&#8221;XXX&#8221;;<br />
my $orasid=&#8221;X&#8221;;<br />
foreach $key (keys(%ENV)) {<br />
if ($orahome eq &#8220;XXX&#8221;) {<br />
if ($key eq &#8220;ORACLE_HOME&#8221;) {<br />
$orahome=$ENV{$key};<br />
}<br />
}<br />
if ($orasid eq &#8220;X&#8221;) {<br />
if ($key eq &#8220;ORACLE_SID&#8221;) {<br />
$orasid=$ENV{$key};<br />
}<br />
}<br />
}</p>
<p>if ($orahome eq &#8220;XXX&#8221; || $orasid eq &#8220;X&#8221;)<br />
{<br />
print &#8220;environment variable ORACLE_HOME dan ORACLE_SID harus diset!!\n&#8221;;<br />
exit 0;<br />
}</p>
<p>if ($ARGV[0] eq &#8220;help=yes&#8221; || $ARGV[0] eq &#8220;help=y&#8221; || $ARGV[0] eq &#8220;-h&#8221; || $ARGV[0] eq &#8220;&#8211;h&#8221;)<br />
{<br />
print &#8220;Cara penggunaan :\n&#8221;;<br />
print &#8220;1. anda harus berada pada directory dimana file ini dijalankan, misalnya cd /oradata/rman/scr&#8221;;<br />
print &#8220;2. ketik \n&#8221;;<br />
print &#8221; recover spfile=YES|NO\n&#8221;;<br />
print &#8221; misal: \n&#8221;;<br />
print &#8221; recover /oradata/rman/log/rman_bkp_20110504.log spfile=NO\n&#8221;;<br />
exit 0;<br />
}</p>
<p>my $rmanlog=$ARGV[0];<br />
my $spfileloc=$ARGV[1];<br />
my $lastarc=$ARGV[2];<br />
my $spfileloc=substr($spfileloc,index($spfileloc,&#8221;=&#8221;,0)+1,3);<br />
my $lastarc=substr($lastarc,index($lastarc,&#8221;=&#8221;,0)+1,3);</p>
<p>if (length($rmanlog)&lt;=0)<br />
{<br />
print &#8220;anda harus passing parameter, gunakan restore.sh -h untuk bantuan\n&#8221;;<br />
exit 0;<br />
}</p>
<p>open(OLD, &#8220;&lt;&#8221;, $rmanlog) or die &#8220;can&#8217;t open $rmanlog&#8221;;<br />
while ()<br />
{<br />
my $line = $_;<br />
if ($dbid == 0) {<br />
my $seq = (split /$match[2]/, $line)[1];<br />
$dbid=substr($seq,0,index($seq,&#8221;)&#8221;,0));<br />
}<br />
if ($ctlfile eq &#8220;XXX&#8221;) {<br />
my $seq = (split /^$match[3]/, $line)[1];<br />
if($seq =~ m/$match[4]/i) {<br />
$ctlfile=substr($seq,0,index($seq,chr(32),0));<br />
}<br />
}</p>
<p>if ($initfile eq &#8220;XXX&#8221;) {<br />
my $seq = (split /$match[3]/, $line)[1];<br />
if($seq =~ m/$match[5]/i) {<br />
$initfile=substr($seq,0,index($seq,chr(32),0));<br />
}<br />
}<br />
if ($line =~ /^@array/) {<br />
my $seq = (split /$match[0]/, $line)[1];<br />
push @seqid, substr($seq,0,index($seq,chr(32),0));<br />
if ($thread == 0) {<br />
my $seq = (split /$match[1]/, $line)[1];<br />
$thread=substr($seq,0,index($seq,chr(32),0));<br />
}<br />
}<br />
}<br />
@seqid=sort(@seqid);<br />
my $seqmax = @seqid;<br />
close(OLD);</p>
<p>system(&#8220;rm -f restore.txt&#8221;);</p>
<p>($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);<br />
$year=$year+1900;<br />
$new=&#8221;restore.txt&#8221;;<br />
open(NEW, &#8220;&gt;&#8221;, $new) or die &#8220;can&#8217;t open $new: $!&#8221;;<br />
if ($spfileloc eq &#8220;YES&#8221; or $spfileloc eq &#8220;yes&#8221;) {<br />
print NEW &#8220;host &#8216;mv $orahome/dbs/spfile$orasid\.ora $orahome/dbs/spfile$orasid\_$year$mon$mday$hour$min\.ora&#8217;;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
}<br />
print NEW &#8220;set dbid=$dbid;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;startup force nomount;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
if ($spfileloc eq &#8220;YES&#8221; or $spfileloc eq &#8220;yes&#8221;) {<br />
print NEW &#8220;restore spfile to &#8216;$orahome/dbs/spfile$orasid\.ora&#8217; from &#8216;$initfile&#8217;;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
}<br />
print NEW &#8220;shutdown abort;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;set dbid=$dbid;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;startup nomount;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;restore controlfile from &#8216;$ctlfile&#8217;;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;alter database mount;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;restore database;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
print NEW &#8220;restore archivelog from sequence $seqid[0] until sequence $seqid[$seqmax-1];\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;</p>
<p>if ($lastarc eq &#8220;YES&#8221; or $lastarc eq &#8220;yes&#8221;) {<br />
print NEW &#8220;sql &#8216;RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE;&#8217;;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
} else {<br />
print NEW &#8220;recover database until logseq $seqid[$seqmax-1] thread $thread;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
}<br />
print NEW &#8220;sql &#8216;alter database open resetlogs&#8217;;\n&#8221; or die &#8220;can&#8217;t write $new: $!&#8221;;<br />
close(NEW) or die &#8220;can&#8217;t close $new: $!&#8221;;</p>
<br />Filed under: <a href='http://ora62.wordpress.com/category/barman/'>barman</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=69&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/12/01/perl-script-to-automate-restore-recover-rman-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>HW &#8211; Contention evil</title>
		<link>http://ora62.wordpress.com/2011/11/10/hw-contention-evil/</link>
		<comments>http://ora62.wordpress.com/2011/11/10/hw-contention-evil/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 06:26:25 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[Troubleshoot Tuning]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=70</guid>
		<description><![CDATA[Suddenly my old friend call me on 10PM, he asked about HW contention and row cache object + free global transaction table entry which makes their enterprise system &#8220;stuck&#8221;. From AWR, the insert statement on a BLOB column can reach 101 seconds, hence makes database call from application server to database slower. Log in to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=70&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Suddenly my old friend call me on 10PM, he asked about HW contention and row cache object + free global transaction table entry which makes their enterprise system &#8220;stuck&#8221;.</p>
<p>From AWR, the insert statement on a BLOB column can reach 101 seconds, hence makes database call from application server to database slower. Log in to the system and looking for v$session_wait, found a session who execute &#8216;rollback force&#8217; and hung, I decided to kill this problematic session.</p>
<p>By querying v$session_wait sampled every 3 seconds, found HW &#8211; contention from the P3, decode to the file number and block number:</p>
<pre>select DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(771921779) FILE#,
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(771921779) BLOCK#
from dual;</pre>
<p>What is the segments which contending on HW:</p>
<pre>select owner, segment_type, segment_name
from dba_extents
where file_id = 184
and 169843 between block_id and block_id + blocks - 1; 

<span class="Apple-style-span" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:14px;line-height:19px;white-space:normal;">Internal application server engine saves state of every transaction to BLOB, and this above query result point to that BLOB. Insertion to this column will wait and finish after 101 seconds. 128 Hash partition on this segments can help at least for a while, and luckily there is no such documentation on the NET about how the best way to partition this table, this table has a column using unix date.</span></pre>
<br />Filed under: <a href='http://ora62.wordpress.com/category/troubleshoot-tuning/'>Troubleshoot Tuning</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=70&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/11/10/hw-contention-evil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>resource manager 80% cpu only</title>
		<link>http://ora62.wordpress.com/2011/05/09/resource-manager-80-cpu-only/</link>
		<comments>http://ora62.wordpress.com/2011/05/09/resource-manager-80-cpu-only/#comments</comments>
		<pubDate>Mon, 09 May 2011 00:53:28 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[troubleshoot]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=65</guid>
		<description><![CDATA[here the steps of configuring resource manager to only gives oracle 80% cpu only for all the user sessions belongs to GROUP_OLTP. set serverout on size 5555 ALTER SYSTEM SET RESOURCE_MANAGER_PLAN =''; exec dbms_resource_manager.clear_pending_area(); exec dbms_resource_manager.create_pending_area(); exec dbms_resource_manager.DELETE_PLAN('PLAN_OLTP'); exec dbms_resource_manager.DELETE_CONSUMER_GROUP('GROUP_OLTP'); exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA; exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA(); begin dbms_resource_manager.clear_pending_area(); dbms_resource_manager.create_pending_area(); dbms_resource_manager.create_consumer_group(consumer_group=&#62;'GROUP_OLTP',comment=&#62;'oltp rsrc'); dbms_resource_manager.create_plan(plan=&#62;'PLAN_OLTP',comment=&#62;'batch plan'); dbms_resource_manager.create_plan_directive(plan=&#62;'PLAN_OLTP',group_or_subplan=&#62;'GROUP_OLTP',comment=&#62;'plan dir night',cpu_p1=&#62;80,parallel_degree_limit_p1=&#62;16); dbms_resource_manager.create_plan_directive(plan=&#62;'PLAN_OLTP',group_or_subplan=&#62;'OTHER_GROUPS',comment=&#62;'plan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=65&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>here the steps of configuring resource manager to only gives oracle 80% cpu only for all the user sessions belongs to GROUP_OLTP.</p>
<pre>set serverout on size 5555
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN ='';
exec dbms_resource_manager.clear_pending_area();
exec dbms_resource_manager.create_pending_area();
exec dbms_resource_manager.DELETE_PLAN('PLAN_OLTP');
exec dbms_resource_manager.DELETE_CONSUMER_GROUP('GROUP_OLTP');
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
begin
dbms_resource_manager.clear_pending_area();
dbms_resource_manager.create_pending_area();
dbms_resource_manager.create_consumer_group(consumer_group=&gt;'GROUP_OLTP',comment=&gt;'oltp rsrc');
dbms_resource_manager.create_plan(plan=&gt;'PLAN_OLTP',comment=&gt;'batch plan');
dbms_resource_manager.create_plan_directive(plan=&gt;'PLAN_OLTP',group_or_subplan=&gt;'GROUP_OLTP',comment=&gt;'plan dir night',cpu_p1=&gt;80,parallel_degree_limit_p1=&gt;16);
dbms_resource_manager.create_plan_directive(plan=&gt;'PLAN_OLTP',group_or_subplan=&gt;'OTHER_GROUPS',comment=&gt;'plan dir night',cpu_p3=&gt;80,parallel_degree_limit_p1=&gt;8);
dbms_resource_manager.validate_pending_area();
dbms_resource_manager.submit_pending_area();
end;
/
commit
/
begin
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name=&gt;'SCOTT',consumer_group=&gt;'GROUP_OLTP',grant_option=&gt;false);
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name=&gt;'SH',consumer_group=&gt;'GROUP_OLTP',grant_option=&gt;false);
dbms_resource_manager.set_initial_consumer_group(user=&gt;'SCOTT',consumer_group=&gt;'GROUP_OLTP');
dbms_resource_manager.set_initial_consumer_group(user=&gt;'SH',consumer_group=&gt;'GROUP_OLTP');
end;
/
alter system set resource_manager_plan=PLAN_OLTP scope=both
/
alter session set resource_manager_plan=PLAN_OLTP scope=both
/

set lines 200
COL consumer_group      FORMAT A24  HEADING 'Consumer Group'
COL cpu_method          FORMAT A18  HEADING 'CPU Method'
COL status              FORMAT A10  HEADING 'Status'
COL mandatory           FORMAT A06  HEADING 'Manda-|tory?'
COL comments            FORMAT A32  HEADING 'Comments'
SELECT
     consumer_group
    ,cpu_method
    ,status
    ,mandatory
    ,comments
  FROM dba_rsrc_consumer_groups;

COL plan                      FORMAT A18  HEADING 'Resource Plan'
COL num_plan_directives       FORMAT 9999 HEADING '# of|Plan|Dirs'
COL cpu_method                FORMAT A18  HEADING 'CPU Method'
COL active_sess_pool_mth      FORMAT A32  HEADING 'Active|Session|Pool|Method'
COL parallel_degree_limit_mth FORMAT A32  HEADING 'Parallel|Limit|Method'
COL queueing_mth              FORMAT A18  HEADING 'Queueing|Method'
COL status                    FORMAT A10  HEADING 'Status'
COL mandatory                 FORMAT A06  HEADING 'Manda-|tory?'
COL comments                  FORMAT A32  HEADING 'Comments'
SELECT
     plan
    ,num_plan_directives
    ,cpu_method
    ,active_sess_pool_mth
    ,parallel_degree_limit_mth
    ,queueing_mth
    ,status
    ,mandatory
  FROM dba_rsrc_plans
;

COL plan                      FORMAT A18  HEADING 'Resource Plan'
COL group_or_subplan          FORMAT A12  HEADING 'Group or|SubPlan'
COL type                      FORMAT A15  HEADING 'Type'
COL cpu_p1                    FORMAT 999  HEADING 'CPU|1 %'
COL cpu_p2                    FORMAT 999  HEADING 'CPU|2 %'
COL cpu_p3                    FORMAT 999  HEADING 'CPU|3 %'
COL status                    FORMAT A08  HEADING 'Status'
COL mandatory                 FORMAT A06  HEADING 'Manda-|tory?'
COL comments                  FORMAT A24  HEADING 'Comments'

SELECT
     plan
    ,group_or_subplan
    ,type
    ,cpu_p1
    ,cpu_p2
    ,cpu_p3
    ,status
  FROM dba_rsrc_plan_directives
 WHERE plan = 'PLAN_OLTP'
;

COL initial_rsrc_consumer_group  FORMAT A24  HEADING 'Resource|Consumer|Group'
COL username                     FORMAT A12  HEADING 'User Name'
SELECT
	 initial_rsrc_consumer_group,
    username
  FROM dba_users
 ORDER BY 1,2;

SELECT se.sid sess_id, co.name consumer_group,
 se.state, se.consumed_cpu_time cpu_time, se.cpu_wait_time, se.queued_time
 FROM v$rsrc_session_info se, v$rsrc_consumer_group co
 WHERE se.current_consumer_group_id = co.id;

select username,resource_CONSUMER_GROUP,count(*) from v$session group by username,resource_CONSUMER_GROUP;</pre>
<br />Filed under: <a href='http://ora62.wordpress.com/category/troubleshoot/'>troubleshoot</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=65&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/05/09/resource-manager-80-cpu-only/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>streams tuning on high batch jobs</title>
		<link>http://ora62.wordpress.com/2011/05/09/streams-tuning-on-high-batch-jobs/</link>
		<comments>http://ora62.wordpress.com/2011/05/09/streams-tuning-on-high-batch-jobs/#comments</comments>
		<pubDate>Mon, 09 May 2011 00:19:34 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[streams]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=59</guid>
		<description><![CDATA[this apply parameter in streams environment is intended for the machine that has many cpus.  the parallelis and commit_serialization will help when there are many insert,  the streams will extremely fast enough to handle huge transaction. but if your transaction is mandatory by update or delete, commit_serialization will depends on the scn order.  so there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=59&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<pre>this apply parameter in streams environment is intended for the machine that has many cpus. 
the parallelis and commit_serialization will help when there are many insert, 
the streams will extremely fast enough to handle huge transaction.
but if your transaction is mandatory by update or delete, commit_serialization will depends on the scn order. 
so there are no impact to your business (but it should need careful test)

BEGIN
 DBMS_APPLY_ADM.SET_PARAMETER (
   apply_name =&gt; 'A_NONAME',
   parameter =&gt; 'TXN_LCR_SPILL_THRESHOLD',
   value =&gt; '15000000');

DBMS_APPLY_ADM.SET_PARAMETER (
   apply_name =&gt; 'A_NONAME',
   parameter =&gt; '_TXN_BUFFER_SIZE',
   value =&gt; '64');
 DBMS_APPLY_ADM.SET_PARAMETER (
   apply_name =&gt; 'A_NONAME',
   parameter =&gt; '_hash_table_size',
   value =&gt; '10000000');
dbms_apply_adm.set_parameter('A_NONAME','_SGA_SIZE','8192');
dbms_apply_adm.set_parameter('A_NONAME', '_RESTRICT_ALL_REF_CONS','N');
dbms_apply_adm.set_parameter('A_NONAME', 'COMMIT_SERIALIZATION','NONE');
dbms_apply_adm.set_parameter('A_NONAME', 'PARALLELISM','64');

END;
/

exec dbms_apply_adm.stop_apply('A_NONAME');

exec dbms_apply_adm.start_apply('A_NONAME');</pre>
<br />Filed under: <a href='http://ora62.wordpress.com/category/streams/'>streams</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=59&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/05/09/streams-tuning-on-high-batch-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>BITMAP CONVERSION TO ROWIDS</title>
		<link>http://ora62.wordpress.com/2011/04/21/bitmap-conversion-to-rowids/</link>
		<comments>http://ora62.wordpress.com/2011/04/21/bitmap-conversion-to-rowids/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 01:54:12 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[sql tuning]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=52</guid>
		<description><![CDATA[on 10.2.0.5 AIX The query is really simple just querying a table filtered by combination of columns, the table has 2 indexes (each 1 column) which is as part of where clause. from the plan, oracle seems to deal with just only cost, ya it is true cost is cheaper than by scanning only 1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=52&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>on 10.2.0.5 AIX</p>
<p>The query is really simple just querying a table filtered by combination of columns, the table has 2 indexes (each 1 column) which is as part of where clause. from the plan, oracle seems to deal with just only cost, ya it is true cost is cheaper than by scanning only 1 index, but IO cost would likely double (scanning 2 indexes, bitmap and operation and than conver bitmap to rowid).</p>
<pre>----------------------------------------------------------------------------------------------------
| Id  | Operation                        | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                 |                 |     1 |   112 |    66   (2)| 00:00:01 |
|*  1 |  TABLE ACCESS BY INDEX ROWID     | T_4             |     1 |   112 |    66   (2)| 00:00:01 |
|   2 |   BITMAP CONVERSION TO ROWIDS    |                 |       |       |            |          |
|   3 |    BITMAP AND                    |                 |       |       |            |          |
|   4 |     BITMAP CONVERSION FROM ROWIDS|                 |       |       |            |          |
|*  5 |      INDEX RANGE SCAN            | IDX_1           | 25237 |       |     7   (0)| 00:00:01 |
|   6 |     BITMAP CONVERSION FROM ROWIDS|                 |       |       |            |          |
|*  7 |      INDEX RANGE SCAN            | IDX_0           | 25237 |       |    40   (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------

here by force to use index 1,

-----------------------------------------------------------------------------------------------
| Id  | Operation                   | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |                 |     1 |   112 |   501   (1)| 00:00:07 |
|*  1 |  TABLE ACCESS BY INDEX ROWID| T_4             |     1 |   112 |   501   (1)| 00:00:07 |
|*  2 |   INDEX RANGE SCAN          | IDX_1           |  3801 |       |     7   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------</pre>
<p>it seems the cost is higher than bitmap conversion, but from the real execution time the second one is really faster. it seems cost calculation on the first plan is misleading.</p>
<br />Filed under: <a href='http://ora62.wordpress.com/category/sql-tuning/'>sql tuning</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=52&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/04/21/bitmap-conversion-to-rowids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>Skip streams capture SCN</title>
		<link>http://ora62.wordpress.com/2011/04/19/skip-streams-capture-scn/</link>
		<comments>http://ora62.wordpress.com/2011/04/19/skip-streams-capture-scn/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 13:16:19 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[streams]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=46</guid>
		<description><![CDATA[I have a nice experience on streams capture 10.2.0.1 when captures is set to grab all dml at the schema levels, and suddenly user performed CTAS, and magically oracle ora lucky number ORA-600 coming. got error that capture builder has error, OK well done. I started manually the capture process and after 10 minutes PMON [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=46&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a nice experience on streams capture 10.2.0.1<br />
when captures is set to grab all dml at the schema levels,<br />
and suddenly user performed CTAS, and magically oracle<br />
ora lucky number ORA-600 coming.</p>
<p>got error that capture builder has error, OK well done.<br />
I started manually the capture process and after 10 minutes<br />
PMON always kill capture builder process.</p>
<p>PMON has hidden parameter by default 10 minutes<br />
to scan dead process.</p>
<p>no chance to do workaround as of metalink,<br />
the note will state that database should be upgraded<br />
to atleast 10.2.0.3&#8230;phiew</p>
<p>dong sync manualy from the latest applied SCN<br />
and then skip capture SCN to start from<br />
the last sync SCN :(</p>
<pre>exec dbms_capture_adm.stop_capture(capture_name =&gt; 'AQ_CAPTURE');
delete from system.logmnr_restart_ckpt$ where spare1 &lt; nnnn ;
exec dbms_capture_adm.alter_capture(capture_name =&gt; 'AQ_CAPTURE', first_scn =&gt; nnnn, start_scn =&gt; nnnn);
exec dbms_capture_adm.start_capture(capture_name =&gt; 'AQ_CAPTURE');</pre>
<p>by looking at the alert log, luckily only objects belongs to sysman schema<br />
got warning&#8230;which those are not captured.</p>
<br />Filed under: <a href='http://ora62.wordpress.com/category/streams/'>streams</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=46&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2011/04/19/skip-streams-capture-scn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>Insert performance oracle 10.2</title>
		<link>http://ora62.wordpress.com/2009/01/24/insert-performance-oracle-102/</link>
		<comments>http://ora62.wordpress.com/2009/01/24/insert-performance-oracle-102/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 09:23:23 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[benchmark]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=40</guid>
		<description><![CDATA[Bulk load insert, also application with high insert into a transaction table could lead to some bottleneck issue: - log file sync issue, this kind of wait event due to frequent commit - log buffer space issue, due to lack of log_buffer memory setting &#8211; free buffer waits, due to lack of db_cache_size memory setting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=40&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bulk load insert, also application with high insert into a transaction table could lead to some bottleneck issue:<br />
- log file sync issue, this kind of wait event due to frequent commit</p>
<p>- log buffer space issue, due to lack of log_buffer memory setting &#8211; free buffer waits, due to lack of db_cache_size memory setting</p>
<p>- buffer busy waits, this issue related to concurrency and transactions at the same table which being inserted, also sometimes too many indexes or indexes which has high clustering factors will lead to this wait event issue.</p>
<p>in fact if we doing direct path inserts, some issues can be avoided, such as free buffer waits, but wait event that related to redo is intact. in 10.2 there is a feature called asynchronous commit, which can alleviate redo wait event issue, but index issue still carryon even we using direct path.</p>
<p>there is trick approach which depends on your application behavior to boost insert performance.</p>
<p>- temporary table</p>
<p>- asynchronous commit (but be aware of recovery and data consistency)</p>
<p>- direct path</p>
<br />Posted in benchmark  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=40&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2009/01/24/insert-performance-oracle-102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>streams printing error queue ORA-01403 related</title>
		<link>http://ora62.wordpress.com/2008/09/04/streams-printing-error-queue-ora-01403-related/</link>
		<comments>http://ora62.wordpress.com/2008/09/04/streams-printing-error-queue-ora-01403-related/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 04:44:25 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[replication]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=19</guid>
		<description><![CDATA[Definitely we have to know/care about application behavior for the future debugging, tracing and error handling when configuring oracle streams environment. I believe that after configuring oracle streams environment 99% we have to monitor for the future &#8216;fun&#8217; :) 1. Configuration Configure oracle streams environment is quite handy and easy for us. Oracle given us [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=19&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Definitely we have to know/care about application behavior for the future debugging, tracing and error handling when configuring oracle streams environment.</p>
<p>I believe that after configuring oracle streams environment 99% we have to monitor for the future &#8216;fun&#8217; :)</p>
<p>1. Configuration</p>
<p>Configure oracle streams environment is quite handy and easy for us. Oracle given us a package to generate necessary scripts that needed for configuration to take place. (I have used this facility in oracle 10gR2). Streams also can communicate to cross platform with cross oracle version&#8230;this is the feature that really useful for my life :)</p>
<p>2. The game starting now</p>
<p>After configuration has been done. Error queue always happening at destination database, when user updating data let say master form, even when application server which point to destination database was killed, sadly synchronization was not happened, it always give me error message &#8220;ORA-01403: no data found&#8221;.</p>
<p>3. Printing error</p>
<p>Look at stream documentation, we can find script to print all error message with particular data either by specifying local transaction ID or can grab all from the DBA_APPY_ERROR. The script  simply extract and print LCR vertically.</p>
<p>4. Resolve error</p>
<p>Let me check each error and do manual resolution to know the pattern of the erroneous  by updating data on destination, using this method until my hand cannot accept again and bore to press the keyboard :)</p>
<p>5. Manual error handling</p>
<p>Based on the pattern that I got from previous step, I developed pl/sql package to handle the error in the streams destination due to apply process is in the destination. This package simply extract LCR and find the row in the particular table&#8217;s row updating it to match with the OLD LCR&#8217;s value. Interestingly this approach can handle for some tables (actually table with few column). For a lot of column&#8217;s tables this solution cannot accomplished.</p>
<p>6. Trace apply error queue</p>
<p>To trace streams apply error to see what is going on:</p>
<p>alter session set events=&#8217;10308 trace name context forever, level 8&#8242; ;<br />
alter session set events=&#8217;26700 trace name context forever, level 15999&#8242;;<br />
alter session set events=&#8217;1403 trace name errorstack level 1&#8242;;</p>
<p>Find interesting for the tables which has lot of column, which is not get printed by print_lcr as of point 3, event if I changed my packaged to accommodate the hidden column, it always skipped by print_lcr (my pl/sql also utilize print_lcr to extract LCR), so&#8230; is the game over? :)</p>
<p>7. Final solution</p>
<p>Finally by searching document for the comparability between OLD value in the LCR and the existing record at the destination&#8217;s table found interesting package to do it&#8230;..</p>
<p>DECLARE<br />
cols DBMS_UTILITY.LNAME_ARRAY;<br />
BEGIN<br />
cols(1):=&#8217;COLUMN1&#8242;;<br />
cols(2):=&#8217;COLUMN2&#8242;;<br />
cols(3):=&#8217;COLUMN3&#8242;;<br />
DBMS_APPLY_ADM.COMPARE_OLD_VALUES(<br />
object_name  =&gt; &#8216;SCHEMA.TABLENAME&#8217;,<br />
column_table =&gt; cols,<br />
operation    =&gt; &#8216;*&#8217;,<br />
compare      =&gt; false);<br />
END;</p>
<p>The above package really safe my life :), it simply will not performs comparation for the listed columns, since streams when applying LCR will compare all columns even PK has been added to the supplemental log. This behavior as I understand aimed to do synchronization for tables without PK, Unique indexes.</p>
<p>now the game paused&#8230;waiting for next fun :)</p>
<p>Ujang| Indonesia | Jakarta</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ora62.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ora62.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=19&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2008/09/04/streams-printing-error-queue-ora-01403-related/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
		<item>
		<title>trace 10046 analyzer</title>
		<link>http://ora62.wordpress.com/2008/08/14/trace-10046-analyzer/</link>
		<comments>http://ora62.wordpress.com/2008/08/14/trace-10046-analyzer/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 12:07:54 +0000</pubDate>
		<dc:creator>ora62</dc:creator>
				<category><![CDATA[sql tuning]]></category>

		<guid isPermaLink="false">http://ora62.wordpress.com/?p=13</guid>
		<description><![CDATA[generating trace 10046 quite interesting in analysis. from the 10046 trace raw contents, we actually can do analysis, but internal recursive sql sometimes makes our live harder :) metalink note 224270.1 give us a tool to analyze the trace easily, but again got problem when I need to know the history by mean of step-by-step [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=13&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>generating trace 10046 quite interesting in analysis.</p>
<p>from the 10046 trace raw contents, we actually can do analysis, but internal recursive sql sometimes makes our live harder :)</p>
<p>metalink note 224270.1 give us a tool to analyze the trace easily, but again got problem when I need to know the history by mean of step-by-step application make database calls. I cannot see control transaction on the trace file.</p>
<p>we can only find &#8220;XCTEND rlbk=&lt;number&gt;, rd_only=&lt;number&gt;&#8221;, based on metalink note 371984.1:</p>
<p>rlbk 1 if a rollback was performed, 0 if no rollback (commit).<br />
rd_only 1 if transaction was read only, 0 if changes occurred.<br />
the harder part of the raw data of trace 10046 those transaction control is reside at the middle of cursor parsing :(</p>
<p>FETCH #10:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=49665367470<br />
WAIT #10: nam=&#8217;SQL*Net message from client&#8217; ela= 472 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49665367990<br />
STAT #10 id=1 cnt=1 pid=0 pos=1 obj=0 op=&#8217;FAST DUAL  (cr=0 pr=0 pw=0 time=1 us)&#8217;<br />
WAIT #12: nam=&#8217;SQL*Net message to client&#8217; ela= 1 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49665368337<br />
WAIT #12: nam=&#8217;SQL*Net message from client&#8217; ela= 376 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49665368739<br />
XCTEND rlbk=0, rd_only=1<br />
WAIT #0: nam=&#8217;SQL*Net message to client&#8217; ela= 1 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49665368872<br />
*** 2008-08-14 12:06:51.980<br />
WAIT #0: nam=&#8217;SQL*Net message from client&#8217; ela= 53635836 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49719004740<br />
WAIT #0: nam=&#8217;SQL*Net message to client&#8217; ela= 3 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49719005053<br />
WAIT #0: nam=&#8217;SQL*Net message from client&#8217; ela= 6340 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=49719011426</p>
<p>even when I tried to make a trick by generating new cursor parsing by replacing the XCTEND bla..bla&#8230;bla with something like this:</p>
<p>:%s/XCTEND rlbk=0, rd_only=1/^M=====================^MPARSING IN CURSOR #10 len=27 dep=0 uid=57 oct=3 lid=57 tim=49665366604 hv=824003789 ad=&#8217;ca1c6268&#8242;^Mcommit</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Note to get ^M use following<br />
Hold down the Ctrl, and press v m<br />
DO NOT USE Shift+6 and Shift+M<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>still from the trace analyzer output give me a confusing (the order of transaction control still doen&#8217;t make any sense &#8211; it totally wrong order).</p>
<p>anyway good tools to analyze execution plan, due to the parameter that makes CBO work are in one place with the explain plan gathered.</p>
<p>Ujang| Indonesia | Jakarta</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ora62.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ora62.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ora62.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ora62.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ora62.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ora62.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ora62.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ora62.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ora62.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ora62.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ora62.wordpress.com&amp;blog=4493966&amp;post=13&amp;subd=ora62&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ora62.wordpress.com/2008/08/14/trace-10046-analyzer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">ora62</media:title>
		</media:content>
	</item>
	</channel>
</rss>
