<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>blog.gerwinhendriksen.com</title>
	<atom:link href="http://blog.gerwinhendriksen.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.gerwinhendriksen.com</link>
	<description>Home of General Approach Performance Profiling (GAPP)</description>
	<pubDate>Mon, 15 Mar 2010 01:25:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Back to HOTSOS, HOTSOS 2010 Day 1</title>
		<link>http://blog.gerwinhendriksen.com/?p=197</link>
		<comments>http://blog.gerwinhendriksen.com/?p=197#comments</comments>
		<pubDate>Mon, 15 Mar 2010 01:21:02 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[EXADATA]]></category>

		<category><![CDATA[Query]]></category>

		<category><![CDATA[Trace]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[error]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[parameters]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[Dan Norris]]></category>

		<category><![CDATA[Doug Burns]]></category>

		<category><![CDATA[Gary Goodman]]></category>

		<category><![CDATA[HOTSOS]]></category>

		<category><![CDATA[HOTSOS 2010]]></category>

		<category><![CDATA[Kerry Osborne]]></category>

		<category><![CDATA[Kevin Closson]]></category>

		<category><![CDATA[Performance]]></category>

		<category><![CDATA[Richard Foote]]></category>

		<category><![CDATA[Tom Kyte]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=197</guid>
		<description><![CDATA[As always Hotsos started off with a nice keynote, this time done by Tom Kyte. Tom Kyte was introduced by Hotsos president Gary Goodman after the HOTSOS 2010 opening. Tom&#8217;s keynote theme was “Should we be less smart some times”. Tom told about own experiences, that he in the past gave sometimes too fast an [...]]]></description>
			<content:encoded><![CDATA[<p>As always Hotsos started off with a nice keynote, this time done by Tom Kyte. Tom Kyte was introduced by Hotsos president Gary Goodman after the HOTSOS 2010 opening. Tom&#8217;s keynote theme was “Should we be less smart some times”. Tom told about own experiences, that he in the past gave sometimes too fast an answer. It is very important to think about an answer before giving it… Why? Well some things applied in the past or for a specific version, and now they don’t anymore… this can be a problem, a real issue. Always make sure you talk about the same definitions, and agree on them. Make sure talking about the same version and of course about similar circumstances. When you start giving answers in general be sure to work with facts and not some assumptions which might be wrong. So you should always think about the information, about the circumstances and the assumptions you do, it means “Continuous Thinking”.</p>
<p><img src="file:///C:/My_Projects/HOTSOS2010/New%20folder%20(2)/DSC04855.JPG" alt="" /><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04855.jpg"><img class="alignnone size-medium wp-image-198" title="HOTOS2010 Here we come" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04855-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p><span id="more-197"></span></p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04859.jpg"><img class="alignnone size-medium wp-image-199" title="Gary Goodman opening HOTSOS 2010" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04859-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04870.jpg"><img class="alignnone size-medium wp-image-200" title="Tom Kyte doing the keynote at HOTSOS 2010" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04870-300x225.jpg" alt="" width="479" height="358" /></a><br />
After the keynote Tom Kyte had a talk on “All about Metadata”. Tom Kyte told about how wrong metadata in the database is influencing the performance. So actual explaining the different reasons the performance can be wrong only due to wrong metadata or the lack of it in the database. It is important to feed the database with data you know of the data, because you know your database the best. That can mean adding dimensions, adding materialized views, etc. His most important points were, “Datatypes Count”, “Proper Lengths matter”, “Constraints are important” and “Metadata Matters”, so ensure they are right and there, and the optimizer can do its job the best way possible.</p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04886.jpg"><img class="alignnone size-medium wp-image-201" title="Tom Kyte explaining some things after his talks to some people (The beauty of Hotsos, to be able to ask things directly)" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc04886-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p>Tom Kyte’s talk was followed up by a talk from Richard Foote. His talk subject was “Oracle Indexing Myths”. When he started his presentation he seemed to be a big fan from “David Bowie” and “Radio Head”, from who he used a lot of times, names to refer to database objects, like table “BOWIE”. Richard told about a lot of different index myths and some of them where quite interesting. The myths he talked about were:<br />
•    Deleted Index Space Is Deadwood<br />
•    Indexes Always Prevent Sort Operations<br />
•    CBO won’t consider an index when retrieving &gt; x% of rows<br />
•    Put Most Discriminating Column 1st In Concatenated Index<br />
•    Small tables Don’t Benefit From Being Indexed<br />
•    Bitmap Indexes Help With Low Cardinality Conditions<br />
•    Bitmap Indexes Inefficient With High Cardinality Columns</p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc048991.jpg"><img class="alignnone size-medium wp-image-204" title="Richard Foote giving his first presentation at HOTSOS 2010 (He was moving to much for my camera)" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc048991-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p>Just to give a small impression I will give a few of the answers. In general we can say that deleted index space will be reused, so the idea of ending up with a lot of deadwood in our indexes is really a myth. For indexes and sorts it is always important to realize that “nulls” in columns are not put in the index and so having the index is not always a guarantee that the sorting will actually happen. For indexes it is important to know that the clustering factor is highly involved in choosing an index for an execution plan. Also the amount of rows which will be expected to be retrieved from the index in compare with the table are from influence. So will the index actually been used or not?</p>
<p>The myth of putting the most discriminating column first in a concatenated index, looks very challenging, but in fact it is really a myth. I was even a bit surprised to find this out, so why was my second thought. From base the most discriminating column should be first because of the to be accessed leaf blocks in the index are less, but in fact this doesn’t matter. So if another column is first in the index it will not influence the amount of the to be accessed leaf blocks. Richard showed with some small test cases that it really doesn’t matter, index performance stayed the same. Ok, this said what will happen if we place the most discriminating column at the first, it will actually give problems, like the “Index skip scan”, it will work only efficient as a little distinctive column is first in the index, instead of the other way around. Another index option like index compression will only work as the little distinctive column is first. This has to do with the way an index compression works.</p>
<p>This was just a few examples of the myth coverage Richard did. I think it is very good before starting designing index to check out the work Richard did in this area.</p>
<p>After having had lunch together and making new contacts the presentation room was split in half for two tracks of presentations. I had the choose to go to Alex Gorbachev with “Battle Against any Guess” or Dan Norris with “Consolidation Strategies for Oracle Database Machine”. I choose for Dan and got a good impression on how the Exadata was operating within the database machine. Also things like Oracle I/O Resource Manager and Oracle Database Resource Manager were discussed. After the presentation from Dan I had a small discussion with Christian Antognini, regarding the way a “smart scan” was operating. In my opinion the database is sending a “Bloom Filter” signature to the disk controllers were with the “Bloom Filter” a lot of the not interesting data is pre-filtered before sending it to the database instance. The sent data to the database instance will not be a normal database block format, so it will pass the database buffer cache. The passing of the database buffer cache was also mentioned by Dan in his presentation.</p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06073.jpg"><img class="alignnone size-medium wp-image-205" title="Dan Norris giving his presentation (too much distance, pitty)" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06073-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p>My next presentation I attended was done by Doug Burns with “How I Learned to Love Pictures- Oracle 10g/11g Performance Analysis Using OEM”. Doug tried to do a lot of demos, but due Murphy’s Law he had a lot of issues giving them. To do the load testings on his laptop system he used “Swingbench” as the load-tool. The demo showed how you can use in a very clear way Oracle Enterprise Manager (Grid). Doug showed that the first “Performace Home” screen was based on measured data and the “Top Activity” screen was based on sampled data (ASH). Although a lot of the demos were able to be shown Doug really tried hard to give the message, and in my opinion he did.</p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06090.jpg"><img class="alignnone size-medium wp-image-206" title="Doug Burns Presenting his presentation" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06090-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06090.jpg"></a><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06094.jpg"><img class="alignnone size-medium wp-image-207" title="Doug Burns Presenting his presentation" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06094-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p>Next stop was Kevin Closson with “Ten Years After Y2K, and We Still ‘Party Like It’s 1999’”. Kevin showed a lot of development over the past ten years. He explained about how the techniques over the years have changed and how bottlenecks changed for cpu, memory and I/O. He talked about experiences with Oracle Database File System (DBFS) and how he actually had installed on this file system a complete database including Oracle Home. So he built a database in a database, from a geek point of view like me that is pretty cool. While presenting he had a little buddy with him, the pics will show you how&#8230;</p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06096.jpg"><img class="alignnone size-medium wp-image-209" title="Kevin Closson doing his presentation" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06096-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06101.jpg"><img class="alignnone size-medium wp-image-210" title="Kevin Closson and his little buddy" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06101-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p>The final presentation of the day was for me Kerry Osborne with “Controlling Execution Plans (Without Touching the Code)”. In his presentation he talked about the possibilities of influencing the execution plan of a query, without actual change the query itself. A suggestion could be changing database parameters, well this can be seen as “Big Knob Tuning” and would be very unadvisable.  Some other ideas are start adding new access paths, or remove some, in plain Oracle language this means add indexes or remove some. The other idea could be by start changing stats on objects by the DBMS_STATS package. Well all these suggestion will not be very specific and a lot of different queries are influenced. Lucky Oracle did some other things too. Kerry told that Oracle made three ways, Outlines, Sql profiles and Sql Baselines. These three ways where created with different goals by Oracle, but do all basically the same, with some small twists. The use of outlines was a half baked product, one of the issues was to set every time “use_stored_outlines” to true, with every restart of the database instance. SQL profiles were three quarter baked but are not perfect either, one of the advantages over outlines is the fact that they can be applied to multiple statements. The SQL Tuning Advisor (STA) Profiles (SQL Baselines), are still not perfect but do multiple things for the stability, first of all they can add hints and second they can store metadata for the query to give the optimizer a better understanding of the data and data distribution.</p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06113.jpg"><img class="alignnone size-medium wp-image-211" title="Kerry Osborne giving his presentation" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06113-300x225.jpg" alt="" width="480" height="359" /></a></p>
<p><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06118.jpg"><img class="alignnone size-medium wp-image-212" title="Kerry Osborne explaining some things after his first presentation" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2010/03/dsc06118-300x225.jpg" alt="" width="480" height="358" /></a></p>
<p>The way Kerry showed the possibilities were very nice and a very good closing of HOTSOS day 1.</p>
<p>Regards,</p>
<p>Gerwin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=197</wfw:commentRss>
		</item>
		<item>
		<title>How to change an outerjoin query to one without</title>
		<link>http://blog.gerwinhendriksen.com/?p=182</link>
		<comments>http://blog.gerwinhendriksen.com/?p=182#comments</comments>
		<pubDate>Tue, 15 Dec 2009 15:29:51 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[Query]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[outerjoin]]></category>

		<category><![CDATA[slow performance]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=182</guid>
		<description><![CDATA[Some time ago I encountered an issue with an outerjoin query. Although the execution plan was not that bad the respons time was really bad. I found out that the outerjoin in the query was causing the biggest problem. After doing some easy research I checked out the performance of a query with a direct [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I encountered an issue with an outerjoin query. Although the execution plan was not that bad the respons time was really bad. I found out that the outerjoin in the query was causing the biggest problem. After doing some easy research I checked out the performance of a query with a direct join (a.col = b.col) and one without a join (a.col is not joined). Even if you would execute them seperate you would be much faster as doing the outerjoin. This brought me to the idea of doing these two queries for the sake of the data be retrieved by the outerjoin. By doing a union between these two queries and to get rid of the double records, I would have the same result as with the outerjoin. This is what I did, a collaegae of mine <a title="Jorrit's blog" href="http://jornica.blogspot.com/" target="_blank">Jorrit Nijssen</a> changed the code to a emp/dept example (thanks Jorrit). The base case looks like:<span id="more-182"></span></p>
<blockquote>
<div><span lang="EN-GB">SELECT *</span></div>
<div><span lang="EN-GB">FROM</span></div>
<div><span lang="EN-GB">(SELECT d.deptno,</span></div>
<div><span lang="EN-GB">d.dname,</span></div>
<div><span lang="EN-GB">d.loc,</span></div>
<div><span lang="EN-GB">e.empno,</span></div>
<div><span lang="EN-GB">e.job,</span></div>
<div><span lang="EN-GB">e.mgr,</span></div>
<p><span lang="EN-GB">e.hiredate,</p>
<p>e.sal,</p>
<p>e.comm</p>
<p>FROM scott.dept d,</p>
<p>scott.emp e</p>
<p>WHERE e.deptno (+) = d.deptno</p>
<p>)</p>
<p>/</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></p></blockquote>
<p>Based on this base query the following devisions can be made</p>
<blockquote>
<div><span lang="EN-GB">prompt &#8212; Divide into two cases</span></div>
<div><span lang="EN-GB">prompt &#8212; departments whit employees</span></div>
<div><span lang="EN-GB">prompt &#8212; departments whitout employees</span></div>
<div><span lang="EN-GB">SELECT *</span></div>
<div><span lang="EN-GB">FROM</span></div>
<div><span lang="EN-GB">(SELECT d.deptno,</span></div>
<div><span lang="EN-GB">d.dname,</span></div>
<p><span lang="EN-GB">d.loc,</p>
<p>e.empno,</p>
<p>e.job,</p>
<p>e.mgr,</p>
<p>e.hiredate,</p>
<p>e.sal,</p>
<p>e.comm</p>
<p>, 1 id</p>
<p>FROM scott.dept d,</p>
<p>scott.emp e</p>
<p>WHERE e.deptno = d.deptno</p>
<p>union</p>
<p>SELECT d.deptno,</p>
<p>d.dname,</p>
<p>d.loc,</p>
<p>null,</p>
<p>null,</p>
<p>null,</p>
<p>null,</p>
<p>null,</p>
<p>null</p>
<p>,2</p>
<p>FROM scott.dept d</p>
<p>)</p>
<p>/</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></p></blockquote>
<p>This gives of course double records. The trick I did was giving an extra column to the queries to know from which query the retrieved record is comming from (see above). Further more I had to get rid of the double records, by using an analytic function:</p>
<blockquote>
<div><span lang="EN-GB">prompt &#8212; Too many rows</span></div>
<div><span lang="EN-GB">prompt &#8212; records from query id 1 will selected again in query id 2</span></div>
<div><span lang="EN-GB">prompt &#8212; Analyic functions to the resue?</span></div>
<div><span lang="EN-GB">SELECT deptno</span></div>
<div><span lang="EN-GB">, deptno_prev</span></div>
<div><span lang="EN-GB">, id</span></div>
<p><span lang="EN-GB">, dname</p>
<p>, loc</p>
<p>, empno</p>
<p>, job</p>
<p>, mgr</p>
<p>, hiredate</p>
<p>, sal</p>
<p>, comm</p>
<p>FROM</p>
<p>(SELECT a.deptno</p>
<p>, a.dname</p>
<p>, a.loc</p>
<p>, a.empno</p>
<p>, a.job</p>
<p>, a.mgr</p>
<p>, a.hiredate</p>
<p>, a.sal</p>
<p>, a.comm</p>
<p>, a.id</p>
<p>, lag(a.deptno,1,-99) over (partition by a.deptno order by a.deptno, a.id) deptno_prev</p>
<p>FROM</p>
<p>(SELECT d.deptno,</p>
<p>d.dname,</p>
<p>d.loc,</p>
<p>e.empno,</p>
<p>e.job,</p>
<p>e.mgr,</p>
<p>e.hiredate,</p>
<p>e.sal,</p>
<p>e.comm ,</p>
<p>1 id</p>
<p>FROM scott.dept d,</p>
<p>scott.emp e</p>
<p>WHERE e.deptno = d.deptno</p>
<p>UNION</p>
<p>SELECT d.deptno,</p>
<p>d.dname,</p>
<p>d.loc,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL ,</p>
<p>2</p>
<p>FROM scott.dept d</p>
<p>WHERE 1=1</p>
<p>) a</p>
<p>)</p>
<p>WHERE 1=1</p>
<p>order by deptno, id, deptno_prev</p>
<p>/</p>
<p>prompt &#8212; Now with where clause</p>
<p>SELECT deptno</p>
<p>, deptno_prev</p>
<p>, id</p>
<p>, dname</p>
<p>, loc</p>
<p>, empno</p>
<p>, job</p>
<p>, mgr</p>
<p>, hiredate</p>
<p>, sal</p>
<p>, comm</p>
<p>FROM</p>
<p>(SELECT a.deptno</p>
<p>, a.dname</p>
<p>, a.loc</p>
<p>, a.empno</p>
<p>, a.job</p>
<p>, a.mgr</p>
<p>, a.hiredate</p>
<p>, a.sal</p>
<p>, a.comm</p>
<p>, a.id</p>
<p>, lag(a.deptno,1,-99) over (partition by a.deptno order by a.deptno, a.id) deptno_prev</p>
<p>FROM</p>
<p>(SELECT d.deptno,</p>
<p>d.dname,</p>
<p>d.loc,</p>
<p>e.empno,</p>
<p>e.job,</p>
<p>e.mgr,</p>
<p>e.hiredate,</p>
<p>e.sal,</p>
<p>e.comm ,</p>
<p>1 id</p>
<p>FROM scott.dept d,</p>
<p>scott.emp e</p>
<p>WHERE e.deptno = d.deptno</p>
<p>UNION</p>
<p>SELECT d.deptno,</p>
<p>d.dname,</p>
<p>d.loc,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL,</p>
<p>NULL ,</p>
<p>2</p>
<p>FROM scott.dept d</p>
<p>WHERE 1=1</p>
<p>) a</p>
<p>)</p>
<p>WHERE 1=1</p>
<p>AND ( id = 1 &#8212; department has employees</p>
<p>OR</p>
<p>( id = 2 AND NOT (deptno_prev = deptno) ) &#8212; Previous department in partition is either -99 (first record) or another deparment</p>
<p>)</p>
<p>order by deptno, id, deptno_prev</p>
<p>/</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></p></blockquote>
<p>So now we have written our base query with an outerjoin to a query without an outerjoin. In some cases the described method can help you enhance such queries in a very significant way.</p>
<p>Regards, Gerwin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=182</wfw:commentRss>
		</item>
		<item>
		<title>ORA-01422 while drop table (even DUAL looks fine)</title>
		<link>http://blog.gerwinhendriksen.com/?p=173</link>
		<comments>http://blog.gerwinhendriksen.com/?p=173#comments</comments>
		<pubDate>Mon, 14 Dec 2009 21:09:30 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[error]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[drop table]]></category>

		<category><![CDATA[Ora-01422]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=173</guid>
		<description><![CDATA[Today on the OTN forum a question was comming up about an ORA-01422, in combination of a table drop.
SQL&#62; drop table xxx
2 /
drop table xxx
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
Due to the fact that this looked a bit weird, I did [...]]]></description>
			<content:encoded><![CDATA[<p>Today on the OTN forum a question was comming up about an ORA-01422, in combination of a table drop.</p>
<blockquote><p>SQL&gt; drop table xxx<br />
2 /<br />
drop table xxx<br />
*<br />
ERROR at line 1:<br />
ORA-00604: error occurred at recursive SQL level 1<br />
ORA-01422: exact fetch returns more than requested number of rows</p></blockquote>
<p>Due to the fact that this looked a bit weird, I did a small test on my 11.1.0.7 database. The following test case I did:<span id="more-173"></span></p>
<blockquote><p>login as: oracle<br />
oracle@ghperfsuite&#8217;s password:<br />
Last login: Wed Apr  1 20:37:27 2009 from 10.10.1.1<br />
[oracle@ghperfsuite ~]$ . oraenv<br />
ORACLE_SID = [oracle] ? ghperf<br />
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1 is /u01/app/oracle<br />
[oracle@ghperfsuite ~]$ sqlplus / as sysdba</p>
<p>SQL*Plus: Release 11.1.0.7.0 - Production on Thu Apr 2 05:27:57 2009</p>
<p>Copyright (c) 1982, 2008, Oracle.  All rights reserved.</p>
<p>Connected to:<br />
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production<br />
With the Partitioning, Oracle Label Security, OLAP, Data Mining,<br />
Oracle Database Vault and Real Application Testing options</p>
<p>SQL&gt; set pagesize 1000<br />
SQL&gt; select * from dual<br />
2  /</p>
<p>D<br />
-<br />
X</p>
<p>SQL&gt; create table xxx (id number);</p>
<p>Table created.</p>
<p>SQL&gt; select count(*) from dual;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;-<br />
1</p>
<p>SQL&gt; insert into dual values (&#8217;A');</p>
<p>1 row created.</p>
<p>SQL&gt; select * from dual;</p>
<p>D<br />
-<br />
X</p>
<p>SQL&gt; select count(*) from dual;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;-<br />
1</p>
<p>SQL&gt; drop table xxx<br />
2  /<br />
drop table xxx<br />
*<br />
ERROR at line 1:<br />
ORA-00604: error occurred at recursive SQL level 1<br />
ORA-01422: exact fetch returns more than requested number of rows</p>
<p>SQL&gt; desc dual<br />
Name                                      Null?    Type<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
DUMMY                                              VARCHAR2(1)</p>
<p>SQL&gt; delete from dual where dummy = &#8216;A&#8217;;</p>
<p>1 row deleted.</p>
<p>SQL&gt;  select * from dual;</p>
<p>D<br />
-<br />
X</p>
<p>SQL&gt; select count(*) from dual;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;-<br />
1</p>
<p>SQL&gt; drop table xxx<br />
2  /</p>
<p>Table dropped.</p>
<p>SQL&gt;</p></blockquote>
<p>The test case shows that even that you can&#8217;t see the extra row in the dual table it still can give lots of trouble. One of the important issues is that you can&#8217;t drop a table anymore.</p>
<p>See also the entry at the <a title="Thread: not able to drop a table in 10g for strange reason... help please.." href="http://forums.oracle.com/forums/thread.jspa?threadID=993574&amp;start=0&amp;tstart=0" target="_blank">OTN forum</a>.</p>
<p>Regards, Gerwin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=173</wfw:commentRss>
		</item>
		<item>
		<title>Enhancing fast queries using “Tapio-Indexes”</title>
		<link>http://blog.gerwinhendriksen.com/?p=164</link>
		<comments>http://blog.gerwinhendriksen.com/?p=164#comments</comments>
		<pubDate>Thu, 04 Jun 2009 13:17:28 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[Query]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[fast queries]]></category>

		<category><![CDATA[index]]></category>

		<category><![CDATA[Lahdenmaki]]></category>

		<category><![CDATA[Tapio]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=164</guid>
		<description><![CDATA[During the years I have a lot of times encountered performance problems that ended up to be fast queries (less than 10ms) which are executed very much. In these situations the execution plans, from such queries can look like:

OPERATION            OPTIONS                 OBJECT# NAME                         
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
SELECT STATEMENT                                     .                           
SORT                 ORDER BY                        .                           
TABLE ACCESS         BY [...]]]></description>
			<content:encoded><![CDATA[<p>During the years I have a lot of times encountered performance problems that ended up to be fast queries (less than 10ms) which are executed very much. In these situations the execution plans, from such queries can look like:</p>
<blockquote>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">OPERATION<span style="mso-spacerun: yes;">            </span>OPTIONS<span style="mso-spacerun: yes;">                 </span>OBJECT# NAME<span style="mso-spacerun: yes;">   </span><span style="mso-spacerun: yes;">   </span><span style="mso-spacerun: yes;">                   </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">SELECT STATEMENT<span style="mso-spacerun: yes;">                                     </span>.<span style="mso-spacerun: yes;">                           </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">SORT<span style="mso-spacerun: yes;">                 </span>ORDER BY<span style="mso-spacerun: yes;">                        </span>.<span style="mso-spacerun: yes;">                           </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">TABLE ACCESS<span style="mso-spacerun: yes;">         </span>BY INDEX ROWID<span style="mso-spacerun: yes;">           </span>120713 XXX.TABLE_WITH_MANY_COLUMNS </span></p>
<p><span style="font-size: 6pt; line-height: 115%; font-family: &quot;Courier New&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-theme-font: minor-fareast; mso-fareast-language: NL; mso-bidi-language: AR-SA;">INDEX<span style="mso-spacerun: yes;">                </span>RANGE SCAN<span style="mso-spacerun: yes;">               </span>121558 XXX.INDEX_WITH_FEW_COLUMNS</span></p></blockquote>
<p>In a lot of cases we deal with a query for example which is returning fewer columns than exists in the involved table like four, from an involved table having twenty columns. Although the execution plan looks already pretty “OK”, it still results in a query which is in top three most resource taking queries.</p>
<p>To enhance the query we can use “Fat Indexes” or nowadays better known “Tapio Indexes” (I call them like that nowadays). What are these kind of indexes… In principle nothing really new, but for me a couple of years ago an (re)eye opener by Tapio Lahdenmaki. This Finish independent database performance consultant and instructor gave a presentation at Miracle Open World 2007 in Denmark, I attended. Tapio can present this topic in a very special way, and in my opinion “his message” should be known by all developers and dba’s.</p>
<p>The most important thing of “his message” is the fact that we should create an index which is highly selective and contains all the columns asked in the query. So in principle we create an index with forexample two selective columns, with the most selective one in front and behind these two columns the other selected columns. When creating such an index an execution plan would look like:</p>
<blockquote>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">OPERATION<span style="mso-spacerun: yes;">            </span>OPTIONS<span style="mso-spacerun: yes;">                 </span>OBJECT# NAME<span style="mso-spacerun: yes;">       </span><span style="mso-spacerun: yes;">      </span><span style="mso-spacerun: yes;">           </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">SELECT STATEMENT<span style="mso-spacerun: yes;">                                     </span>.<span style="mso-spacerun: yes;">      </span><span style="mso-spacerun: yes;">                      </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; mso-pagination: none; mso-layout-grid-align: none;"><span style="font-size: 6pt; font-family: &quot;Courier New&quot;; mso-ansi-language: EN-US;">SORT<span style="mso-spacerun: yes;">                 </span>ORDER BY<span style="mso-spacerun: yes;">                        </span>.<span style="mso-spacerun: yes;">                            </span></span></p>
<p><span style="font-size: 6pt; line-height: 115%; font-family: &quot;Courier New&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-theme-font: minor-fareast; mso-fareast-language: NL; mso-bidi-language: AR-SA;">INDEX<span style="mso-spacerun: yes;">                </span>RANGE SCAN<span style="mso-spacerun: yes;">               </span>128140 XXX.IND_WITH_ALL_SELECT_COLS</span></p></blockquote>
<p>The big advantage is that only the index is accessed and not the table anymore, what can result in a decrease of elapsed time for the query with a factor four or even more. Why this is much better? Let we go back how indexes and tables are stored on the physical storage.</p>
<p>An index is stored in an ordered way on the storage, so an index range scan will mean that data is retrieved from the storage in a sequential read from a storage point of view and so a read-head from a spindle can stay on almost the same place. This eliminates seek times and latency on the physical storage spindles.</p>
<p>A Table is stored in a non ordered way on the storage, so accessing table rows will almost always result in accessing the data in a scattered read from a storage point of view. This implies that a lot of seek and read times are wasted.</p>
<p>Of course the existence of caches makes it a bit different but still the basic principles are valid, this means also for striping.</p>
<p>So when only an index is accessed instead of index and table, we don’t waste read times for columns we don’t need (table rows), and we eliminate a lot of seek times for retrieving the different table rows.</p>
<p>If you want to know more about this kind of index design, you can read the book <a title="Tapio's book about index design" href="http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471719994.html" target="_blank">“Relational Database Index Design and the Optimizers”</a> from <a title="Tapio Lahdenmaki" href="http://www.tapio1.com/index.php" target="_blank">Tapio Lahdenmaki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=164</wfw:commentRss>
		</item>
		<item>
		<title>SQL Tracing in Self Service Applications (CRM) within Oracle Applications 11i</title>
		<link>http://blog.gerwinhendriksen.com/?p=158</link>
		<comments>http://blog.gerwinhendriksen.com/?p=158#comments</comments>
		<pubDate>Wed, 01 Apr 2009 08:45:36 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[EBS]]></category>

		<category><![CDATA[Trace]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[10046]]></category>

		<category><![CDATA[11.5.10]]></category>

		<category><![CDATA[11.5.8]]></category>

		<category><![CDATA[11.5.9]]></category>

		<category><![CDATA[CRM]]></category>

		<category><![CDATA[I-Store Tracing]]></category>

		<category><![CDATA[Self Service]]></category>

		<category><![CDATA[Time and Labour tracing]]></category>

		<category><![CDATA[Tracing]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=158</guid>
		<description><![CDATA[Some years ago I posted a blog on the AMIS technology blog describing a trace method of Self Service applications within Oracle EBS 11i. The main difference in this post is that the insert into the table fnd_profile_option_values now has one extra field inserted. This change has been introduced somewhere in 11.5.9. The scripts below can [...]]]></description>
			<content:encoded><![CDATA[<p>Some years ago I posted a blog on the <a title="AMIS Technology Blog CRM Self Service Tracing" href="http://technology.amis.nl/blog/1463/sql-tracing-in-self-service-applications-crm-within-oracle-applications-11i" target="_blank">AMIS technology blog</a> describing a trace method of Self Service applications within Oracle EBS 11i. The main difference in this post is that the insert into the table fnd_profile_option_values now has one extra field inserted. This change has been introduced somewhere in 11.5.9. The scripts below can be used in higher versions, the post from the past at the <a title="post from the past" href="http://technology.amis.nl/blog/1463/sql-tracing-in-self-service-applications-crm-within-oracle-applications-11i" target="_blank">AMIS technolog blog</a> can be used in older versions.</p>
<p>In a lot of cases it is very interesting to be able to trace Self Service Applications (CRM) in Oracle Applications 11i. Most of the time it is very hard to understand what is going on in such a session and in that case it might be very handy to get the SQL behind it. To do this there is a very nice not really known feature of the profile option &#8220;Initialization SQL Statement - Custom&#8221;. With this profile option it is possible to trace any session of a given Apps user on any level. To ensure you don’t end up with a hanging apps login (quote’s should be placed the right place) you can use the following scripts just on the SQL plus prompt to activate and stop the tracing.<span id="more-158"></span></p>
<p>Start:</p>
<blockquote><p>whenever sqlerror exit failure rollback;</p>
<p>set heading off<br />
define un = &amp;username<br />
define deftrace=&#8217;begin fnd_ctl.fnd_sess_ctl(&#8221;&#8221;&#8221;&#8221;,&#8221;&#8221;&#8221;&#8221;,&#8221;&#8221;TRUE&#8221;&#8221;,&#8221;&#8221;TRUE&#8221;&#8221;,&#8221;&#8221;LOG&#8221;&#8221;, &#8221;&#8221;ALTER SESSION SET EVENTS=&#8221;&#8221;||&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;||&#8221;&#8221;10046 TRACE NAME CONTEXT FOREVER, LEVEL 12&#8221;&#8221;||&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;);end;&#8217;</p>
<p>select &#8216;Inserting profile option value&#8217;<br />
from dual;</p>
<p>insert into fnd_profile_option_values<br />
select 0,profile_option_id, 10004, user_id,sysdate,0,sysdate,0,0, &#8216;&amp;deftrace&#8217;, null, null<br />
from fnd_profile_options, fnd_user<br />
where profile_option_name = &#8216;FND_INIT_SQL&#8217;<br />
and user_name = &#8216;&amp;un&#8217;<br />
/</p>
<p>commit;</p></blockquote>
<p>Stop:</p>
<blockquote><p>select &#8216;Press ENTER to disable trace for&#8217;, &#8216;&amp;un&#8217;<br />
from dual;</p>
<p>select &#8216;&amp;ENTER&#8217;<br />
from dual;</p>
<p>delete fnd_profile_option_values<br />
where application_id=0 and level_id=10004<br />
and level_value = (select user_id<br />
                   from fnd_user<br />
                   where user_name = &#8216;&amp;un&#8217;)<br />
and profile_option_id = (select profile_option_id<br />
                         from fnd_profile_options<br />
                         where profile_option_name = &#8216;FND_INIT_SQL&#8217;) &#8212;&gt; What is the name in Applications.<br />
/<br />
select &#8216;Type commit; or exit; to delete the inserted profile option value&#8217;<br />
from dual;</p></blockquote>
<p>Just to use the scripts the following steps and instructions should be used:</p>
<ul>
<li>start the script in sqlplus and provide the application username to be  traced in Self Service and give an Enter (this session stays open now)</li>
<li>Login with the application user, and reproduce the to be traced functions.</li>
<li>Logout with your application user.</li>
<li>stop in the sqlplus session the tracing for the user.</li>
</ul>
<p>* Important for the script:</p>
<ul>
<li>Check if define deftrace is one line &#8216;&#8230;..&#8217;</li>
<li>Level 12 (waits&amp;binds) can be changed to 8(waits), 4(binds) and 1(SQL_TRACE)</li>
<li>Be aware that using the profile option will turn on the trace for *ALL* processes executing for that user, including any scheduled concurrent processes.</li>
</ul>
<p>To identify the tracefiles created in the user dump destination better you can add a ‘tracefile_identifier’ to the SQL. In that case use the deftrace command below:</p>
<blockquote><p>BEGIN FND_CTL.FND_SESS_CTL(”,”,”,”,”,’ALTER SESSION SET EVENTS=’||””||’ 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12 ‘||””|| ‘ TRACEFILE_IDENTIFIER = ‘ || ”” || ” || ””); END;</p></blockquote>
<p>The above procedure I needed for a customer I was working for recently. I hope if you have comments you will not hesitate to comment.</p>
<p>Regards, Gerwin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=158</wfw:commentRss>
		</item>
		<item>
		<title>ORA-25330 is encountered when running DBMS_PREDICTIVE_ANALYTICS.PREDICT</title>
		<link>http://blog.gerwinhendriksen.com/?p=132</link>
		<comments>http://blog.gerwinhendriksen.com/?p=132#comments</comments>
		<pubDate>Thu, 12 Mar 2009 17:25:33 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[GAPP]]></category>

		<category><![CDATA[error]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[DBMS_PREDICTIVE_ANALYTICS]]></category>

		<category><![CDATA[ORA-25330]]></category>

		<category><![CDATA[ORA-40206]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=132</guid>
		<description><![CDATA[I recently discovered that under certain circumstances, for now it looks to be environment setting depended, that an ORA-25330 is encountered when running dbms_predictive_analytics.predict procedure. I found out of this problem while preparing a demo and certainly the error was comming up in TOAD (I am not a TOAD fan, but it is handy searching [...]]]></description>
			<content:encoded><![CDATA[<p>I recently discovered that under certain circumstances, for now it looks to be environment setting depended, that an ORA-25330 is encountered when running dbms_predictive_analytics.predict procedure. I found out of this problem while preparing a demo and certainly the error was comming up in TOAD (I am not a TOAD fan, but it is handy searching through the very big amount of factor columns in a GAPP analysis). When the same command below was executed directly on the server via sqlplus, the error was not encountered.</p>
<p>To investigate I tried to create a errorstack on the error, but without luck. So I started to do a sqltrace and found out that the ORA-25330 is actually on the server translated as ORA-40206. After I found that I created the following small test in TOAD:<span id="more-132"></span></p>
<blockquote><p><code>alter session set sql_trace=true;</code></p>
<p>alter session set events &#8216;40206 trace name ERRORSTACK level 3&#8242;;</p>
<p>select &#8216;REPRODUCING ORA-25330 BY GERWIN HENDRIKSEN&#8217; from dual;</p>
<p>DECLARE<br />
v_accuracy NUMBER(10,9);<br />
BEGIN<br />
DBMS_PREDICTIVE_ANALYTICS.PREDICT(<br />
accuracy =&gt; v_accuracy,<br />
data_table_name =&gt; &#8216;GHH_RESULT&#8217;,<br />
case_id_column_name =&gt; &#8216;TIME&#8217;,<br />
target_column_name =&gt; &#8216;ELAT&#8217;,<br />
result_table_name =&gt; &#8216;GHH_PREDICT_ORA25330&#8242;);<br />
DBMS_OUTPUT.PUT_LINE(&#8217;Accuracy = &#8216; || v_accuracy);<br />
END;<br />
/</p>
<p>select &#8216;REPRODUCED ORA-25330 BY GERWIN HENDRIKSEN&#8217; from dual;</p>
<p>exit TOAD</p></blockquote>
<p>Then the following information could be found in the trace file (use 11.1.0.6 by the way):</p>
<blockquote><p><code>----- Error Stack Dump -----<br />
ORA-40206: ongeldige instellingswaarde voor instellingsnaam SVMS_CONV_TOLERANCE<br />
----- Current SQL Statement for this session (sql_id=394st4vxujtxa) -----<br />
SELECT dm_mod_build ('DM$TANNWBZBBEUCBGVRNYNRTE',CURSOR(SELECT "HDISKPOWER10_HOT600", "RLFREE_HOT720", "HDISK35_HOT600", "HOT737_CPU", "HDISK48_HOT600", "HDISK0_HOT600", "HDISK40_HOT600", "HDISK23_HOT600", "RUNABLE_HOT720", "PGIN_HOT720", "WAIT_HOT720", "HDISK2_HOT720", "HOT600_CPU", "HDISK28_HOT600", "HDISK6_HOT600", "CYCLES_HOT720", "RT_HOT720", "SYS_HOT730", "HDISK54_HOT600", "PGSIN_HOT730", "HDISK51_HOT600", "HOT606_CPU", "RT_HOT730", "HDISK11_HOT600", "HDISK10_HOT600", "SYS_HOT720", "HDISK0_HOT730", "USER_HOT600", "PRLFREE_HOT720", "FAULTS_HOT720", "HDISK8_HOT600", "RT_HOT600", "PGSOUT_HOT600", "HOT604_CPU", "VTFREE_HOT730", "HDISK64_HOT600", "HDISK46_HOT600", "WAIT_HOT730", "HDISK29_HOT600", "CYCLES_HOT600", "HDISK66_HOT600", "HDISK12_HOT600", "HDISK56_HOT600", "HDISK14_HOT600", "PRLFREE_HOT730", "VT_HOT720", "HDISKPOWER7_HOT600", "HOT601_CPU", "VTFREE_HOT720", "RLFREE_HOT730", "HDISK60_HOT600", "HDISK15_HOT600", "HDISK19_HOT600", "HDISK59_HOT600", "VT_HOT600", "HDISK22_HOT600", "PGOUT_HOT720", "RUNABLE_HOT600", "HDISK47_HOT600", "HDISK37_HOT600", "HOT730_CPU", "HDISK30_HOT600", "HDISK13_HOT600", "HDISK4_HOT720", "HOT705_CPU", "HDISK61_HOT600", "PGSOUT_HOT730", "HDISK5_HOT600", "HDISK63_HOT600", "HOT727_CPU", "HDISK42_HOT600", "HOT721_CPU", "WAIT_HOT600", "PGOUT_HOT730", "HDISKPOWER1_HOT600", "HDISK55_HOT600", "HDISK9_HOT600", "RECLAIMS_HOT600", "HDISK65_HOT600", "HDISK57_HOT600", "HDISK2_HOT730", "PVTFREE_HOT730", "HDISK21_HOT600", "HDISK62_HOT600", "RECLAIMS_HOT730", "PVTFREE_HOT600", "HDISKPOWER9_HOT600", "HDISKPOWER2_HOT600", "HDISK67_HOT600", "HDISK0_HOT720", "PGSIN_HOT720", "HDISK3_HOT600", "HDISK17_HOT600", "HDISK3_HOT730", "HDISK1_HOT600", "HDISK3_HOT720", "PGIN_HOT730", "HDISK34_HOT600", "HDISK24_HOT600", "RLFREE_HOT600", "HDISK20_HOT600", "HDISK53_HOT600", "RECLAIMS_HOT720", "HDISK26_HOT600", "HOT602_CPU", "VTFREE_HOT600", "HDISK27_HOT600", "HDISK32_HOT600", "HOT603_CPU", "HDISK4_HOT600", "HDISK2_HOT600", "HDISK31_HOT600", "HDISK1_HOT720", "FAULTS_HOT730", "PVTFREE_HOT720", "PGSOUT_HOT720", "CYCLES_HOT730", "PRLFREE_HOT600", "ELAT", "HDISKPOWER0_HOT600", "HOT738_CPU", "HDISK50_HOT600", "HDISKPOWER3_HOT600", "HDISK36_HOT600", "HOT722_CPU", "HDISK41_HOT600", "HDISK43_HOT600", "HDISK16_HOT600", "SCANS_HOT730", "USER_HOT720", "HDISK1_HOT730", "SYS_HOT600", "SCANS_HOT600", "HDISK25_HOT600", "HDISK52_HOT600", "HDISK44_HOT600", "HDISKPOWER8_HOT600", "PGIN_HOT600", "HOT707_CPU", "HOT720_CPU", "PGSIN_HOT600", "HDISKPOWER6_HOT600", "HDISK49_HOT600", "RUNABLE_HOT730", "HDISK18_HOT600", "HDISK38_HOT600", "PGOUT_HOT600", "HDISK39_HOT600", "HDISK45_HOT600", "HDISK7_HOT600", "VT_HOT730", "FAULTS_HOT600", "SCANS_HOT720", "HDISK33_HOT600", "HDISKPOWER4_HOT600", "USER_HOT730", "HDISK58_HOT600", "HDISKPOWER5_HOT600" FROM "HOTSOS"."DM$TXFM_FGLJPVFEXMNNHTQRDVJDBV" ORDER BY ora_hash("TIME"),"TIME"),CURSOR(SELECT setting_name, setting_value FROM TABLE(CAST(:1 AS DM_Model_Settings))), 2) FROM dual<br />
----- PL/SQL Stack -----<br />
----- PL/SQL Call Stack -----<br />
object line object<br />
handle number name<br />
0x2d168b34 61 SYS.DMMODBIMP<br />
0x2d168b34 58 SYS.DMMODBIMP<br />
0x2d1d2374 941 package body SYS.DBMS_DATA_MINING_INTERNAL<br />
0x2d1d2374 2729 package body SYS.DBMS_DATA_MINING_INTERNAL<br />
0x2d1c8bac 1627 package body SYS.DBMS_DATA_MINING<br />
0x2d1daef0 524 package body SYS.DBMS_PREDICTIVE_ANALYTICS<br />
0x2d1daef0 1292 package body SYS.DBMS_PREDICTIVE_ANALYTICS<br />
0x2a65c2e8 4 anonymous block</code></p>
<p>&#8212;&#8211; Call Stack Trace &#8212;&#8211;<br />
calling call entry argument values in hex<br />
location type point (? means dubious value)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
skdstdst()+38 call kgdsdst() BFE0F18C ? 2 ?<br />
ksedst1()+88 call skdstdst() BFE0F18C ? 0 ? 1 ? A5A89EE ?<br />
853D37A ? A5A89EE ?<br />
ksedst()+33 call ksedst1()+8 BFE104A8 ? B6E564 ? 2050033 ?<br />
0 ? FF ? 2004 ?<br />
dbkedDefDump()+1046 call ksedst() 0 ? 0 ? 0 ? 0 ? 0 ? 0 ?<br />
ksedmp()+47 call dbkedDefDump() 3 ? 0 ?<br />
dbkdaKsdActDriver() call 00000000 3 ? 110000 ? 4048CF ? 11 ?<br />
+798 4048CF ? 11 ?<br />
dbgdaExecuteAction( call 00000000 B6E564 ? BFE10914 ?<br />
)+61<br />
dbgdaRunAction()+33 call dbgdaExecuteAction( B6E564 ? ED37DD0 ? 20C0002 ?<br />
7 ) BFE10914 ?<br />
dbgdRunActions()+64 call dbgdaRunAction() B6E564 ? 6FF874 ?<br />
dbgdProcessEventAct call dbgdRunActions() D8FFC92 ? D8FFC9B ?<br />
ions()+580<br />
dbgdChkEventKgErr() call dbgdProcessEventAct B6E564 ? F563360 ? 6FF984 ?<br />
+369 ions() 118 ? 6FF984 ? 1 ?<br />
dbkdChkEventRdbmsEr call dbgdChkEventKgErr() B6E564 ? 6FFF04 ? 9D0E ?<br />
r()+23<br />
__PGOSF28_ksfpec()+ call dbkdChkEventRdbmsEr 9D0E ? 800 ? 0 ? 100000 ? 0 ?<br />
183 r() 6FFF04 ?<br />
dbgePostErrorKGE()+ call 00000000 F563360 ? 9D0E ?<br />
825<br />
dbkePostKGE_kgsf()+ call dbgePostErrorKGE() F563360 ? 6D3E88 ? 9D0E ?<br />
43<br />
kgesev()+256 call 00000000 F563360 ? 6D3E88 ? 9D0E ?<br />
ksesec1()+29 call kgesev() F563360 ? 6D3E88 ? 9D0E ? 1 ?<br />
BFE11294 ?<br />
dmsvmbLSettings()+6 call ksesec1() 9D0E ? 1 ? 13 ? EBDEB50 ?<br />
85<br />
dmsvm_build()+644 call dmsvmbLSettings() BFE114B4 ? BFE114E4 ?<br />
CD175CC ? CD1759F ?<br />
dmmodbftch()+679 call dmsvm_build() 10E429C ? BFE114E4 ? 6E4BC4 ?<br />
6E4CE0 ?<br />
spefcpfa()+85 call 00000000 BFE122BC ? 104729C ?<br />
1047208 ? 6E4CC4 ? 0 ?<br />
6E4BC4 ? 6E4CE0 ?<br />
spefmccallstd()+734 call spefcpfa() BFE11FF4 ? 7 ? 6E4C80 ?<br />
BFE11780 ? BFE1178C ? 0 ?<br />
pextproc()+70 call spefmccallstd() BFE12244 ? BFE1206C ?<br />
BFE11EEC ? BFE11FF4 ? 0 ?<br />
__PGOSF294_peftrust call pextproc() BFE12244 ? BFE1206C ?<br />
ed()+114 BFE11EEC ? BFE11FF4 ?<br />
psdexsp()+186 call 00000000 BFE12244 ? BFE11848 ?<br />
924DB1F ? F563360 ? 10470CC ?<br />
BFE11848 ?<br />
rpiswu2.()+404 call 00000000 BFE11E50 ? 1 ? 10F9A40 ?<br />
F563360 ? 0 ? 36 ?<br />
psdextp()+544 call rpiswu2() 324538D4 ? 59 ? 32453918 ?<br />
2 ? BFE11E6C ? 59 ?<br />
pefccal()+484 call 00000000 10E3578 ? BFE1206C ?<br />
BFE11EEC ? 0 ? 20003 ?<br />
BFE12244 ? 98E1266 ?<br />
pefcal()+175 call pefccal() BFE122BC ? 0 ? 926CB7F ?<br />
F4B2504 ? 1 ? EF483C4 ?<br />
pevm_FCAL.()+140 call pefcal() BFE12244 ? 8 ? 35 ? 0 ? 0 ?<br />
BFE1227C ?<br />
pfrinstr_FCAL()+56 call pevm_FCAL() 10E3698 ? 26F94620 ?<br />
pfrrun_no_tool()+40 call 00000000 10E3698 ? 26F93C5A ?<br />
10E36D8 ?<br />
pfrrun()+783 call pfrrun_no_tool() 0 ? E5A3135 ? BFE12520 ?<br />
plsql_run()+742 call pfrrun() 10E3698 ? 0 ? 0 ? 0 ? 0 ? 0 ?<br />
peidxr_run()+205 call plsql_run() 10E3698 ? 2 ? 101AEDC ?<br />
peidxexe()+55 call peidxr_run() 10E3530 ? 1010002 ? 101AEDC ?<br />
A95818 ? 6C00 ? BFE12CF4 ?<br />
kkxdexe()+306 call peidxexe() 10E3530 ? EF483E0 ? F4B2504 ?<br />
7A ? 11 ? 0 ?<br />
kkxmpexe()+167 call kkxdexe() 10E3530 ? A966D8 ? A95818 ?<br />
kgmexwi()+575 call 00000000 F563360 ? 26F3395C ? 9BAA58 ?<br />
10E3530 ? 2D168B34 ? A95818 ?<br />
A95838 ?<br />
kgmexec()+1243 call kgmexwi() F563360 ? 1 ? BFE132DC ?<br />
26F3395C ? 9BAA58 ? FD30AC ?<br />
BFE10002 ? 2D168B34 ?<br />
A95818 ? BFE1315C ?<br />
evapls()+597 call kgmexec() F563360 ? 1 ? BFE132DC ?<br />
2E68937C ? 2AE928F0 ?<br />
A95900 ? A95818 ? 0 ?<br />
A958EC ? 0 ? 79 ?<br />
evaopn2()+436 call 00000000 2C2B89A8 ? BFE14024 ?<br />
EB3352C ? A981D8 ? BFE13B74 ?<br />
E459135 ?<br />
qximeop_fbk.()+397 call 00000000 2C2B89A8 ? 3D9CADBD ? 0 ? 0 ?<br />
0 ? 0 ?<br />
qximeop()+67 call qximeop_fbk.() 2C2B89A8 ? 0 ? C0 ?<br />
BFE13988 ? FCE010 ?<br />
BFE1398C ?<br />
qerocifc()+501 call qximeop() 2C2B89A8 ? 0 ? C0 ?<br />
BFE13988 ?<br />
qerocplFetch()+915 call qerocifc() 2AFD0B0C ? F7EA60 ? 1 ?<br />
qerocFetch()+294 call qerocplFetch() 324538D4 ? 0 ? BFE13A30 ? 0 ?<br />
1 ? F7ED5C ?<br />
qerstFetch()+322 call 00000000 2AFD0B0C ? F7EA60 ? 0 ? 0 ?<br />
1 ? BFE13A2C ?<br />
qervwFetch()+119 call 00000000 2C2B858C ? F7ED5C ? 0 ? 0 ?<br />
1 ? 0 ?<br />
qerstFetch()+322 call 00000000 2C2B8540 ? F7EDD4 ? 0 ? 0 ?<br />
1 ? 3E8 ?<br />
kokbscl()+442 call 00000000 2C2B8228 ? F7EE04 ? 0 ? 0 ?<br />
1 ?<br />
evaopn3.()+1445 call 00000000 2ADCB04C ? 0 ? 0 ? 0 ?<br />
2D0000 ? 403CAD ?<br />
evaopn2()+382 call evaopn3.() 2ADCAFBC ? F7EEE4 ? 101D6CC ?<br />
__PGOSF316_opifcr() call 00000000 2ADCA99C ? 0 ? 0 ? 0 ? 0 ?<br />
+5010 0 ?<br />
qerstRowP()+425 call 00000000 BFE14A70 ? 2 ?<br />
qerfiFetch()+185 call 00000000 2 ? 8E86781 ?<br />
qerstFetch()+176 call 00000000 2ADCAF64 ? F7EEEC ? B19518E ?<br />
BFE14764 ? 2 ? C ?<br />
opifch2()+6022 call 00000000 2ADCAF0C ? F7EF0C ? E4D5180 ?<br />
BFE14A70 ? 2 ?<br />
opiefn0()+523 call opifch2() 89 ? 7 ? BFE14E1C ?<br />
opipls()+3313 call opiefn0() 4E ? 7 ? BFE151B8 ? 0 ? 0 ?<br />
0 ? 0 ? 0 ? 0 ? 0 ?<br />
opiodr()+991 call 00000000 66 ? 7 ? BFE161E8 ?<br />
__PGOSF106_rpidrus( call opiodr() 66 ? 7 ? BFE161E8 ? A ?<br />
)+163<br />
skgmstack()+117 call 00000000 BFE15AE0 ? 0 ? BFE15FFC ?<br />
BFE16204 ? BFE15B04 ?<br />
BFE15AFC ?<br />
rpidru()+95 call skgmstack() BFE15AC4 ? F563120 ? F618 ?<br />
E480FE8 ? BFE15AE0 ?<br />
rpiswu2.()+404 call 00000000 BFE15FFC ? 0 ? E8C1604 ?<br />
6FEC50 ? E8C1604 ? 0 ?<br />
rpidrv.()+1154 call rpiswu2.() 324538D4 ? 59 ? 32453918 ?<br />
16 ? 6EF7B8 ? 59 ?<br />
psddr0()+450 call rpidrv() A ? 66 ? BFE161E8 ? 39 ?<br />
psdnal()+333 call psddr0() A ? 66 ? BFE161E8 ? 31 ?<br />
pevm_EXIM()+183 call 00000000 BFE16E1C ? BFE16F3C ?<br />
F571340 ? 9C5734 ? 2D1D2374 ?<br />
pfrinstr_EXIM()+39 call pevm_EXIM() 713648 ? 6DCED0 ?<br />
pfrrun_no_tool()+40 call 00000000 713648 ? 2B7BB9B8 ? 713688 ?<br />
pfrrun()+783 call pfrrun_no_tool() 2 ? 7136F4 ? BFE16778 ?<br />
plsql_run()+742 call pfrrun() 713648 ? 1 ? EF48A20 ?<br />
EF48A18 ? EF48A10 ? EF489F4 ?<br />
peicnt.()+269 call plsql_run() 713648 ? 1 ? 0 ?<br />
kkxexe()+440 call peicnt() BFE16E1C ? 713648 ? F563360 ?<br />
32918CBC ?<br />
opiexe()+12530 call kkxexe() FA6D68 ? C2870CC ? 1C8CE8 ?<br />
A56BDD7 ? C28708E ?<br />
BFE16FE8 ?<br />
opiall0.()+1450 call opiexe() 49 ? 3 ? BFE17D5C ?<br />
opial7()+444 call opiall0() 3E ? 22 ? BFE18400 ?<br />
BFE1ABF4 ? BFE181B8 ? 0 ?<br />
opiodr()+991 call 00000000 47 ? F ? BFE1ABF4 ?<br />
ttcpip()+1066 call 00000000 47 ? F ? BFE1ABF4 ? 8 ?<br />
opitsk()+1275 call ttcpip() F571340 ? 47 ? BFE1ABF4 ? 0 ?<br />
BFE1A884 ? BFE1AD1C ?<br />
opiino()+882 call opitsk() 0 ? 0 ?<br />
opiodr()+991 call 00000000 3C ? 4 ? BFE1BC38 ?<br />
opidrv()+462 call opiodr() 3C ? 4 ? BFE1BC38 ? 0 ?<br />
sou2o()+91 call opidrv() 3C ? 4 ? BFE1BC38 ?<br />
opimai_real()+109 call sou2o() BFE1BC1C ? 3C ? 4 ?<br />
BFE1BC38 ?<br />
ssthrdmain()+142 call opimai_real() 2 ? BFE1BD30 ?<br />
main()+116 call ssthrdmain() 2 ? BFE1BD30 ?<br />
__libc_start_main() call 00000000 2 ? BFE1BDF4 ? BFE1BE00 ?<br />
+220 BC7A20 ? 0 ? B5D4F0 ?<br />
_start()+33 call __libc_start_main() 85399C4 ? 2 ? BFE1BDF4 ?<br />
A56F5B0 ? A56F5A0 ? BC82D0 ?</p></blockquote>
<p>So within the code wich ran, the error was raised:</p>
<blockquote><p><code>40206, 00000, "invalid setting value for setting name %s"<br />
// *Cause: The input value for the given setting name was invalid.<br />
// *Action: Consult the documentation for the settings table and provide<br />
// a valid setting value.</code></p></blockquote>
<p>The involved setting name was &#8220;SVMS_CONV_TOLERANCE&#8221;. The problem is caused by the NLS setting of your seperator, so:</p>
<p>alter session set NLS_NUMERIC_CHARACTERS=&#8221;.,&#8221;;</p>
<p>does the trick, but be careful with TOAD, it can be possible that the alter session still gives issues. So a better thing is to ensure it goes well, is to change the seperator settings in TOAD itself and to put as NLS_LANG in the registry &#8220;AMERICAN_AMERICA.AL32UTF8&#8243;.</p>
<p>Regards, Gerwin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=132</wfw:commentRss>
		</item>
		<item>
		<title>GAPP presentation at HOTSOS 2009</title>
		<link>http://blog.gerwinhendriksen.com/?p=118</link>
		<comments>http://blog.gerwinhendriksen.com/?p=118#comments</comments>
		<pubDate>Tue, 10 Mar 2009 16:58:58 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[GAPP]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[HOTSOS]]></category>

		<category><![CDATA[HOTSOS 2009]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=118</guid>
		<description><![CDATA[Yesterday I had the opportunity to present the presentation &#8220;Gapp in practice&#8221;, here at the HOTSOS event 2009. To get the presentation ready I worked the whole weekend in the plane and in the hotel. My biggest challenge was to get the demo for the presentation working. The demo would show how easy GAPP can [...]]]></description>
			<content:encoded><![CDATA[<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">Yesterday I had the opportunity to present the presentation &#8220;Gapp in practice&#8221;, here at the HOTSOS event 2009. To get the presentation ready I worked the whole weekend in the plane and in the hotel. My biggest challenge was to get the demo for the presentation working. The demo would show how easy GAPP can be used in practice. My goal was very well in my opinion, and I was ready to present it in time&#8230;</span></span></div>
<div></div>
<div class="mceTemp"><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">Than at the moment of truth, my laptop was not willing to display via the beamer and I had to present on another laptop&#8230; I apologized towards the audience and almost ten minutes late I started my presentation, with some applause from the audience. Anyway my audience was good and after some minutes of strugle (a little mixed up due to the laptop chalenge), my presentation started to run&#8230;</span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">To get people in for my presentation I used some words on my badge&#8230;</span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;"><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/dsc067801.jpg"><img class="size-medium wp-image-121" title="Mind the GAPP the Badge !" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/dsc067801-300x225.jpg" alt="Mind the GAPP the Badge !" width="462" height="338" /></a><span id="more-118"></span></span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">In my presentation I presented a situation of a Time and Labor application depending on three LPAR&#8217;s from a 15 LPAR machine system, physically running on a 32 cpu 256Gb P595 IBM system with micro partitioning&#8230;</span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"></span></div>
<p><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;"></p>
<div id="attachment_122" class="wp-caption alignnone" style="width: 483px"><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/complexhot.jpg"><img class="size-medium wp-image-122" title="Time and Labor application System" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/complexhot-300x200.jpg" alt="Time and Labor application System" width="473" height="326" /></a><p class="wp-caption-text">Time and Labor application System</p></div>
<p>In the GAPP analysis which consists of four important steps, Data Collection, Data Synchronization, Data Mining and Data Interpretation, it became clear that the investigated business process from the Time and Labor application was not able to be modelled in GAPP when only the direct involved LPAR data (factors) was used in the analysis&#8230;</p>
<div id="attachment_123" class="wp-caption alignnone" style="width: 476px"><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/picturedemoarchitecture1.jpg"><img class="size-medium wp-image-123" title="GAPP analyses model only with direct involved factors" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/picturedemoarchitecture1-300x197.jpg" alt="GAPP analyses model only with direct involved factors" width="466" height="314" /></a><p class="wp-caption-text">GAPP analyses model only with direct involved factors</p></div>
<p>Only after adding the data from the other LPAR&#8217;s made it clear that the competition in resources where from high importance, the model in GAPP made sense now&#8230;</p>
<div id="attachment_124" class="wp-caption alignnone" style="width: 478px"><a href="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/picturedemoarchitecture2.jpg"><img class="size-medium wp-image-124" title="GAPP analyses model also with indirect involved factors" src="http://blog.gerwinhendriksen.com/wp-content/uploads/2009/03/picturedemoarchitecture2-300x202.jpg" alt="GAPP analyses model also with indirect involved factors" width="468" height="329" /></a><p class="wp-caption-text">GAPP analyses model also with indirect involved factors</p></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">The most important message I wanted to give in my presentation was that GAPP can find relations in data and find dependencies which look not to be very obvious, but start to make sense when GAPP finds these relations.</span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">I just uploaded my presentation overhere in downloads, it is also available for the HOTSOS 2009 attendees at the HOTSOS website.</span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;">Regards, Gerwin</span></span></div>
<div><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;"> </span></span></div>
<p><span style="font-size: small; font-family: Times New Roman;"><span style="font-size: x-small;"> </p>
<div><span style="font-size: small; font-family: Times New Roman;"> </span></div>
<div><span style="font-size: small; font-family: Times New Roman;"> </span></div>
<div><span style="font-size: small; font-family: Times New Roman;"> </span></div>
<div><span style="font-size: small; font-family: Times New Roman;"> </span></div>
<p></span></span></span><span style="font-size: small; font-family: Times New Roman;"> </p>
<p></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=118</wfw:commentRss>
		</item>
		<item>
		<title>GAPP Performance Method at HOTSOS 2009</title>
		<link>http://blog.gerwinhendriksen.com/?p=114</link>
		<comments>http://blog.gerwinhendriksen.com/?p=114#comments</comments>
		<pubDate>Mon, 02 Mar 2009 08:21:52 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[GAPP]]></category>

		<category><![CDATA[advertisement]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[Gerwin Hendriksen]]></category>

		<category><![CDATA[HOTSOS 2008]]></category>

		<category><![CDATA[HOTSOS 2009]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=114</guid>
		<description><![CDATA[For some months ago (october 2008) I wrote an abstract for a paper to present at the HOTSOS 2009 symposium. Although I hoped I was selected to give the presentation, I was not selected by Hotsos. This was a pitty but looking at the people and the presentations who made it to the agenda of [...]]]></description>
			<content:encoded><![CDATA[<p>For some months ago (october 2008) I wrote an abstract for a paper to present at the HOTSOS 2009 symposium. Although I hoped I was selected to give the presentation, I was not selected by Hotsos. This was a pitty but looking at the people and the presentations who made it to the agenda of the HOTSOS 2009 symposium, it would have been very special to be there also. Due to the high quality of the sysmposium and the fact that it is the place to be for every performance geek out there, I planned together with my collegae Marco Gralike a trip to the symposium this year only as an attendee.</p>
<p>Last week I received unexpectedly an email from Cary Millsap with a very special opportunity within. Cary asked me if I was still interested in presenting at the comming symposium and although very little time I said of course YES. So although late I was added to the <a title="Hotsos 2009 Schedule Monday" href="http://www.hotsos.com/sym_speaker_schedule_mon.html" target="_blank">HOTSOS 2009 symposium agenda</a> to give a presentation called <a title="Hotsos 2009 Gerwin Hendriksen" href="http://www.hotsos.com/sym_speakers_hendriksen.html" target="_blank">&#8220;Practical Use of Method Gapp to Find Performance Bottlenecks for Business Processes in Complex Architectures&#8221;</a></p>
<p>I hope personal that I will give a presentation wich will be equally or even more interresting than the one I gave at the <a title="Hotsos 2008 Gerwin Hendriksen" href="http://www.hotsos.com/sym08/sym_speakers_hendriksen.html" target="_blank">HOTSOS Symposium 2008</a>. As a last word I really like to thank Cary Millsap for this opportunity.</p>
<p>Regards, Gerwin</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=114</wfw:commentRss>
		</item>
		<item>
		<title>Dr. N.J. Gunther Receives A.A. Michelson Award</title>
		<link>http://blog.gerwinhendriksen.com/?p=109</link>
		<comments>http://blog.gerwinhendriksen.com/?p=109#comments</comments>
		<pubDate>Tue, 16 Dec 2008 21:55:34 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[Gunther]]></category>

		<category><![CDATA[perfdynamics]]></category>

		<category><![CDATA[prediction]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=109</guid>
		<description><![CDATA[Dr. N.J. Gunther has received at the annual CMG International Conference in Las Vegas last week the A.A. Michelson Award. Dr. Neil Gunther was the recipient of the prestigious A.A. Michelson Award; the industry&#8217;s highest honor for computer performance analysis and capacity planning. As he said in his acceptance speech, it was the fulfillment of [...]]]></description>
			<content:encoded><![CDATA[<p>Dr. N.J. Gunther has received at the annual CMG International Conference in Las Vegas last week the A.A. Michelson Award. Dr. Neil Gunther was the recipient of the prestigious A.A. Michelson Award; the industry&#8217;s highest honor for computer performance analysis and capacity planning. As he said in his acceptance speech, it was the fulfillment of a dream he had entertained at his first CMG Conference in 1993.</p>
<p>I really like to congratulate Dr. Neil Gunther with this very big achievement. For further reading you can check out the blog post from Dr. Neil Gunther on his <a title="Perfdynamics Dr. Neil Gunther" href="http://perfdynamics.blogspot.com/2008/12/gunther-receives-aa-michelson-award.html" target="_blank">website</a>. Don&#8217;t forget to check out the speech presentation with at the end a nice picture of Dr. Neil Gunther and his father.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=109</wfw:commentRss>
		</item>
		<item>
		<title>Miracle Benelux organizes MasterClass with Cary Millsap and Jeff Holt</title>
		<link>http://blog.gerwinhendriksen.com/?p=105</link>
		<comments>http://blog.gerwinhendriksen.com/?p=105#comments</comments>
		<pubDate>Fri, 12 Dec 2008 15:38:15 +0000</pubDate>
		<dc:creator>Gerwin</dc:creator>
		
		<category><![CDATA[advertisement]]></category>

		<category><![CDATA[Anjo Kolk]]></category>

		<category><![CDATA[miracle benelux]]></category>

		<guid isPermaLink="false">http://blog.gerwinhendriksen.com/?p=105</guid>
		<description><![CDATA[




Below the advertisement of the Miracle Benelux (Anjo Kolk) event.




The extreme Oracle Specialists 








Wednesday 10th, December 2008
Miracle MasterClass with the ORACLE PERFORMANCE SPECIALISTS &#8212; Cary Millsap and Jeff Holt &#8211;, 20-21-22 Jan 2009
NL Versie
Wilt u meer leren over hoe u uw Oracle Database beten kan laten performen?
Met veel trots kan Miracle Benelux aankondigen dat Cary Millsap [...]]]></description>
			<content:encoded><![CDATA[<div>
<table class="MsoNormalTable" style="width: 435pt; mso-cellspacing: 0cm; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" width="580">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 7.5pt; padding-top: 15pt; background-color: transparent; border: #ece9d8;">
<p style="text-align: center;" align="center">Below the advertisement of the Miracle Benelux (Anjo Kolk) event.</p>
</td>
</tr>
<tr style="height: 56.25pt; mso-yfti-irow: 1;">
<td style="border-right: #ece9d8; border-top: #d5d5d5 1pt dotted; border-left: #ece9d8; border-bottom: #d5d5d5 1pt dotted; height: 56.25pt; background-color: transparent; mso-border-top-alt: dotted #D5D5D5 .75pt; mso-border-bottom-alt: dotted #D5D5D5 .75pt; padding: 0cm;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="mso-fareast-font-family: 'Times New Roman';"><img id="_x0000_i1025" src="http://miraclebenelux.cmail1.com/ei/y/f0/556/2a6/miracle_logo_2.jpg" border="0" alt="Miracle Benelux logo" /><span style="font-size: small;"><span style="font-family: Times New Roman;">The extreme Oracle Specialists </span></span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background-color: transparent; border: #ece9d8; padding: 0cm;">
<table class="MsoNormalTable" style="width: 435pt; mso-cellspacing: 15.0pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="20" cellpadding="0" width="580">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes;">
<td style="width: 435pt; background-color: transparent; border: #ece9d8; padding: 0cm;" width="580" valign="top">
<h4 style="margin: 0cm 0cm 0pt;"><span style="font-weight: normal; font-size: 9pt; text-transform: uppercase; color: #999999; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Wednesday 10th, December 2008</span></h4>
<p class="MsoNormal" style="margin: 15pt 0cm 6pt; mso-outline-level: 3;"><span style="font-size: 13.5pt; color: #000000; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Miracle MasterClass with the ORACLE PERFORMANCE SPECIALISTS &#8212; Cary Millsap and Jeff Holt &#8211;, 20-21-22 Jan 2009</span></p>
<h5 style="margin: auto 0cm;"><span style="mso-fareast-font-family: 'Times New Roman';"><span style="font-size: x-small;"><span style="font-family: Times New Roman;">NL Versie</span></span></span></h5>
<h5 style="margin: 0cm 0cm 15pt;"><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">Wilt u meer leren over hoe u uw Oracle Database beten kan laten performen?<br />
Met veel trots kan Miracle Benelux aankondigen dat </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/j" target="_blank"><span style="font-size: x-small; color: #cc0000;">Cary Millsap en Jeff Holt van Method-R </span></a><span style="font-size: x-small;">naar Nederland komen om hun </span></span><span style="color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">Oracle Performance</span></span><span style="font-size: x-small;"><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"> MasterClass te geven. De kosten voor deze MasterClass bedraagt 1599 Euro. Echter ontvangers van deze mail kunnen boeken met een aantrekkelijke &#8220;kredietcrisis&#8221; korting van 300 euro.<br />
Voer in het registratie formulier bij opmerkingen in &#8211;&gt; Mailaanbieding. Dan kunt u deelnemen aan de MasterClass voor </span><span style="color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;">maar 1299 euro </span></span><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">. Deze mailaanbieding is geldig t/m 29 december 2008. Als u ook erbij wilt zijn kunt u via onze website </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/t" target="_blank"><span style="font-size: x-small; color: #cc0000;">registreren</span></a><span style="font-size: x-small;"> of de agenda bekijken </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/i"><span style="font-size: x-small; color: #cc0000;">Agenda MasterClass 2009 »</span></a><span style="font-size: x-small;"> Voertaal bij de Masterclass is Engels. </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/d"><span style="font-size: x-small; color: #cc0000;">Lees meer »</span></a></span></h5>
<h5 style="margin: auto 0cm;"><span style="mso-fareast-font-family: 'Times New Roman';"><span style="font-size: x-small;"><span style="font-family: Times New Roman;">Englisch version</span></span></span></h5>
<h5 style="margin: 0cm 0cm 15pt;"><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">Do you want to learn how to get your Oracle Database to perform better?<br />
Miracle Benelux is proud to present that </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/h" target="_blank"><span style="font-size: x-small; color: #cc0000;">Cary Millsap and Jeff Holt from Method-R </span></a><span style="font-size: x-small;">are coming to the Netherlands to give their </span></span><span style="color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">Oracle performance MasterClass </span></span><span style="font-size: x-small;"><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;">. The costs for this MasterClass will be 1599 Euro. However receivers from this email can book with a very nice creditcrisis discount of 300 euro. To get this discount enter in the field &#8220;opmerkingen&#8221; in the registration form &#8211;&gt; Maildiscount. Then you can join us for the </span><span style="color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;">nice price of 1299 euro </span></span><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">. This mail offer is only valid until 29 of december 2008. If you want to be there and join us for a great MasterClass then register through our website </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/k" target="_blank"><span style="font-size: x-small; color: #cc0000;">www.miraclebenelux.nl </span></a><span style="font-size: x-small;">or </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/u" target="_blank"><span style="font-size: x-small; color: #cc0000;">Click here for the registration form. </span></a><span style="font-size: x-small;">The form is in Dutch if you encounter any problem just email us at </span><a href="mailto:seminars@miraclebenelux.nl"><span style="font-size: x-small; color: #cc0000;">seminars@miraclebenelux.nl</span></a><span style="font-size: x-small;"> and we will help you! </span><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/o"><span style="font-size: x-small; color: #cc0000;">Read More »</span></a></span></h5>
<h5 style="margin: 15pt 0cm 6pt;"><span style="font-weight: normal; font-size: 13.5pt; color: #000000; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Quote from a former student of Cary and Jeff</span></h5>
<h5 style="margin: 0cm 0cm 15pt;"><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"><span style="font-size: x-small;">In 2002 (June 11-13), I took the Hotsos class taught by Jeff Holt and Cary Millsap and am very interested to see them teaching together again. In the past 6 years I have benefitted tremendously from what I learned.</span></span></h5>
<h5 style="margin: auto 0cm;"><span style="mso-fareast-font-family: 'Times New Roman';"><a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/b"><span style="font-size: x-small; color: #cc0000; font-family: Times New Roman;">Agenda MasterClass 2009 »</span></a></span></h5>
<h5 style="margin: 15pt 0cm 6pt;"><span style="font-weight: normal; font-size: 13.5pt; color: #000000; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">What is Method R?</span></h5>
<h5 style="margin: 0cm 0cm 15pt;"><span style="font-size: x-small;"><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;">Method R is a fast, effective, commonsense approach to optimizing a system. It was first documented in the book </span><span style="color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;">Optimizing Oracle Performanceby Method R</span><span style="font-weight: normal; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"> founding members Cary Millsap and Jeff Holt. <a href="http://miraclebenelux.cmail1.com/t/y/l/dlkudl/ildtwiud/n" target="_blank"><span style="color: #cc0000;">Read More about Method-R»</span></a> </span></span></h5>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="display: none; mso-fareast-font-family: 'Times New Roman'; mso-hide: all;"><span style="font-size: small; font-family: Times New Roman;"> </span></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;">
<td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 7.5pt; padding-top: 7.5pt; background-color: transparent; border: #ece9d8;" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><span style="font-size: 8.5pt; color: #333333; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-fareast-font-family: 'Times New Roman';">Miracle Benelux is registered trademark of <strong>Oraperf</strong>.<br />
Miracle Benelux - <a href="http://www.miraclebenelux.nl/"><span style="color: #cc0000;">www.miraclebenelux.nl</span></a> </span></td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.gerwinhendriksen.com/?feed=rss2&amp;p=105</wfw:commentRss>
		</item>
	</channel>
</rss>
