<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9154833686311218941</id><updated>2012-02-16T07:02:47.101-08:00</updated><category term='Oracle'/><category term='Informatica'/><category term='DB2'/><category term='SQL Server'/><title type='text'>All About Databases</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-5292169946608273453</id><published>2012-02-14T02:54:00.000-08:00</published><updated>2012-02-14T02:55:51.171-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>gathering system stats</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Verdana;"&gt;The workload needs to be very exhaustive to gather the             correct set of values - a good mix of sessions some doing             multi-block reads and others sequential reads. I tried to             capture these stats using three different workloads, and the             stats had a stark variation.&lt;br /&gt;Workload1: created two indexes on a fact table.&lt;br /&gt;Workload2: Executed 8 BI queries in parallel.&lt;br /&gt;Workload3: Executed a bi query making it fairly complex by             self joining the fact table.&lt;br /&gt;&lt;br /&gt;These are the results:&lt;br /&gt;&lt;/span&gt;         &lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0" style="width: 378px;"&gt;&lt;colgroup&gt;&lt;col style="width: 120pt;" width="160"&gt;&lt;/col&gt; &lt;col style="width: 53pt;" width="70"&gt;&lt;/col&gt; &lt;col span="2" style="width: 56pt;" width="74"&gt;&lt;/col&gt; &lt;/colgroup&gt;&lt;tbody&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt; width: 120pt;" width="160"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td style="width: 53pt;" width="70"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;Workload1&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td style="width: 56pt;" width="74"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;Workload2&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td style="width: 56pt;" width="74"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;Workload3&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;CPUSPEED&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;948&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;948&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;916&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;CPUSPEEDNW&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;948&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;948&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;948&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;IOSEEKTIM&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;5&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;5&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;5&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;IOTFRSPEED&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;91662&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;91662&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;91662&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;MAXTHR&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;311120896&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;129651712&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;360448&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;MBRC&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;3&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;6&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;MREADTIM&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;16.741&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;2419.531&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;35318.899&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;SLAVETHR&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;5065728&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;4799488&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;4799488&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;               &lt;td height="20" style="height: 15pt;"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;SREADTIM&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;547.395&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;               &lt;td align="right"&gt;&lt;span style="color: #cc0000;"&gt;&lt;small&gt;&lt;span style="font-family: Verdana;"&gt;331.686&lt;/span&gt;&lt;/small&gt;&lt;/span&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;/tbody&gt;         &lt;/table&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;11.2 has a bug which miscalculates MREAD and SREAD time inflating them by a factor of 1000:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;Bug 9842771 - Wrong SREADTIM and MREADTIM statistics in AUX_STATS$ [ID 9842771.8]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;best is to set these stats manually:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;http://www.dbi-services.com/index.php/blog/entry/problem--strange-figures-while-collecting-the-oracle-optimizer-system-statistics-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;Both these link are mentioned in Jonathan blog post - http://jonathanlewis.wordpress.com/category/oracle/statistics/system-stats/.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana;"&gt;Further to this, as far as I understand the absolute values of these two attributes MREADTIM and SREADTIM is something that is inconsequential. Its the ratio of these two that drives optimizer to choose between Full table scan or Index scans.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-5292169946608273453?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/5292169946608273453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=5292169946608273453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5292169946608273453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5292169946608273453'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2012/02/gathering-system-stats.html' title='gathering system stats'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-5628274971801227083</id><published>2011-06-27T23:16:00.000-07:00</published><updated>2011-06-27T23:17:58.410-07:00</updated><title type='text'>Establishing remote connection to DB2 Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 11px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, Geneva, sans-serif;"&gt;To be able to use db2 connect from client, there are few configuration steps to be followed as mentioned here:&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: 'Courier New', monospace; font-size: 12px;"&gt;&lt;u style="font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"&gt;&lt;br /&gt;&lt;/u&gt;&lt;/pre&gt;&lt;pre style="font-family: 'Courier New', monospace; font-size: 12px;"&gt;&lt;u style="font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"&gt;on&amp;nbsp;DB2 Server&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;db2set&amp;nbsp;DB2COMM=tcpip&lt;br /&gt;update&amp;nbsp;database&amp;nbsp;manager&amp;nbsp;configuration&amp;nbsp;using&amp;nbsp;svcename&amp;nbsp;50000&lt;br /&gt;db2stop&lt;br /&gt;db2start&lt;br /&gt;&lt;br /&gt;&lt;u style="font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"&gt;on&amp;nbsp;Client&amp;nbsp;Side&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;db2&amp;nbsp;UNCATALOG&amp;nbsp;DATABASE&amp;nbsp;db_name&lt;br /&gt;db2&amp;nbsp;UNCATALOG&amp;nbsp;DCS&amp;nbsp;DATABASE&amp;nbsp;db_name&lt;br /&gt;db2&amp;nbsp;UNCATALOG&amp;nbsp;NODE&amp;nbsp;server_name&lt;br /&gt;db2&amp;nbsp;CATALOG&amp;nbsp;TCPIP&amp;nbsp;NODE&amp;nbsp;server_name&amp;nbsp;REMOTE&amp;nbsp;server_name&amp;nbsp;SERVER&amp;nbsp;50000&amp;nbsp;REMOTE_INSTANCE&amp;nbsp;DB2&amp;nbsp;SYSTEM&amp;nbsp;server_name&amp;nbsp;OSTYPE&amp;nbsp;AIX&lt;br /&gt;db2&amp;nbsp;CATALOG&amp;nbsp;DCS&amp;nbsp;DATABASE&amp;nbsp;db_name&amp;nbsp;AS&amp;nbsp;db_name&lt;br /&gt;db2&amp;nbsp;CATALOG&amp;nbsp;DATABASE&amp;nbsp;db_name&amp;nbsp;AS&amp;nbsp;db_name&amp;nbsp;AT&amp;nbsp;NODE&amp;nbsp;server_name&amp;nbsp;AUTHENTICATION&amp;nbsp;DCS&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;i style="font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"&gt;&lt;br /&gt;&lt;/i&gt;&lt;/pre&gt;&lt;pre style="font-family: 'Courier New', monospace; font-size: 12px;"&gt;&lt;i style="font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"&gt;$&amp;nbsp;db2&amp;nbsp;connect&amp;nbsp;to&amp;nbsp;db_name&amp;nbsp;user&amp;nbsp;user_name&amp;nbsp;using&amp;nbsp;password&lt;/i&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, Geneva, sans-serif;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: 'Courier New', monospace; font-size: 12px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 11px;"&gt;&lt;i style="font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Database&amp;nbsp;Connection&amp;nbsp;Information&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Database&amp;nbsp;server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;DB2/AIX64&amp;nbsp;9.1.6&lt;br /&gt;&amp;nbsp;SQL&amp;nbsp;authorization&amp;nbsp;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;user_name&lt;br /&gt;&amp;nbsp;Local&amp;nbsp;database&amp;nbsp;alias&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;db_name&lt;/i&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-5628274971801227083?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/5628274971801227083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=5628274971801227083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5628274971801227083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5628274971801227083'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2011/06/establishing-remote-connection-to-db2.html' title='Establishing remote connection to DB2 Server'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-3959941574699117646</id><published>2010-10-07T00:10:00.000-07:00</published><updated>2010-10-18T21:46:10.853-07:00</updated><title type='text'>Intra-Block versus Inter-Block row chaining</title><content type='html'>Oracle database can store only 255 columns in a single row-piece. Anything beyond 255 columns will be stored as a separate row, chained to the main one. This kind of chaining is different from what we know as migrated/chained rows which happen either because of lack of space in current block which causes rows to migrate when updated leaving behind their new address or due to row size more than the block size itself. Both these types of chaining are inter-block row chaining.&lt;br /&gt;&lt;br /&gt;intra-block row chaining (as i mentioned above happens due to number of columns exceeding 255) does not cause as much a performance issue as inter-block row chaining. This is because all the row contents could still be found within the same block. When there is a full table scan, DB can easily do scattered reads over this table with number of blocks spanning up to the value for parameter db_file_multiblock_read_count. For scanning rows which are chained to another block, as is the case with migrated/chained rows, DB has to do sequential reads with one block read at a time. This summarily degrades query performance.&lt;br /&gt;&lt;br /&gt;Unlike Inter-block row chaining, Intra-block row chaining cannot be detected using ANALYZE TABLE LIST CHAINED ROWS command. However, there is a way to see to what extent the rows are chained. Look out for statistic " table fech continued row". As you access the table with 255+ columns, this value will keep increasing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: 10pt;"&gt;&amp;nbsp;select name, value from v$sysstat where name like 'table fetch %';&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Note that if all the columns beyond 255 columns have NULL values, the row will not be chained.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-3959941574699117646?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/3959941574699117646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=3959941574699117646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3959941574699117646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3959941574699117646'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2010/10/intra-block-versus-inter-block-row.html' title='Intra-Block versus Inter-Block row chaining'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-4648466591536442124</id><published>2010-05-10T02:16:00.000-07:00</published><updated>2010-05-10T02:58:14.923-07:00</updated><title type='text'>BI Apps ETL: Handling statistics gathering over tables in parallel</title><content type='html'>&lt;div style="font-family: Verdana,sans-serif;"&gt;For one of the BI Apps incremental ETL execution, it was observed that the major time is consumed during statistics gathering over some of the warehouse tables. There were three tables which took 1 hr each to execute. When run standalone, gathering statistics over each of these tables took only 3 minutes. So, what was so wrong during the ETL ??&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Upon closely observing the DAC execution plan it was found that all these three tables were analyzed in parallel. It was not a coincidence. In fact, each time these three tables would land up being analyzed in parallel. So, the question is how come !!!&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;There was a task group defined which had collection of six tasks which where loading into these three tables. Truncate table option was enabled over this task group. This caused all query indexes to be created over these three tables once all the tasks in this task group finished loading these three tables. While query indexes were created in parallel and one table had all indexes created while the other tables still had them being created, statistics gathering over the table did not spawn. Only after all the three tables had all the indexes created, analyze command over the three table was fired. This caused all these three tables getting created in parallel. Is executing these three tables in parallel so much resource consuming that time taken jumped 20 times than when run one at a time ??&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Lets see the command being used to analyze these tables:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;exec DBMS_STATS.GATHER_TABLE_STATS(ownname =&amp;gt; USER, tabname =&amp;gt; 'W_TAB_D', estimate_percent =&amp;gt; DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt =&amp;gt; 'FOR ALL INDEXED COLUMNS SIZE AUTO',cascade =&amp;gt; false ,&lt;span style="color: red;"&gt;degree =&amp;gt;DBMS_STATS.AUTO_DEGREE&lt;/span&gt; );&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;When I executed all three tables in parallel, maximum time taken by any of analyze commands was 26 minutes (during etl there were some more Informatica jobs running which would have further slowed it down to take 1 hr). This is what I observed in v$sysstat view:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Before firing all three commands in parallel:&lt;br /&gt;--------------------------------------------------- &lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Parallel operations not downgraded&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;br /&gt;Parallel operations downgraded to serial&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&lt;br /&gt;After firing all three commands in parallel:&lt;br /&gt;---------------------------------------------------- &lt;br /&gt;Parallel operations not downgraded&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;br /&gt;Parallel operations downgraded to serial&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;This shows that all the parallel servers were put to use by analyze over one of the table and rest of the two were then executed serially. This serial execution caused the other two analyze to take more time.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Now, the option was to either segregate the tasks with in the task group in three different task groups, or, to do something to speed up the analyze over these three tables in parallel.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;First option was not so enticing given that this task group is shipped OOTB and any changes might impact the functionality. Also, all the tasks in this task groups were loading different tables in a given order, so changing the order by segregating them in different task groups was not so straight forward. So, the choice left was to speed up the statistics gathering over the table.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Since it was observed that parallel servers were hogged by analyze over one single table, It was decided to override the degree parameter in the analyze command and set it a value so that all the three execution will get enough parallel servers. We may not get the performance as that of standalone execution, but it might still be better than what was observed.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;So, the revised syntax is:&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;exec DBMS_STATS.GATHER_TABLE_STATS(ownname =&amp;gt; USER, tabname =&amp;gt; 'W_TAB_D', estimate_percent =&amp;gt; DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt =&amp;gt; 'FOR ALL INDEXED COLUMNS SIZE AUTO',cascade =&amp;gt; false ,&lt;span style="color: red;"&gt;degree =&amp;gt;4&lt;/span&gt;);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;When executed in parallel, the maximum time taken by any of these stands at 19 minutes. v$sysstat shows no jobs being downgraded to serial.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;Parallel operations not downgraded&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&lt;br /&gt;Parallel operations downgraded to serial&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;This brought about performance improvement of 27%. Obviously, it is yet to be seen how it fares when we incorporate these changes in DAC for etl purpose. Will post more on what further is found.&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-4648466591536442124?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/4648466591536442124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=4648466591536442124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4648466591536442124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4648466591536442124'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2010/05/bi-apps-gathering-statistics-takes-lot.html' title='BI Apps ETL: Handling statistics gathering over tables in parallel'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-5872953781297975200</id><published>2010-03-25T04:36:00.001-07:00</published><updated>2010-03-25T04:37:14.241-07:00</updated><title type='text'>Linux : Scanning for an occurance of string in all the files in folder and its sub-folders</title><content type='html'>find . -exec grep "Upper" {} /dev/null \;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-5872953781297975200?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/5872953781297975200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=5872953781297975200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5872953781297975200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5872953781297975200'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2010/03/linux-scanning-for-occurance-of-string.html' title='Linux : Scanning for an occurance of string in all the files in folder and its sub-folders'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-341825625199014419</id><published>2010-01-28T20:54:00.000-08:00</published><updated>2010-01-28T20:54:30.662-08:00</updated><title type='text'>Upgrading AIX system to next Technology Level</title><content type='html'>&lt;pre style="font-family: Courier New,monospace;"&gt;Refer&amp;nbsp;to&amp;nbsp;below&amp;nbsp;link&amp;nbsp;for&amp;nbsp;upgrading&amp;nbsp;technology&amp;nbsp;level:&lt;br /&gt;http://www.ibm.com/developerworks/aix/library/au-aixservicepacks/index.html&lt;br /&gt;&lt;br /&gt;As&amp;nbsp;root&amp;nbsp;user:&lt;br /&gt;#&amp;nbsp;suma&amp;nbsp;-c&amp;nbsp;-a&amp;nbsp;HTTP_PROXY=http://[proxy]:[port]/&lt;br /&gt;#&amp;nbsp;suma&amp;nbsp;-c&amp;nbsp;-a&amp;nbsp;FTP_PROXY=http://[proxy]:[port]/&lt;br /&gt;#smit&amp;nbsp;suma&lt;br /&gt;-&amp;gt;&amp;nbsp;select&amp;nbsp;option&amp;nbsp;"Download&amp;nbsp;Updates&amp;nbsp;Now"&lt;br /&gt;-&amp;gt;&amp;nbsp;select&amp;nbsp;"Download&amp;nbsp;Maintenance&amp;nbsp;Level&amp;nbsp;or&amp;nbsp;Technology&amp;nbsp;Level&lt;br /&gt;-&amp;gt;&amp;nbsp;Provide&amp;nbsp;TL&amp;nbsp;as&amp;nbsp;5300-07 for e.g.&lt;br /&gt;&lt;br /&gt;Once&amp;nbsp;all&amp;nbsp;files&amp;nbsp;are&amp;nbsp;downloaded.&amp;nbsp;Start&amp;nbsp;installation.&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;inutoc&lt;br /&gt;#&amp;nbsp;smit&amp;nbsp;update_all&lt;br /&gt;-&amp;gt;&amp;nbsp;provide&amp;nbsp;the&amp;nbsp;directory&amp;nbsp;for&amp;nbsp;software&amp;nbsp;as&amp;nbsp;"/usr/sys/inst.images"&lt;br /&gt;-&amp;gt;&amp;nbsp;toggle&amp;nbsp;the&amp;nbsp;"Accept&amp;nbsp;new&amp;nbsp;license&amp;nbsp;agreement"&amp;nbsp;to&amp;nbsp;Yes.&lt;br /&gt;-&amp;gt;&amp;nbsp;[Enter]&lt;/pre&gt;&lt;pre style="font-family: Courier New,monospace;"&gt;-&amp;gt; [Enter].&amp;nbsp;&lt;br /&gt;-&amp;gt;&amp;nbsp;Upgrade starts...&lt;/pre&gt;&lt;pre style="font-family: Courier New,monospace;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="font-family: Courier New,monospace;"&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-341825625199014419?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/341825625199014419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=341825625199014419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/341825625199014419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/341825625199014419'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2010/01/upgrading-aix-system-to-next-technology.html' title='Upgrading AIX system to next Technology Level'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-8192087004981599888</id><published>2010-01-07T01:27:00.000-08:00</published><updated>2010-01-07T01:27:48.384-08:00</updated><title type='text'>DAC: no db2jdbc in java.library.path</title><content type='html'>This error is generated when you try to establish connection to DB2 using DAC even if you have db2java.zip present in &lt;dac&gt; lib directory.&lt;/dac&gt;&lt;br /&gt;&lt;br /&gt;To resolve this issue, edit &lt;dac&gt;\dac_env.bat and add &lt;db2&gt;\SQLLIB\bin to path variable.&lt;/db2&gt;&lt;/dac&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-8192087004981599888?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/8192087004981599888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=8192087004981599888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8192087004981599888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8192087004981599888'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2010/01/dac-no-db2jdbc-in-javalibrarypath.html' title='DAC: no db2jdbc in java.library.path'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-152549390547020881</id><published>2009-12-06T21:04:00.000-08:00</published><updated>2009-12-06T21:06:27.858-08:00</updated><title type='text'>Oracle : Values of Hidden init parameters</title><content type='html'>Hiddle parameter values can not be accessed using v$parameter view. Use the following script:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;  x.ksppinm name,&lt;br /&gt;  y.ksppstvl VALUE,&lt;br /&gt;  decode(ksppity,&lt;br /&gt;    1,   'BOOLEAN',&lt;br /&gt;    2,   'STRING',&lt;br /&gt;    3,   'INTEGER',&lt;br /&gt;    4,   'PARAMETER FILE',&lt;br /&gt;    5,   'RESERVED',&lt;br /&gt;    6,   'BIG INTEGER',&lt;br /&gt;    'UNKNOWN') typ,&lt;br /&gt;  decode(ksppstdf,&lt;br /&gt;    'TRUE',   'DEFAULT VALUE',&lt;br /&gt;    'FALSE',   'INIT.ORA') isdefault,&lt;br /&gt;  decode(bitand(ksppiflg / 256,   1),&lt;br /&gt;    1,   'IS_SESS_MOD(TRUE)',&lt;br /&gt;    'FALSE') isses_modifiable,&lt;br /&gt;  decode(bitand(ksppiflg / 65536,   3),&lt;br /&gt;    1,   'MODSYS(NONDEFERED)',&lt;br /&gt;    2,   'MODSYS(DEFERED)',&lt;br /&gt;    3,   'MODSYS(*NONDEFERED*)',&lt;br /&gt;    'FALSE') issys_modifiable,&lt;br /&gt;  decode(bitand(ksppstvf,   7),&lt;br /&gt;    1,   'MODIFIED_BY(SESSION)',&lt;br /&gt;    4,   'MODIFIED_BY(SYSTEM)',&lt;br /&gt;    'FALSE') is_modified,&lt;br /&gt;  decode(bitand(ksppstvf,   2),&lt;br /&gt;    2,   'ORA_STARTUP_MOD(TRUE)',&lt;br /&gt;    'FALSE') is_adjusted,&lt;br /&gt;  ksppdesc description,&lt;br /&gt;  ksppstcmnt update_comment&lt;br /&gt;FROM x$ksppi x,&lt;br /&gt;  x$ksppcv y&lt;br /&gt;WHERE x.inst_id = userenv('Instance')&lt;br /&gt; AND y.inst_id = userenv('Instance')&lt;br /&gt; AND x.indx = y.indx&lt;br /&gt; AND x.ksppinm LIKE '%pga%';&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-152549390547020881?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/152549390547020881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=152549390547020881' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/152549390547020881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/152549390547020881'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/12/oracle-values-of-hidden-init-parameters.html' title='Oracle : Values of Hidden init parameters'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-1844026822448036966</id><published>2009-11-18T01:38:00.000-08:00</published><updated>2009-11-18T03:16:17.820-08:00</updated><title type='text'>Configure DBD::ODBC on AIX 5.3</title><content type='html'>DBD::ODBC perl module helps connecting to various datasources using ODBC.  In order to get this module working, one needs to install unixodbc on aix platform.&lt;br /&gt;&lt;br /&gt;1.Download unixODBC-2.2.11&lt;br /&gt;- Version 2.2.14 has some issues causing installation to fail.&lt;br /&gt;2.&lt;br /&gt;export CC=xlc_r&lt;br /&gt;export CCC=xlC_r&lt;br /&gt;&lt;br /&gt;3. For 64 bit OS&lt;br /&gt;export OBJECT_MODE=64&lt;br /&gt;export CFLAGS=-q64&lt;br /&gt;&lt;br /&gt;It is possible to install 32 bit binaries on 64 bit OS. Just do not set the above two variables.&lt;br /&gt;&lt;br /&gt;4 Execute configure&lt;br /&gt;./configure --prefix=/opt/unixODBC --disable-gui CC=xlc_r CXX=xlC_r&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;&lt;br /&gt;5. Generate shared object libraries (/opt/unixODBC/lib)&lt;br /&gt;ar -x libodbc.a&lt;br /&gt;ar -x libodbcinst.a&lt;br /&gt;ar -x libodbccr.a&lt;br /&gt;&lt;br /&gt;5. Set the following environment variables&lt;br /&gt;&lt;br /&gt;export ODBCINI=/usr/scratch/odbc.ini&lt;br /&gt;export ODBCHOME=/opt/unixODBC&lt;br /&gt;export LIBPATH=/opt/unixODBC/lib:${LIBPATH}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If perl is already installed, install module DBI and then DBD::ODBC. For new install follow the procedure mentioned below:&lt;br /&gt;&lt;br /&gt;1. Download perl 5.10.1&lt;br /&gt;&lt;br /&gt;2 If OS is 64 bit use flag -Duse64bitall&lt;br /&gt;sh Configure -Duse64bitall  -Dprefix=/opt/perl -des&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;&lt;br /&gt;To install 32 bit perl binaries, do not use flag -Duse64bitall&lt;br /&gt;&lt;br /&gt;3. Configure CPAN. First configure it in default mode. Then make changes to the proxy settings&lt;br /&gt;cpan&gt; o conf init /proxy/&lt;br /&gt;--specify ftp_proxy and http_proxy to be used&lt;br /&gt;cpan&gt; 0 conf commit&lt;br /&gt;&lt;br /&gt;4. Install DBI module&lt;br /&gt;cpan&gt; install DBI&lt;br /&gt;&lt;br /&gt;5. install DBD::ODBC&lt;br /&gt;cpan&gt; install DBD::ODBC&lt;br /&gt;&lt;br /&gt;you should be all set to use perl DBD::ODBC module !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-1844026822448036966?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/1844026822448036966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=1844026822448036966' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1844026822448036966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1844026822448036966'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/11/cion.html' title='Configure DBD::ODBC on AIX 5.3'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2715313404914701551</id><published>2009-11-16T21:17:00.000-08:00</published><updated>2009-11-16T21:22:02.922-08:00</updated><title type='text'>CPAN : reset proxy settings</title><content type='html'>&lt;pre&gt;To reset proxy setting for CPAN&lt;br /&gt;&lt;br /&gt;CPAN&gt; o conf init /proxy/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2715313404914701551?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2715313404914701551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2715313404914701551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2715313404914701551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2715313404914701551'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/11/cpan-reset-proxy-settings.html' title='CPAN : reset proxy settings'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-7197658708208999641</id><published>2009-11-16T21:11:00.000-08:00</published><updated>2009-11-16T21:14:23.641-08:00</updated><title type='text'>setting root prompt with sudo access</title><content type='html'>If you have sudo access to a machine, it is convenient to set root prompt and then execute commands instead of using "sudo command &lt;command&gt;" everytime.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"sudo su -" would get you the root prompt.&lt;/command&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-7197658708208999641?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/7197658708208999641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=7197658708208999641' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7197658708208999641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7197658708208999641'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/11/setting-root-prompt-with-sudo-access.html' title='setting root prompt with sudo access'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-4810415750120512893</id><published>2009-10-07T22:26:00.000-07:00</published><updated>2009-10-07T22:30:46.381-07:00</updated><title type='text'>Removing Oracle 11gR2 software</title><content type='html'>To clean up the installed Oracle 11gR2 software, execute the deinstall script. It is present in $ORACLE_HOME/deinstall directory.&lt;br /&gt;&lt;br /&gt;$ORACLE_HOME/deinstall/deinstall&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Checking for required files and bootstrapping ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Please wait ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Location of logs /scratch/Oracle/OraInventory/logs/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;############ ORACLE DEINSTALL &amp;amp; DECONFIG TOOL START ############&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;######################## CHECK OPERATION START ########################&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Install check configuration START&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Checking for existence of the Oracle home location /scratch/Oracle11gr2/product/11.2.0/dbhome_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Oracle Home type selected for de-install is: SIDB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Oracle Base selected for de-install is: /scratch/Oracle11gr2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Checking for existence of central inventory location /scratch/Oracle/OraInventory&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-4810415750120512893?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/4810415750120512893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=4810415750120512893' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4810415750120512893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4810415750120512893'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/10/removing-oracle-11gr2-databasesoftware.html' title='Removing Oracle 11gR2 software'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-7831333923740799577</id><published>2009-06-07T23:16:00.000-07:00</published><updated>2011-11-24T23:36:22.310-08:00</updated><title type='text'>Informatica : Setting codepage</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Informatica integration service sometimes fails with the following error when trying to startup:&lt;br /&gt;&lt;div&gt;LM_36011&lt;/div&gt;&lt;div&gt;Code page mismatch. Service process is running in code page [ISO 8859-1 Western European] whereas the service is configured in the Admin Console to run in code page [UTF-8 encoding of Unicode]&lt;br /&gt;&lt;br /&gt;Set the following environment variables on the Linux based server hosting Informatica nodes:&lt;br /&gt;setenv LANG en_US.utf8&lt;br /&gt;setenv LC_ALL en_US.utf8&lt;br /&gt;setenv INFA_CODEPAGENAME UTF-8&lt;br /&gt;&lt;br /&gt;For windows, set environment variables LC_ALL and LANG to us_UTF8&lt;br /&gt;&lt;br /&gt;Re-start the node service.&lt;br /&gt;&lt;br /&gt;Now, integration service can be started with codepage set to UTF-8.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-7831333923740799577?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/7831333923740799577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=7831333923740799577' title='70 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7831333923740799577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7831333923740799577'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/06/informatica-setting-codepage.html' title='Informatica : Setting codepage'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>70</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-123985924051340548</id><published>2009-04-26T22:05:00.000-07:00</published><updated>2009-04-26T23:22:12.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : Using WITH Clause for improving performance</title><content type='html'>Many times using inline views destroy the execution plans. This is mainly because the execution plan of inline view interfere with the overall execution plan of the query.&lt;br /&gt;&lt;br /&gt;To counter this, inline view can be taken to the top inside WITH clause. But this alone will not help. We need to incorporate hint /*+ materialize */ , as only then database treats the view as a physical table. Database creates a temporary table out of the view which is then used in the query. Execution plan is found far improved than before.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Query with following structure showed nested loop join between tables tab1 and tab2. This mainly was influenced by the inline view. Specifying USE_HASH hint also does not work.&lt;br /&gt;&lt;br /&gt;SELECT col1,&lt;br /&gt;col2,&lt;br /&gt;Sum(col4)&lt;br /&gt;FROM tab1,&lt;br /&gt;tab2,&lt;br /&gt;(SELECT DISTINCT Last_day(To_date(dates,'DD-MM-YYYY')) end_dt,&lt;br /&gt;Add_months(Last_day(To_date(dates,'DD-MM-YYYY')) + 1,&lt;br /&gt;-1) strt_dt,&lt;br /&gt;To_char(To_date(dates,'DD-MON-YYYY'),'MMYYYY') mon_dt&lt;br /&gt;FROM (SELECT To_char(Add_months(SYSDATE,-10) + (LEVEL - 1),'DD-MON-YYYY') AS dates&lt;br /&gt;FROM dual&lt;br /&gt;CONNECT BY To_number(To_char((Add_months(SYSDATE,-10) + (LEVEL - 1)),'YYYYMMDD')) &lt;= To_number(To_char(SYSDATE,'YYYYMMDD')))) tim&lt;br /&gt;WHERE tab1.assign_dt &lt;= tim.end_dt&lt;br /&gt;AND tab1.assign_dt &gt;= tim.strt_dt&lt;br /&gt;AND tab1.col3 = tab2.col3&lt;br /&gt;GROUP BY col1,&lt;br /&gt;col2&lt;br /&gt;&lt;br /&gt;Changing the query to the following using WITH caluse leads to perfect execution plan using HASH join .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;WITH TIM as (&lt;br /&gt;(SELECT /*+ materialize */ DISTINCT Last_day(To_date(dates,'DD-MM-YYYY')) end_dt,&lt;br /&gt;Add_months(Last_day(To_date(dates,'DD-MM-YYYY')) + 1,&lt;br /&gt;-1) strt_dt,&lt;br /&gt;To_char(To_date(dates,'DD-MON-YYYY'),'MMYYYY') mon_dt&lt;br /&gt;FROM (SELECT To_char(Add_months(SYSDATE,-10) + (LEVEL - 1),'DD-MON-YYYY') AS dates&lt;br /&gt;FROM dual&lt;br /&gt;CONNECT BY To_number(To_char((Add_months(SYSDATE,-10) + (LEVEL - 1)),'YYYYMMDD')) &lt;= To_number(To_char(SYSDATE,'YYYYMMDD'))))&lt;br /&gt;)&lt;br /&gt;SELECT col1,&lt;br /&gt;col2,&lt;br /&gt;Sum(col4)&lt;br /&gt;FROM tab1,&lt;br /&gt;tab2,&lt;br /&gt;tim&lt;br /&gt;WHERE tab1.assign_dt &lt;= tim.end_dt&lt;br /&gt;AND tab1.assign_dt &gt;= tim.strt_dt&lt;br /&gt;AND tab1.col3 = tab2.col3&lt;br /&gt;GROUP BY col1,&lt;br /&gt;col2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-123985924051340548?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/123985924051340548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=123985924051340548' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/123985924051340548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/123985924051340548'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/04/oracle-using-with-clause-for-improving.html' title='Oracle : Using WITH Clause for improving performance'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-1480433324572103890</id><published>2009-04-14T02:27:00.000-07:00</published><updated>2009-04-26T23:23:25.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 : collecting detailed statistics</title><content type='html'>to get the best optimizer execution plan, collecting detailed table statisitics might help:&lt;br /&gt;&lt;br /&gt;db2 -x -r "runstats.db2" "select rtrim(concat('runstats on table ',concat(rtrim(tabSchema),concat('.',concat(rtrim(tabname),' on all columns with distribution on all columns and sampled detailed indexes all allow write access'))))) from syscat.tables where type='T'"&lt;br /&gt;db2 -v -f "runstats.db2"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-1480433324572103890?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/1480433324572103890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=1480433324572103890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1480433324572103890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1480433324572103890'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/04/db2-collecting-detailed-statistics.html' title='DB2 : collecting detailed statistics'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-230307660488608732</id><published>2009-04-07T23:32:00.000-07:00</published><updated>2009-04-26T23:23:25.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 : Generating SQL Explain plan</title><content type='html'>This is how explain plan can be generated in DB2 database.&lt;br /&gt;&lt;br /&gt;Create a file statements.db2:&lt;br /&gt;select deptno from dept@&lt;br /&gt;&lt;br /&gt;db2expln -database U001DB -stmtfile statements.db2 -terminator @ -terminal -user siebel siebel&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Section Code Page = 1252&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Estimated Cost = 30087412.000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Estimated Cardinality = 19275950.000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Access Table Name = SIEBEL.S_ORG_EXT  ID = 7,201&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  #Columns = 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Relation Scan&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  Prefetch: Eligible&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Lock Intents&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  Table: Intent Share&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  Row  : Next Key Share&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Sargable Predicate(s)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  Process Build Table for Hash Join&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Left Outer Hash Join&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Early Out: Single Match Per Outer Row&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Estimated Build Size: 7776000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Estimated Probe Size: 9948879872&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  Access Table Name = SIEBEL.S_ORG_EXT  ID = 7,201&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  #Columns = 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  Relation Scan&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;|  |  |  Prefetch: Eligible&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-230307660488608732?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/230307660488608732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=230307660488608732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/230307660488608732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/230307660488608732'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/04/db2-generating-sql-explain-plan.html' title='DB2 : Generating SQL Explain plan'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-8188378603465401099</id><published>2009-04-06T21:39:00.000-07:00</published><updated>2009-04-26T23:24:05.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><title type='text'>INFORMATICA : Truncate Logs</title><content type='html'>There was an unusual behavior when i proceeded with repository manager to truncate the existing session logs. Option "Truncate Log" under "Edit" menu was disabled. Selecting/expanding the required folder also did not help.&lt;br /&gt;&lt;br /&gt;Since my informatica server was on AIX with client on windows, i did the following to truncate the logs:&lt;br /&gt;&lt;br /&gt;$ pmrep&lt;br /&gt;pmrep&gt;connect -r Powercenter -d Domain_server1 -n Administrator -x Administrator&lt;br /&gt;&lt;br /&gt;pmrep&gt;truncatelog -t all&lt;br /&gt;truncatelog completed successfully.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-8188378603465401099?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/8188378603465401099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=8188378603465401099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8188378603465401099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8188378603465401099'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/04/informatica-truncate-logs.html' title='INFORMATICA : Truncate Logs'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-8187889142296769058</id><published>2009-04-05T21:54:00.000-07:00</published><updated>2009-04-26T23:23:25.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 : Establish remote connection on Unix/AIX</title><content type='html'>On server hosting DB2 Database:&lt;br /&gt;db2set DB2COMM=tcpip&lt;br /&gt;update database manager configuration using svcename 50000&lt;br /&gt;db2stop&lt;br /&gt;db2start&lt;br /&gt;&lt;br /&gt;On client server (with DB2 client installed)&lt;br /&gt;db2 UNCATALOG DATABASE U001DB&lt;br /&gt;db2 UNCATALOG DCS DATABASE U001DB&lt;br /&gt;db2 UNCATALOG NODE SERVER1&lt;br /&gt;&lt;br /&gt;db2 CATALOG TCPIP NODE SERVER1 REMOTE SERVER1 SERVER 50000 REMOTE_INSTANCE DB2 SYSTEM SERVER1 OSTYPE AIX&lt;br /&gt;db2 CATALOG DCS DATABASE U001DB AS U001DB&lt;br /&gt;db2 CATALOG DATABASE U001DB AS U001DB AT NODE SERVER1 AUTHENTICATION DCS&lt;br /&gt;&lt;br /&gt;Where, SERVER1 is the server where db2 server resides. U001DB is the db2 database name.&lt;br /&gt;&lt;br /&gt;Test connection:&lt;br /&gt;&lt;br /&gt;On client server:&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;db2 connect to U001DB user siebel using siebel&lt;br /&gt;&lt;br /&gt;  Database Connection Information&lt;br /&gt;&lt;br /&gt;Database server        = DB2/AIX64 9.1.6&lt;br /&gt;SQL authorization ID   = SIEBEL&lt;br /&gt;Local database alias   = U001DB&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-8187889142296769058?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/8187889142296769058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=8187889142296769058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8187889142296769058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8187889142296769058'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/04/db2-establish-remote-connection-on.html' title='DB2 : Establish remote connection on Unix/AIX'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-6503351688548334689</id><published>2009-02-24T21:19:00.000-08:00</published><updated>2009-04-26T23:22:12.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle :Outer Join pitfalls</title><content type='html'>Starting Oracle 10G, Optimizer processes outer joins in much efficient way. Execution plan now has "HASH JOIN RIGHT OUTER", which means that the table with scant records will be scanned first. Table which it is outer joined to will be scanned in the end.  This is especially use full for Datawarehouse queries where Fact table is outer joined to lot of dimension tables. So, DB now does not have to temp read and write the fact table records to join them later to the dimension tables.&lt;br /&gt;&lt;br /&gt;But, before one jumps into concluding that this new method is almost sure way to win, there are few things one should keep in mind.&lt;br /&gt;1. Ensure NOPARALLEL query execution. This new execution plan for outer joins is severely  affected by parallel query i.e. if dimension tables are scanned in parallel and then joined to the fact tables, query exhibits worst performance. To avoid parallel execution, check that tables or any participating indexes have degree set to "1". Alternatively, one an also disable parallel query execution at instance level by setting init parameter "max_parallel_servers" to "0". But this is no advisable as there could be other kind of queries which might want to leverage the advantages of parallel query execution.&lt;br /&gt;&lt;br /&gt;2. Keep huge dimension tables out of the outer joins. If Dimension tables (the one which is outer joined) is huge, lets say...1 Million records (for pga 4 gig), outer join using new execution plan may not help. This is because now hash tables for all the joining dimension could not be kept in memory and DB anyways have to do multipass hash join. "HASH JOIN RIGHT OUTER" based execution plan is effective only if the outer joined tables/dimensions are smaller in size.&lt;br /&gt;&lt;br /&gt;3. Ensure that all the participating tables has the statistics collected. Missing statistics on tables would cause optimizer to pick up execution plan as it existed before 10G and you may not see the new execution plan for outer joined query.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-6503351688548334689?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/6503351688548334689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=6503351688548334689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/6503351688548334689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/6503351688548334689'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/02/oracle-outer-join-pitfalls.html' title='Oracle :Outer Join pitfalls'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-1522935500680951872</id><published>2009-01-15T00:45:00.000-08:00</published><updated>2009-04-26T23:24:05.712-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><title type='text'>Informatica 8.6 : issue with pmcmd</title><content type='html'>On AIX 5.3 pmcmd command fails with following error:&lt;br /&gt;&lt;br /&gt;$ ./pmcmd&lt;br /&gt;&lt;br /&gt;Could not load program ./pmcmd:&lt;br /&gt;Could not load module /u01/Informatica/PowerCenter8.6/server/bin/libpmser.a.&lt;br /&gt;        Dependent module /lib/libz.a could not be loaded.&lt;br /&gt;        The module has an invalid magic number.&lt;br /&gt;Could not load module pmcmd.&lt;br /&gt;        Dependent module /u01/Informatica/PowerCenter8.6/server/bin/libpmser.a could not be loaded.&lt;br /&gt;Could not load module .&lt;br /&gt;&lt;br /&gt;This issue has been fixed on one of the latest hotfixes.&lt;br /&gt;&lt;br /&gt;To workaround the issue, rename  /lib/libz.a so that libz.a which is shipped with Informatica is picked up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-1522935500680951872?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/1522935500680951872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=1522935500680951872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1522935500680951872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1522935500680951872'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/01/informatica-86-issue-with-pmcmd.html' title='Informatica 8.6 : issue with pmcmd'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2495898046217007859</id><published>2009-01-11T22:36:00.000-08:00</published><updated>2010-04-29T22:12:01.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle: Correlated sub-queries effectiveness</title><content type='html'>During ETL extraction and loading into the star-schema based warehouse, we generally confront with the idea of using outer join or correlated subqeries to add dimension table primary key into the fact table. to clarify more, take an example below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: 85%;"&gt;&lt;span style="color: blue;"&gt;INSERT&lt;/span&gt; &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; &lt;span style="color: maroon;"&gt;w_emp_f&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;row_wid&lt;/span&gt; &lt;span style="color: maroon;"&gt;loc_wid&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;ename&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;address&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM&lt;/span&gt;   &lt;span style="color: maroon;"&gt;w_emp_fs&lt;/span&gt; &lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;LEFT&lt;/span&gt; &lt;span style="color: blue;"&gt;OUTER&lt;/span&gt; &lt;span style="color: blue;"&gt;JOIN&lt;/span&gt; &lt;span style="color: maroon;"&gt;w_location_d&lt;/span&gt; &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;ON&lt;/span&gt; &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;datasource_num_id&lt;/span&gt; &lt;span style="color: silver;"&gt;=&lt;/span&gt; &lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;datasource_num_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;AND&lt;/span&gt; &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;integration_id&lt;/span&gt; &lt;span style="color: silver;"&gt;=&lt;/span&gt; &lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;integration_id&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family: Courier New; font-size: 85%;"&gt;&lt;span style="color: maroon;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the example above, row_wid is the unique identifier of the row in Location dimension which needs to be added to Employee Fact table. In reality, there could be up to 30-40 dimensions which need to be joined to Fact table. Outer joining these dimensions is one of the way, but it could be a big overhead if the dimension tables are very large e.g. &amp;gt;2million records. Outer join may not perform.&lt;br /&gt;This is when correlated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;subqueries&lt;/span&gt; come to rescue. We can frame the above load query as follows:&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: 85%;"&gt;&lt;span style="color: blue;"&gt;INSERT&lt;/span&gt; &lt;span style="color: blue;"&gt;INTO&lt;/span&gt; &lt;span style="color: maroon;"&gt;w_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;emp&lt;/span&gt;_f&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color: maroon;"&gt;row_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;wid&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM&lt;/span&gt;   &lt;span style="color: maroon;"&gt;w_location_d&lt;/span&gt; &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;WHERE&lt;/span&gt;  &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;datasource&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;num&lt;/span&gt;_id&lt;/span&gt; &lt;span style="color: silver;"&gt;-&lt;/span&gt; &lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;data_source_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;num&lt;/span&gt;_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;AND&lt;/span&gt; &lt;span style="color: maroon;"&gt;a&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;integration_id&lt;/span&gt; &lt;span style="color: silver;"&gt;=&lt;/span&gt; &lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;integration_id&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt; &lt;span style="color: maroon;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;loc&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;wid&lt;/span&gt;&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ename&lt;/span&gt;&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;address&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;FROM&lt;/span&gt;   &lt;span style="color: maroon;"&gt;w_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;emp&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;fs b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Correlated query would only perform good if the dimension columns used in join condition are indexed. This way DB memory can cache the index and return the records from the dimension table fast for each of the record in fact table.&lt;br /&gt;&lt;br /&gt;We can choose to segregate dimensions attached to the fact table based on their size. Depending on the memory configuration of the DB system we can hit&amp;amp;trial the size &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;threshold&lt;/span&gt;. Dimensions having size lower than this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;threshold&lt;/span&gt; can be outer joined to the fact table and the ones with size higher than the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;threshold&lt;/span&gt; can be pushed to correlated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;subqueries&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2495898046217007859?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2495898046217007859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2495898046217007859' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2495898046217007859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2495898046217007859'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2009/01/oracle-correlated-sub-queries.html' title='Oracle: Correlated sub-queries effectiveness'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-8292517891552239532</id><published>2008-08-20T22:29:00.000-07:00</published><updated>2009-04-26T23:22:12.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : Resolving ORA-29275: partial multibyte character</title><content type='html'>Data might sometimes get corrupted and when accessing can result in error:&lt;br /&gt;&lt;br /&gt;In case data volumes are huge, its difficult to pin point the row which is causing this. Though, there is strategy for doing this.&lt;br /&gt;&lt;br /&gt;sql &gt; set autotrace traceonly statistics&lt;br /&gt;sql&gt; execute query (select column from table)&lt;br /&gt;&lt;br /&gt;This will show you how many rows are processed before the error occured.&lt;br /&gt;e.g.&lt;br /&gt;&lt;br /&gt;22787220 rows selected.&lt;br /&gt;.&lt;br /&gt;Statistics&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;      6295  recursive calls&lt;br /&gt;         0  db block gets&lt;br /&gt;  65041120  consistent gets&lt;br /&gt;  10050575  physical reads&lt;br /&gt;         0  redo size&lt;br /&gt;4195673524  bytes sent via SQL*Net to client&lt;br /&gt;  10634511  bytes received via SQL*Net from client&lt;br /&gt;   1519151  SQL*Net roundtrips to/from client&lt;br /&gt;    108956  sorts (memory)&lt;br /&gt;         0  sorts (disk)&lt;br /&gt;  22787220  rows processed&lt;br /&gt;&lt;br /&gt;So, you can create an duplicate table and delete these many rows ,i.e., 22787220  records using rownum.&lt;br /&gt;&lt;br /&gt;then you again run the query and check how many further records are selected before corrupt data is encountered. This way you can single out the data which is causing issue. Generally this kind of data corruption occurs as a result of DB upgrades.&lt;br /&gt;&lt;br /&gt;How to fix:&lt;br /&gt;&lt;br /&gt;A simple straight way is to delete the record. but that means loosing information.&lt;br /&gt;&lt;br /&gt;Following could be done to resolve this:&lt;br /&gt;&lt;br /&gt;update table set column=column||'';&lt;br /&gt;&lt;br /&gt;i.e., append empty string to the column and that is it...data corruption is fixed without any loss of it.&lt;br /&gt;&lt;br /&gt;similar exercise can be done for number type columns. they generally result in end-of-file on communication channel.&lt;br /&gt;&lt;br /&gt;you can check the corruption of it by dumping its canonical form.&lt;br /&gt;&lt;br /&gt;sql &gt;select column, dump(column) from table.&lt;br /&gt;----    --------------------------------------------------&lt;br /&gt;&lt;tt&gt;&lt;i&gt;  1  Typ=2 Len=21: 193,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/tt&gt;actual dump should have been "193,2", no trailing "1"s.&lt;br /&gt;&lt;br /&gt;these records also can be updated to get them return to normal canonical form.&lt;br /&gt;&lt;br /&gt;update table set column=column + 1 - 1;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-8292517891552239532?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/8292517891552239532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=8292517891552239532' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8292517891552239532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/8292517891552239532'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/08/oracle-resolving-ora-29275-partial.html' title='Oracle : Resolving ORA-29275: partial multibyte character'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-9196747174784025058</id><published>2008-08-01T02:06:00.000-07:00</published><updated>2009-04-26T23:22:12.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : storing strings in multibyte character format</title><content type='html'>Creating tables using varchar2 datatype by default allocates specified value in bytes. That means if one is storing multi-byte character then you may not be able to store all the characters as some character might be multi-byte i.e taking 2 bytes per character.&lt;br /&gt;&lt;br /&gt;We can store multibyte charater strings with specified number of characters using CHAR along with the varchar2 datatype. e.g&lt;br /&gt;Create table lingual ( text varchar2(2o) CHAR);&lt;br /&gt;&lt;br /&gt;this way you can store up to 40 bytes or 20 multibyte characters in column text.&lt;br /&gt;&lt;br /&gt;To find out how many characters a column of a row has, use length() function. This will return the number of character, multibyte or single byte.&lt;br /&gt;&lt;br /&gt;Use lengthb() to determine the number of bytes the column value contains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-9196747174784025058?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/9196747174784025058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=9196747174784025058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/9196747174784025058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/9196747174784025058'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/08/oracle-storing-strings-in-multibyte.html' title='Oracle : storing strings in multibyte character format'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-7039950348291658440</id><published>2008-07-09T23:35:00.001-07:00</published><updated>2009-04-26T23:22:12.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : Finding Non-numeric column record in a table</title><content type='html'>&lt;pre&gt;&lt;span class="bodycopy"&gt;Find ALL rows where you have non-numeric characters only:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;code&gt;select ROW_SEQ#, STRING#&lt;br /&gt;from TMP_DATA&lt;br /&gt;WHERE length(STRING#)&lt;br /&gt;- Length( TRANSLATE(STRING#, CHR(1)||TRANSLATE(String#,&lt;br /&gt;CHR(1)||'1234567890', CHR(1) ), CHR(1) ) ) &gt; 0&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;span class="bodycopy"&gt;Find ALL rows where you have numeric characters only:&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;  &lt;span class="bodycopy"&gt;Find ALL rows where you have numeric characters only:&lt;/span&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;pre&gt;&lt;code&gt;select ROW_SEQ#, STRING#&lt;br /&gt;from TMP_DATA&lt;br /&gt;WHERE length(STRING#)&lt;br /&gt;- Length( TRANSLATE(STRING#, CHR(1)||TRANSLATE(String#,&lt;br /&gt;CHR(1)||'1234567890', CHR(1) ), CHR(1) ) ) = 0&lt;br /&gt;;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-7039950348291658440?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/7039950348291658440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=7039950348291658440' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7039950348291658440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7039950348291658440'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/07/oracle-finding-non-numeric-column.html' title='Oracle : Finding Non-numeric column record in a table'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-5320296264331629490</id><published>2008-04-04T03:16:00.000-07:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle: Deleting duplicates from a huge table</title><content type='html'>&lt;pre&gt;delete from t&lt;br /&gt;where rowid in&lt;br /&gt; (select rid&lt;br /&gt;    from (select rowid rid,&lt;br /&gt;                 row_number() over (partition by KEY_FIELDS&lt;br /&gt;                                      order by rowid) rn&lt;br /&gt;            from t )&lt;br /&gt;                where rn &lt;&gt; 1 );&lt;br /&gt;&lt;br /&gt;reference :  http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1224636375004&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-5320296264331629490?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/5320296264331629490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=5320296264331629490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5320296264331629490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5320296264331629490'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/04/oracle-deleting-duplicates-from-huge.html' title='Oracle: Deleting duplicates from a huge table'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-4399732500896498108</id><published>2008-03-25T04:23:00.000-07:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : ORA-4030 in AIX Environment</title><content type='html'>If a session tries to allocate pga memory more than the upper limit specified at OS level, it will error out with:&lt;br /&gt;ORA-04030: out of process memory when trying to allocate 249880 bytes (QERHJ hash-joi,kllcqas:kllsltba)&lt;br /&gt;&lt;br /&gt;checking the ulimit settings on AIX:&lt;br /&gt;&gt; ulimit -a&lt;br /&gt;time(seconds)        unlimited&lt;br /&gt;file(blocks)         unlimited&lt;br /&gt;data(kbytes)         256000&lt;br /&gt;stack(kbytes)        unlimited&lt;br /&gt;memory(kbytes)       256000&lt;br /&gt;coredump(blocks)     2097151&lt;br /&gt;nofiles(descriptors) 2000&lt;br /&gt;&lt;br /&gt;You can see that the maximum memory which can be allocated in chunk is 250M.&lt;br /&gt;&lt;br /&gt;This needs to be set to unlimited.&lt;br /&gt;&lt;br /&gt;edit /etc/security/limits file and set it as follows:&lt;br /&gt;&lt;br /&gt;oracle:&lt;br /&gt;     fsize = -1&lt;br /&gt;     core = 2097151&lt;br /&gt;     cpu = -1&lt;br /&gt;     data = -1&lt;br /&gt;     rss = -1&lt;br /&gt;     stack = -1&lt;br /&gt;     stack_hard = -1&lt;br /&gt;     nofiles = 2000&lt;br /&gt;&lt;br /&gt;here oracle is an OS user using which oracle database is installed. relogin to OS with this user and issue shall be fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-4399732500896498108?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/4399732500896498108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=4399732500896498108' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4399732500896498108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4399732500896498108'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/03/oracle-ora-4030-in-aix-environment.html' title='Oracle : ORA-4030 in AIX Environment'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-732712356905897303</id><published>2008-01-23T21:32:00.000-08:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle: HASH JOIN RIGHT OUTER</title><content type='html'>Queries with outer join would be executed by scanning the driving table first, which is ought to be the bigger table which is outer joined with the other table. This approach compromises with the performance as Larger table has to scanned and hashed first and then joined to the other tables, contrary to the very nature of Hash joins where smaller tables are hashed and stored in memory and then joined over to the bigger table.&lt;br /&gt;&lt;br /&gt;In 10G, there is a new concept HASH JOIN (RIGHT OUTER) --could be seen in execution plan also--which scans the smaller tables first and then join them over to the bigger table. This surely is a welcome change as this plan is quite superior to the earlier execution plans in terms of performance.&lt;br /&gt;&lt;br /&gt;But, beware, all your tables involved in joins should have statistics computed for 10g to pick up the new execution plan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-732712356905897303?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/732712356905897303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=732712356905897303' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/732712356905897303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/732712356905897303'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/01/oracle-hash-join-right-outer.html' title='Oracle: HASH JOIN RIGHT OUTER'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-1104613127765197227</id><published>2008-01-21T21:56:00.000-08:00</published><updated>2009-04-26T23:24:05.712-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><title type='text'>Informatica : Lookups Versus Outer Joins</title><content type='html'>&lt;span style=""&gt;&lt;span style="font-family:Verdana;"&gt;A plain lookup over a dimension (fetching ROW_WID) can be replaced by an outer join over the dimension in the parent sql itself.&lt;br /&gt;&lt;br /&gt;I have created a prototype to demonstrate this.&lt;br /&gt;&lt;br /&gt;SILOS.TEST_BULK_SIL mapping is created as a copy of SILOS.SIL_PayrollFact (loads W_PAYROLL_F from W_PAYROLL_FS).&lt;br /&gt;&lt;br /&gt;Original mapping had a mapplet mplt_SIL_PayrollFact. This mapplet has 12 lookups over various dimensions. It takes input (datasource_num_id, integration_id etc) from the parent sql, looks up the ROW_WID and loads into the fact table.&lt;br /&gt;&lt;br /&gt;I removed this mapplet completely and incorporated all the 12 dimensions in the parent sql itself, Outer Joining them to W_PAYROLL_FS. All the expressions which were built in the mapplet were taken care in the main mapping itself (some of them may require more finishing).&lt;br /&gt;&lt;br /&gt;Following are the results:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;table str="" style="border-collapse: collapse; width: 394px; height: 126px;" border="0" cellpadding="0" cellspacing="0"&gt;   &lt;col style="width: 168pt;" width="224"&gt; &lt;col style="width: 144pt;" width="192"&gt; &lt;col style="width: 77pt;" width="102"&gt; &lt;col style="width: 48pt;" width="64"&gt; &lt;tbody&gt;     &lt;tr style="height: 12.75pt;" height="17"&gt;       &lt;td class="xl24" style="height: 12.75pt; width: 168pt;" height="17" width="224"&gt;&lt;b&gt; Mapping&lt;/b&gt;&lt;/td&gt;       &lt;td class="xl24" style="border-left-width: medium; border-left-style: none; width: 144pt;" align="center" width="192"&gt;&lt;b&gt;Records Loaded (million)&lt;/b&gt;&lt;/td&gt;       &lt;td class="xl24" style="border-left-width: medium; border-left-style: none; width: 77pt;" align="center" width="102"&gt;&lt;b&gt;Time Taken (hr.)&lt;/b&gt;&lt;/td&gt;       &lt;td class="xl24" style="border-left-width: medium; border-left-style: none; width: 48pt;" align="center" width="64"&gt;&lt;b&gt;RPS (Reader)&lt;br /&gt;    &lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr style="height: 12.75pt;" height="17"&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; height: 12.75pt;" height="17"&gt;SIL_PayrollFact&lt;br /&gt;(uses lookup)&lt;/td&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; border-left-width: medium; border-left-style: none;" num="" align="center"&gt;183.3&lt;/td&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; border-left-width: medium; border-left-style: none;" num="" align="center"&gt;16.3&lt;/td&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; border-left-width: medium; border-left-style: none;" num="" align="center"&gt;3132&lt;/td&gt;     &lt;/tr&gt;     &lt;tr style="height: 12.75pt;" height="17"&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; height: 12.75pt;" height="17"&gt;&lt;!--StartFragment --&gt;TEST_BULK_SIL&lt;br /&gt;(uses Outer Join)&lt;/td&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; border-left-width: medium; border-left-style: none;" num="" align="center"&gt;183.3&lt;/td&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; border-left-width: medium; border-left-style: none;" num="" align="center"&gt;6.02&lt;/td&gt;       &lt;td class="xl24" style="border-top-width: medium; border-top-style: none; border-left-width: medium; border-left-style: none;" num="" align="center"&gt;8429&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt; &lt;/table&gt;&lt;br /&gt;Results show that Outer join based mapping ran approx 2.7 times faster than the one based on lookups.&lt;br /&gt;&lt;br /&gt;Again, lookups which involve some complex calculations may not be replaced by outer join.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-1104613127765197227?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/1104613127765197227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=1104613127765197227' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1104613127765197227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1104613127765197227'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2008/01/informatica-lookups-versus-outer-joins.html' title='Informatica : Lookups Versus Outer Joins'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-5167482856533907502</id><published>2007-12-20T03:36:00.000-08:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle: hash_area_size and sort_area_size</title><content type='html'>higher value for hash_area_size, though is desirable, does not affect the hashing performance in a big way. Reason could be that memory is only used for creating hashes and then the records are flushed to the temp segments (disk).&lt;br /&gt;&lt;br /&gt;Whereas in case of sorting, due to complex logic performed for sorting all the records, data moves back and forth multiple time between memory and disk, thus requiring higher sort_area_size for minimizing these iterations. Temp space requirement also falls to a good extent.&lt;br /&gt;&lt;br /&gt;One needs to set workarea_size_policy to MANUAL and specify the desired sort and hash area sizes. if hash_area_size is not defined then it defaults to 2*sort_area_size.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-5167482856533907502?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/5167482856533907502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=5167482856533907502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5167482856533907502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/5167482856533907502'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/12/oracle-hashareasize-and-sortareasize.html' title='Oracle: hash_area_size and sort_area_size'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-997456919315067781</id><published>2007-11-29T21:29:00.000-08:00</published><updated>2007-11-29T21:44:30.808-08:00</updated><title type='text'>Solaris : Troubleshooting Memory &amp; CPU Consumption</title><content type='html'>Use the following command to see the TOP 5 processes which are consuming system memory.&lt;br /&gt;prstat -s size -n 5&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;output shows the resource statistics for each thread of a server application:&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;prstat -L -p 3295&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Processes consuming the most CPU resource:&lt;br /&gt;&lt;br /&gt;prstat -s cpu -a -n &lt;code&gt;8&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-997456919315067781?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/997456919315067781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=997456919315067781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/997456919315067781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/997456919315067781'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/11/solaris-troubleshooting-memory-cpu.html' title='Solaris : Troubleshooting Memory &amp; CPU Consumption'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-3699019831469549821</id><published>2007-10-31T22:35:00.000-07:00</published><updated>2007-10-31T22:37:17.003-07:00</updated><title type='text'>PERL : diff two files</title><content type='html'>&lt;pre&gt;use strict;&lt;br /&gt;&lt;br /&gt;open TXT1, "1.txt" or die "$!";&lt;br /&gt;open TXT2, "2.txt" or die "$!";&lt;br /&gt;my %diff;&lt;br /&gt;&lt;br /&gt;$diff{$_}=1 while (&lt;txt2&gt;);&lt;br /&gt;&lt;br /&gt;while(&lt;txt1&gt;){&lt;br /&gt; print unless $diff{$_};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;close TXT2;&lt;br /&gt;close TXT1;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-3699019831469549821?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/3699019831469549821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=3699019831469549821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3699019831469549821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3699019831469549821'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/10/perl-diff-two-files.html' title='PERL : diff two files'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-3610207204597158705</id><published>2007-10-31T04:45:00.000-07:00</published><updated>2007-10-31T04:46:36.378-07:00</updated><title type='text'>Remove ^M from files transferred from Windows to Linux</title><content type='html'>Inside vi [in ESC mode] type:&lt;br /&gt;&lt;br /&gt;&lt;!-- / message --&gt;&lt;!-- controls --&gt;   :%s/^M//g   (to make the ^M -&gt; CTRL+V then CTRL+M) &lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-3610207204597158705?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/3610207204597158705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=3610207204597158705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3610207204597158705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3610207204597158705'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/10/remove-m-from-files-transferred-from.html' title='Remove ^M from files transferred from Windows to Linux'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-7324169463576153617</id><published>2007-10-19T01:33:00.000-07:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle ODBC : Driver's SQLAllocHandle on SQL_HANDLE_ENV failed</title><content type='html'>While configuring DSN using Oracle ODBC driver, one might encounter error "Driver's SQLAllocHandle on SQL_HANDLE_ENV failed". Cause being, Permissions of the remote desktop software did not allow the user access via the remote desktop software.&lt;br /&gt;&lt;br /&gt;Do the following to resolve the issue:&lt;br /&gt;&lt;br /&gt;1. Select Administration Tools , Local Security Setting and Local Policy.&lt;br /&gt;2. Then select "User Rights Assignment"&lt;br /&gt;3. Double click on "Create Global Objects"&lt;br /&gt;4. Select Add User or Group.&lt;br /&gt;5. Make sure Object Types Group Box is checked.&lt;br /&gt;6. Select Locations and highlight the name of the server you are working on (Not the Domain).&lt;br /&gt;7. Enter "Remote Desktop Users" or "Everyone" (without the quotes) into the Object Names Box.&lt;br /&gt;8. Select OK.&lt;br /&gt;9. Add the same users to the group "Power User".&lt;br /&gt;10. If this does not work, after step 8 a reboot may be required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-7324169463576153617?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/7324169463576153617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=7324169463576153617' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7324169463576153617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7324169463576153617'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/10/oracle-odbc-drivers-sqlallochandle-on.html' title='Oracle ODBC : Driver&apos;s SQLAllocHandle on SQL_HANDLE_ENV failed'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-1453848455772469557</id><published>2007-10-16T03:03:00.000-07:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle: Spooling Column of type Long</title><content type='html'>Set the following sqlplus options for spooling a long column. This will avoild truncation of lines to a particular width.&lt;br /&gt;&lt;br /&gt;SQL&gt; set trimspool on&lt;br /&gt;SQL&gt; set linesize 20000&lt;br /&gt;SQL&gt; set long 100000000&lt;br /&gt;SQL&gt; set longchunksize 2000&lt;br /&gt;SQL&gt; set pagesize 0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-1453848455772469557?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/1453848455772469557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=1453848455772469557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1453848455772469557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1453848455772469557'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/10/spooling-column-of-type-long.html' title='Oracle: Spooling Column of type Long'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-4099340317162276304</id><published>2007-10-04T04:07:00.000-07:00</published><updated>2009-04-26T23:22:12.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle : Support for Very Large Memory (VLM) Configurations</title><content type='html'>Oracle Database for Windows supports Very Large Memory (VLM) configurations in Windows to access more than the 4 gigabyte (GB) of RAM traditionally available to Windows applications.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The requirements for taking advantage of this support are:&lt;/p&gt; &lt;ol start="1" type="1"&gt;&lt;li&gt; &lt;p&gt;The computer on which Oracle Database is installed must have more than 4 GB of memory.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;The operating system must be configured to take advantage of Physical Address Extensions (PAE) by adding the /PAE switch in &lt;code&gt;boot.ini&lt;/code&gt;. See Microsoft Knowledge Base article Q268363 for instructions on modifying &lt;code&gt;boot.ini&lt;/code&gt; to enable PAE.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;It is advisable (though not necessary) to enable 4GT support by adding the /3GB parameter in &lt;code&gt;boot.ini&lt;/code&gt;. See Microsoft Knowledge Base article Q171793 for additional requirements and instructions on modifying &lt;code&gt;boot.ini&lt;/code&gt; to enable 4GT.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;The user account under which Oracle Database runs (typically the LocalSystem account), must have the "Lock memory pages" Windows 2000 and Windows XP privilege.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;code&gt;USE_INDIRECT_DATA_BUFFERS=TRUE&lt;/code&gt; must be present in the initialization parameter file for the database instance that will use VLM support. If this parameter is not set, then Oracle Database 10&lt;em&gt;g&lt;/em&gt; Release 1 (10.1) behaves in exactly the same way as previous releases.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Initialization parameters &lt;code&gt;DB_BLOCK_BUFFERS&lt;/code&gt; and &lt;code&gt;DB_BLOCK_SIZE&lt;/code&gt; must be set to values you have chosen for Oracle Database.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Registry parameter &lt;code&gt;AWE_WINDOW_MEMORY&lt;/code&gt; must be created and set in the appropriate key for your Oracle home. This parameter is specified in bytes and has a default value of 1 GB. &lt;code&gt;AWE_WINDOW_MEMORY&lt;/code&gt; tells Oracle Database how much of its 3 GB address space to reserve for mapping in database buffers.&lt;/li&gt;&lt;li&gt;&lt;p&gt;Once this parameter is set, Oracle Database can be started and will function exactly the same as before except that more database buffers are available to the instance. In addition, disk I/O may be reduced because more Oracle Database data blocks can be cached in the &lt;a href="http://download-west.oracle.com/docs/cd/B14117_01/win.101/b10113/glossary.htm#i432537"&gt;&lt;strong&gt;System Global Area&lt;/strong&gt;&lt;/a&gt; (SGA).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;If &lt;code&gt;DB_BLOCK_SIZE&lt;/code&gt; is large, however, the default &lt;code&gt;AWE_WINDOW_MEMORY&lt;/code&gt; value of 1 GB may not be sufficient to start the database.&lt;/li&gt;&lt;/ol&gt;Reference Note:&lt;br /&gt;http://download-west.oracle.com/docs/cd/B14117_01/win.101/b10113/architec.htm#sthref58&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-4099340317162276304?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/4099340317162276304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=4099340317162276304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4099340317162276304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/4099340317162276304'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/10/oracle-support-for-very-large-memory.html' title='Oracle : Support for Very Large Memory (VLM) Configurations'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2667232685219099959</id><published>2007-09-25T22:21:00.000-07:00</published><updated>2007-09-25T22:23:46.211-07:00</updated><title type='text'>Reset OC4J Admin Password</title><content type='html'>&lt;span style="font-size: 100%;"&gt;Reset the &lt;code&gt;oc4jadmin&lt;/code&gt; password using the following procedure while you are logged in as the user who installed the Oracle Application Server instance:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol start="1" type="1"&gt;&lt;li&gt; &lt;p&gt;&lt;span style="font-size: 100%;"&gt;Stop OC4J and the Application Server Control.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 100%;"&gt;Enter the following command in the Oracle home of the application server instance:&lt;/span&gt;&lt;/p&gt; &lt;pre space="preserve" class="oac_no_warn"&gt;&lt;span style="font-size: 100%;"&gt;(UNIX) &lt;span class="italic"&gt;ORACLE_HOME&lt;/span&gt;/opmn/bin/opmnctl stopproc ias-component=OC4J&lt;br /&gt;(Windows) &lt;span class="italic"&gt;ORACLE_HOME\&lt;/span&gt;opmn\bin\opmnctl stopproc ias-component=OC4J&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;span style="font-size: 100%;"&gt;&lt;a id="sthref1167" name="sthref1167"&gt;&lt;/a&gt;Locate and open the following file in a text editor:&lt;/span&gt;&lt;/p&gt; &lt;pre space="preserve" class="oac_no_warn"&gt;&lt;span style="font-size: 100%;"&gt;(UNIX)&lt;span class="italic"&gt;ORACLE_HOME&lt;/span&gt;/j2ee/home/config/system-jazn-data.xml&lt;br /&gt;(Windows)&lt;span class="italic"&gt;ORACLE_HOME&lt;/span&gt;\j2ee\home\config\system-jazn-data.xml&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;span style="font-size: 100%;"&gt;Locate the line that defines the credentials property for the oc4j&lt;code&gt;admin&lt;/code&gt; user.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 100%;"&gt;The following example shows the section of &lt;code&gt;system-jazn-data.xml&lt;/code&gt; with the encrypted &lt;code&gt;credentials&lt;/code&gt; entry in boldface type:&lt;/span&gt;&lt;/p&gt; &lt;pre space="preserve" class="oac_no_warn"&gt;&lt;span style="font-size: 100%;"&gt;&lt;jazn-realm&gt;&lt;br /&gt;&lt;realm&gt;&lt;br /&gt;   &lt;name&gt;jazn.com&lt;/name&gt;&lt;br /&gt;   &lt;users&gt;&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;&lt;user&gt;          &lt;name&gt;oc4jadmin&lt;/name&gt;&lt;br /&gt;         &lt;display-name&gt;OC4J Administrator&lt;/display-name&gt;&lt;br /&gt;         &lt;description&gt;OC4J Administrator&lt;/description&gt;&lt;br /&gt;&lt;span class="bold"&gt;            &lt;credentials&gt;{903}4L50lHJWIFGwLgHXTub7eYK9e0AnWLUH&lt;/credentials&gt;&lt;/span&gt;&lt;br /&gt;      &lt;/user&gt;&lt;br /&gt;&lt;/users&gt;&lt;/realm&gt;&lt;/jazn-realm&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size: 100%;"&gt;Replace the existing encrypted password with the new password.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 100%;"&gt;Be sure to prefix the password with an exclamation point (!). For example:&lt;/span&gt;&lt;/p&gt; &lt;pre space="preserve" class="oac_no_warn"&gt;&lt;span style="font-size: 100%;"&gt;&lt;credentials&gt;!mynewpassword123&lt;/credentials&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2667232685219099959?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2667232685219099959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2667232685219099959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2667232685219099959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2667232685219099959'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/09/reset-oc4j-admin-password.html' title='Reset OC4J Admin Password'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-6697865132005285278</id><published>2007-09-18T02:36:00.000-07:00</published><updated>2009-04-26T23:22:12.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>ORA-27047: unable to read the header block of file</title><content type='html'>If while restoring backup, Db errors out with ORA-27047, it implied that the block header is corrupt.&lt;br /&gt;&lt;br /&gt;Following three actions can be taken to restore DB:&lt;br /&gt;&lt;br /&gt;1. resize the database file in the source system and again take the cold backup. Resizing reformats the block header.&lt;br /&gt;2. use the existing control files to startup the database and then resize the file.&lt;br /&gt;3. If control files can not be reused, because of the change in file location where db files will be restored, just take the cold backup copy of only the resized file from the source system. replace the existing corrupt header file with the newly backup copy and create the control file.&lt;br /&gt;revert back to the original corrupt header file and try to open db with the newly created control file. It will fail with checkpoint mismatch asking for some file needing recovery.&lt;br /&gt;Give the command "recover database using backup control file". When asked for the achive logs, supply the redo log file (try with each of the log files), it will recover the DB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-6697865132005285278?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/6697865132005285278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=6697865132005285278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/6697865132005285278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/6697865132005285278'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/09/ora-27047-unable-to-read-header-block.html' title='ORA-27047: unable to read the header block of file'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-3790685634290851934</id><published>2007-09-05T03:47:00.000-07:00</published><updated>2009-04-26T23:22:12.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle BITMAP Index Structure</title><content type='html'>Index block with PCTFREE 50&lt;br /&gt;&lt;br /&gt;select extent_id, file_id,block_id from dba_extents where segment_name='IND_BMP_50' order by extent_id&lt;br /&gt;&lt;br /&gt; EXTENT_ID    FILE_ID   BLOCK_ID&lt;br /&gt;---------- ---------- ----------&lt;br /&gt;         0       1074      53953&lt;br /&gt;         1       1115      53841&lt;br /&gt;         2       1196      53745&lt;br /&gt;         3       1742     447857&lt;br /&gt;         4       1744     446833&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL &gt; alter system dump datafile 1742 block 447857&lt;br /&gt;&lt;br /&gt;row#0[6126] flag: ------, lock: 0, len=1906&lt;br /&gt;col 0; len 1; (1):  80                                &lt;-key value&lt;br /&gt;col 1; len 6; (6):  2b 40 d2 29 00 08    &lt;-Starting Rowid&lt;br /&gt;col 2; len 6; (6):  2b 40 d2 c1 00 1f     &lt;-Ending Rowid&lt;br /&gt;col 3; len 1886; (1886):                           &lt;-Bitmap for the key value&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;row#1[4221] flag: ------, lock: 0, len=1905&lt;br /&gt;col 0; len 1; (1):  80&lt;br /&gt;col 1; len 6; (6):  2b 40 d2 c1 00 30&lt;br /&gt;col 2; len 6; (6):  2b 40 d3 48 00 67&lt;br /&gt;col 3; len 1885; (1885):&lt;br /&gt;&lt;br /&gt;There are two rows in the block. Totallying their column size :&lt;br /&gt;1+6+6+1886+1+6+6+1885 = 3797kb&lt;br /&gt;So, block is occupying approx 50% of the block (8192kb)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Index block with PCTFREE 10&lt;br /&gt;&lt;br /&gt;SQL&gt; select extent_id, file_id,block_id from dba_extents where segment_name='IND_BMP_10' order by extent_id;&lt;br /&gt;&lt;br /&gt; EXTENT_ID    FILE_ID   BLOCK_ID&lt;br /&gt;---------- ---------- ----------&lt;br /&gt;         0       1074      63057&lt;br /&gt;         1       1115      62945&lt;br /&gt;         2       1196      62849&lt;br /&gt;         3       1742     457377&lt;br /&gt;         4       1744     456177&lt;br /&gt;         5       1786     429665&lt;br /&gt;         6       1809     411889&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;alter system dump datafile 1742 block 457377&lt;br /&gt;&lt;br /&gt;row#0[4495] flag: ------, lock: 0, len=3537&lt;br /&gt;col 0; len 1; (1):  80                                &lt;-key value&lt;br /&gt;col 1; len 6; (6):  b3 c6 f6 2b 00 28      &lt;-Starting rowid&lt;br /&gt;col 2; len 6; (6):  b3 c6 f6 ce 00 37       &lt;-Ending rowid&lt;br /&gt;col 3; len 3517; (3517):                           &lt;-Bitmap for the key value&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;row#1[957] flag: ------, lock: 0, len=3538&lt;br /&gt;col 0; len 1; (1):  80&lt;br /&gt;col 1; len 6; (6):  b3 c6 f6 ce 00 48&lt;br /&gt;col 2; len 6; (6):  b3 c6 f7 74 00 37&lt;br /&gt;col 3; len 3518; (3518):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are two rows in the block. Totallying their column size:&lt;br /&gt;1+6+6+3517+1+6+6+3518 = 7161 kb&lt;br /&gt;So, block is occupying approx 90% of the block (8192kb)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-3790685634290851934?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/3790685634290851934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=3790685634290851934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3790685634290851934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/3790685634290851934'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/09/oracle-bitmap-index-structure.html' title='Oracle BITMAP Index Structure'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2970766448084169606</id><published>2007-08-16T23:12:00.000-07:00</published><updated>2009-04-26T23:24:52.779-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>MSSQL : Collation - a way out of case-insensitiveness</title><content type='html'>Sql Server Databases by default are case-insensitive, both for the object names as well as the data contained in them.&lt;br /&gt;&lt;br /&gt;To change a database to case sensitive one, its collation needs to be changed.&lt;br /&gt;&lt;br /&gt;To check for the existing collation, check the properties of database and look for a row with heading "Collation"&lt;br /&gt;by default collation is set to "SQL_Latin1_General_CP1_CI_AS". This collation renders database as case-insensitive.&lt;br /&gt;&lt;br /&gt;To make your database case-sensitive (as some third party software would expect them to be), we need to change the Collation for the Database.&lt;br /&gt;&lt;br /&gt;There are many collations available. you can check them by executing the following statement&lt;br /&gt;select * from ::fn_helpcollations()&lt;br /&gt;&lt;br /&gt;Collation "Latin1_General_BIN" is found to work fine for the purpose of making Database case-sensitive.&lt;br /&gt;&lt;br /&gt;To change collation, execute an alter statement against the Database&lt;br /&gt;&lt;br /&gt;Alter Database TESTDB collate Latin1_General_BIN&lt;br /&gt;&lt;br /&gt;Note that the existing tables and their columns would still follow the earlier collation unless recreated or rebuilt.&lt;br /&gt;&lt;br /&gt;Collation on specific Tables and their columns as also be changed using 'Alter Table &lt;t&gt; alter column &lt;c&gt; varchar(10) collate Latin1_General_BIN null&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2970766448084169606?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2970766448084169606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2970766448084169606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2970766448084169606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2970766448084169606'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/mssql-collation-way-out-of-case.html' title='MSSQL : Collation - a way out of case-insensitiveness'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-7639531178392826950</id><published>2007-08-13T02:42:00.000-07:00</published><updated>2009-04-26T23:24:52.779-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>MSSQL : Deleting duplicate rows</title><content type='html'>Select the duplicate key values into a holding table. For example:&lt;code&gt;&lt;/code&gt;&lt;pre class="code"&gt;SELECT col1, col2, col3=count(*)&lt;br /&gt;INTO holdkey&lt;br /&gt;FROM t1&lt;br /&gt;GROUP BY col1, col2&lt;br /&gt;HAVING count(*) &gt; 1&lt;br /&gt;&lt;br /&gt;Select the duplicate rows into a holding table, eliminating&lt;br /&gt;duplicates in the process. For example:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;SELECT DISTINCT t1.*&lt;br /&gt;INTO holddups&lt;br /&gt;FROM t1, holdkey&lt;br /&gt;WHERE t1.col1 = holdkey.col1&lt;br /&gt;AND t1.col2 = holdkey.col2&lt;br /&gt;&lt;br /&gt;At this point, the holddups table should have unique PKs,&lt;br /&gt;however, this will not be the case if t1 had duplicate PKs,&lt;br /&gt;yet unique rows&lt;br /&gt;SELECT col1, col2, count(*)&lt;br /&gt;FROM holddups&lt;br /&gt;GROUP BY col1, col2&lt;br /&gt;&lt;br /&gt;If count(*) returns more than 1 for certain rows,&lt;br /&gt;determine which of the rows to delete which have the&lt;br /&gt;duplicate keys but unique rows and then only process further.&lt;br /&gt;&lt;br /&gt;Delete the duplicate rows from the original table.&lt;br /&gt;For example:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;DELETE t1&lt;br /&gt;FROM t1, holdkey&lt;br /&gt;WHERE t1.col1 = holdkey.col1&lt;br /&gt;AND t1.col2 = holdkey.col2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Put the unique rows back in the original table.&lt;br /&gt;For example:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;INSERT t1 SELECT * FROM holddups&lt;br /&gt;    &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-7639531178392826950?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/7639531178392826950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=7639531178392826950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7639531178392826950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/7639531178392826950'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/deleting-duplicates-in-mssql.html' title='MSSQL : Deleting duplicate rows'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-1935048298859346237</id><published>2007-08-12T23:22:00.000-07:00</published><updated>2009-04-26T23:25:15.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><title type='text'>DAC/Informatica src files connection</title><content type='html'>&lt;pre&gt;Informatica Server Variable &gt; $PMSourceFileDir must be set exactly the&lt;br /&gt;same as the DAC System Properties &gt; InformaticaParamatereFileLocation as&lt;br /&gt;follows: C:\oracleBI\DAC\Informatica\parameters (NB***no spaces in folder&lt;br /&gt;name****)&lt;br /&gt;&lt;br /&gt;Copy all files from OracleBI\dwrep\bin\Informatica\LkpFiles to the location specified in $PMSourceFilesDir&lt;br /&gt;&lt;br /&gt;Copy all files from OracleBI\dwrep\bin\Informatica\SrcFiles to the location specified in $PMSourceFilesDir&lt;br /&gt;&lt;br /&gt;Both Informatica and DAC must be able to access the folder specified above.&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-1935048298859346237?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/1935048298859346237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=1935048298859346237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1935048298859346237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/1935048298859346237'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/dacinformatica-src-files-connection.html' title='DAC/Informatica src files connection'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2565091645892726849</id><published>2007-08-09T00:01:00.000-07:00</published><updated>2007-08-09T01:47:09.407-07:00</updated><title type='text'>AWE and /3GB Switch for Windows</title><content type='html'>Windows 32-bit Operating Systems can only address upto 4GB of available memory. In order to access more than 4 gb of install memory we have to go for Addressing Windowing Extensions. For this set /PAE in the boot.init file and reboot the server.&lt;br /&gt;&lt;br /&gt;As per blog http://blogs.msdn.com/oldnewthing/archive/2004/08/19/217087.aspx :&lt;br /&gt;&lt;br /&gt;The two are independent.     AWE is how programs access physical memory.     PAE is how the CPU accesses physical memory. AWE requires PAE in order to allocate more than 4GB of physical memory.  You need PAE in order to access more than 4GB of physical memory, AWE or no AWE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For systems having up to 4GB of RAM, Server spares only 2GB for user mode memory (rest of 2GB is for kernel). We can strech up to 3GB by using tag /3GB in boot.ini.&lt;br /&gt;&lt;br /&gt;Note: /3GB switch would limit use of memory to only 3GB even if system has 16 GB RAM installed.&lt;br /&gt;&lt;br /&gt;Windows 2003 Enterprise Edition can by default address up to 16GB of RAM.&lt;br /&gt;&lt;br /&gt;How to update boot.init&lt;br /&gt;Go to My Computer.&lt;br /&gt;Right click -&gt; Properties&lt;br /&gt;Go to Advanced Tab&lt;br /&gt;Startup and Recovery -&gt; Settings&lt;br /&gt;Edit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2565091645892726849?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2565091645892726849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2565091645892726849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2565091645892726849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2565091645892726849'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/awe-and-3gb-switch-for-windows.html' title='AWE and /3GB Switch for Windows'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-6491559828076757985</id><published>2007-08-08T22:32:00.000-07:00</published><updated>2009-04-26T23:25:15.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><title type='text'>Informatica shared memory</title><content type='html'>Informatica Server setup has a Load Manager where you can define the Shared Memory. This the total memory which server allocates to a particular session (defined by session parameter DTM Memory Buffer) default value 12000000.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-6491559828076757985?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/6491559828076757985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=6491559828076757985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/6491559828076757985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/6491559828076757985'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/informatica-shared-memory.html' title='Informatica shared memory'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2915729090930589238</id><published>2007-08-08T03:32:00.001-07:00</published><updated>2009-04-26T23:24:52.779-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>MS SQL Server is too case sensitive</title><content type='html'>Databases are case sensitive, we all know. MS Sql takes it a level further (good or bad ?). It is case sensitive even to the table names.&lt;br /&gt;&lt;br /&gt;Don't believe me, try out yourself !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2915729090930589238?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2915729090930589238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2915729090930589238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2915729090930589238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2915729090930589238'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/yes-ms-sql-server-is-too-case-sensitive.html' title='MS SQL Server is too case sensitive'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9154833686311218941.post-2119810402347407830</id><published>2007-08-08T03:21:00.000-07:00</published><updated>2009-04-26T23:25:33.420-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Restore MSSQL DB from mdf,ldf and ndf files</title><content type='html'>MS Sql DB comprises mdf, ndf and ldf data files. If you happen to have taken a backup of the database (.bak), then restoring it on to a different instance is quite straight forward (using SQL Server Management Studio).&lt;br /&gt;But in case you just have the database files with you, then one needs to attach it to the instance. Attach is a better technical term for this than restore.&lt;br /&gt;&lt;br /&gt;Following is the way we can attach the Database to an instance:&lt;br /&gt;&lt;br /&gt;use master&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;EXEC sp_attach_db @dbname = N'NewDB',  &lt;br /&gt;@filename1 = N'C:\Program Files\MasterDB.mdf',&lt;br /&gt;@filename2 = N'C:\Program Files\MasterDB_log.ldf',&lt;br /&gt;@filename3 = N'C:\Program Files\DATA2.ndf',&lt;br /&gt;@filename4 = N'C:\Program Files\DATA3.ndf'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9154833686311218941-2119810402347407830?l=dbcrusade.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbcrusade.blogspot.com/feeds/2119810402347407830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9154833686311218941&amp;postID=2119810402347407830' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2119810402347407830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9154833686311218941/posts/default/2119810402347407830'/><link rel='alternate' type='text/html' href='http://dbcrusade.blogspot.com/2007/08/restore-mssql-db-from-mdfldf-and-ndf.html' title='Restore MSSQL DB from mdf,ldf and ndf files'/><author><name>Nitin Aggarwal</name><uri>http://www.blogger.com/profile/10715838206476296982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_tG8ChzhRba0/TMEJmMH7A_I/AAAAAAAAA_s/q0vyOd3oS8o/S220/IMG_4388_1.jpg'/></author><thr:total>1</thr:total></entry></feed>
