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

<channel>
	<title>DBA Kevlar</title>
	<atom:link href="http://dbakevlar.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dbakevlar.com</link>
	<description>Tips, tricks, (and maybe a few rants) so more DBA&#039;s become bulletproof!</description>
	<lastBuildDate>Tue, 21 Feb 2012 02:03:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>RMOUG 2012 Presentation Slides!</title>
		<link>http://dbakevlar.com/2012/02/rmoug-2012-presentation-slides/</link>
		<comments>http://dbakevlar.com/2012/02/rmoug-2012-presentation-slides/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 01:53:49 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DBA Life]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=472</guid>
		<description><![CDATA[Graham Wood was kind enough to send me a quick email and let me know that my presentation slides weren&#8217;t downloading correctly from RMOUG&#8217;s website, so I&#8217;ve put them here for anyone that may like to have them. I&#8217;m still recovering from the post RMOUG Training Day festivities, aka Foak Table, which was held up [...]]]></description>
			<content:encoded><![CDATA[<p>Graham Wood was kind enough to send me a quick email and let me know that my presentation slides weren&#8217;t downloading correctly from RMOUG&#8217;s website, so I&#8217;ve put them here for anyone that may like to have them.</p>
<p>I&#8217;m still recovering from the post RMOUG Training Day festivities, aka Foak Table, which was held up in Breckenridge again this year.  I will make sure to blog about Training Days and the post event at a later date, but until then, here is a link to my slides.  Please email me with any questions or comments you may have-  always glad to chat!</p>
<p><a href="https://docs.google.com/present/edit?id=0AW51m2wSiFHMZGNnc2JidDlfMWd3ODR2aGN3" title="Making EM12C Work for You!" target="_blank">EM12C</a><br />
<a href="https://docs.google.com/present/edit?id=0AW51m2wSiFHMZGNnc2JidDlfMTE4ZGJkanZmY3c" title="Sherlock Holmes for DBA's" target="_blank">Sherlock Holmes for DBA&#8217;s</a></p>
<p>~Kellyn</p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2012/02/rmoug-2012-presentation-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting the Most Out of Enterprise Manager and Notifications</title>
		<link>http://dbakevlar.com/2012/01/getting-the-most-out-of-enterprise-manager-and-notifications/</link>
		<comments>http://dbakevlar.com/2012/01/getting-the-most-out-of-enterprise-manager-and-notifications/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 02:20:51 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=458</guid>
		<description><![CDATA[I ran out of time before I was able to provide an adequate white paper this year for my EM12c presentation, but there was some valuable info in what I had started, so thought I&#8217;d turn it into a mulit-part blog post&#8230; The Oracle Enterprise Manager, (OEM) is the standard monitoring tool for Enterprise Edition [...]]]></description>
			<content:encoded><![CDATA[<p><em>I ran out of time before I was able to provide an adequate white paper this year for my EM12c presentation, but there was some valuable info in what I had started, so thought I&#8217;d turn it into a mulit-part blog post&#8230;</em></p>
<p>The Oracle Enterprise Manager, (OEM) is the standard monitoring tool for Enterprise Edition Oracle databases.  The interface allows the DBA to manage the entire Oracle stack using a single console.  The installation and interface is easy for most DBA’s to implement and utilize.  In the newest EM12c version, it encompasses integrated systems management, application management, application-to-disk and cloud management , the following documentation will include some 10g but mostly, the EM12c version of the product.</p>
<p>The goal for any DBA is to be notified of an issue and only notified when there is an actual issue.  One of the most common downfalls of a monitored environment is the misconception that receiving emails upon success or checks stating that a process is running, is correctly configured monitoring.  This produces an environment that leads to a “white noise” effect, where DBA’s may misinterpret a notification as one of the success notifications when a real issue has actually arisen.</p>
<p>The optimal design is one where redundancy checks of the monitoring system is included to ensure that if there is an issue with the monitoring environment that deters it from monitoring and sending alerts, the system has a redundant check on a secondary server that is notifying the DBA on call of the issue.   Multiple Oracle Management Server Repositories , residing on separate servers can address this, but in my opinion, would be overkill when simple additional scripts run from a cron would suffice.</p>
<p><strong>OEM Basics</strong></p>
<p>The Oracle Enterprise Manager, 10g and EM12c comprises of the following, basic components:</p>
<ul>
<li>The Oracle Management Server/Service, (OMS).</li>
<li>The OMS repository database.</li>
<li>The OMS Home, aka the EM state directory, which contains the bin files, log files, collection files and configuration files.</li>
<li>The Agent installation, application and configuration on each monitored host server.</li>
</ul>
<p>EM12c has the additional weblogic components included automatically, along with the Cloud support features which can be installed.</p>
<p><strong>Licensing</strong></p>
<p>As long as the OMS is on its own server and is only used for the OMS repository and/or an RMAN backup catalog repository, individual oracle licensing IS NOT required for the Oracle database utilized for the repositories, (Please see pg. 15 of the following PDF from Oracle.)</p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/license.102/b40010.pdf">http://download.oracle.com/docs/cd/B19306_01/license.102/b40010.pdf</a></p>
<p><strong>Monitoring the OEM from a secondary server:</strong></p>
<p>This can be performed easily from a shell script and allows the DBA(s) to rest easy, knowing that the interface to their database environment, if impacted, will notify them from a secondary server.  This allows for redundant checks without sending an &#8220;I&#8217;m OK&#8221; notification to grant comfort:</p>
<p>&nbsp;</p>
<blockquote>
<pre>       #!/usr/bin/ksh</pre>
<pre>       #----------------------------------------------------------------------------</pre>
<pre>       # Author:   Kellyn Pot’Vin</pre>
<pre>       # Redundancy Check to OEM Server to ensure EM is up and Running!</pre>
<pre>       # Verify that all parameters are set in the remote host env. vars...</pre>
<pre>       #----------------------------------------------------------------------------</pre>
<pre>       if (( $# != 2 ))</pre>
<pre>       then</pre>
<pre>           echo "usage: $0 SID hostname"</pre>
<pre>           exit 1</pre>
<pre>      fi</pre>
<pre>      #</pre>
<pre>      #----------------------------------------------------------------------------</pre>
<pre>      # Set up Oracle environment...</pre>
<pre>      #----------------------------------------------------------------------------</pre>
<pre>      export ORACLE_SID=$1</pre>
<pre>      export who_to_ping=$2</pre>
<pre>      echo "Oracle SID: "${ORACLE_SID
      export AVL_LOG=${LOG_DIR}/oem_avl.log</pre>
<pre>      export AVL_ERR=${LOG_DIR}/oem_avl.err</pre>
<pre>      export AVL_PNG_ERR=${LOG_DIR}/ping_avl.err</pre>
<pre>      #Check Repository DB for Access</pre>
<pre>      $ORACLE_HOME/bin/sqlplus oem_chk/"${pass}"@${ORACLE_SID} &lt;&lt;EOF</pre>
<pre>      spool ${AVL_LOG};</pre>
<pre>      select sum(1+1) from dual@grid_chk;</pre>
<pre>      spool off;</pre>
<pre>      exit;</pre>
<pre>      EOF</pre>
<pre>      cat ${AVL_LOG} | grep "ORA-" &gt; ${AVL_ERR}</pre>
<pre>      if [ -s ${AVL_ERR} ]</pre>
<pre>      then</pre>
<pre>       echo|mail -s "No Response from Grid Control from Oracle Management Server!" "&lt;EML_Address&gt;"  &lt; ${AVL_LOG}</pre>
<pre>      fi</pre>
<pre>#Check to verify that EM12C is up!  This requires SSH authentication from remote server.
ssh oracle/n0c1u3ata11@
"$OMS_HOME/bin/emctl status oms" | grep Down &gt; ${EM_LOG}

if [ -s ${EM_LOG} ]
then
 echo|mail -s "No Response from EM12C Grid Control!" "&lt;EML_ADDRESS&gt;"  &lt; ${EM_LOG}
exit
fi</pre>
<pre>      #Check Grid Server, ensure that you can ping it as well</pre>
<pre>      date</pre>
<pre>      ping -c 3 ${who_to_ping}</pre>
<pre>      if [ $? -ne 0 ]</pre>
<pre>      then</pre>
<pre>          sleep 5</pre>
<pre>          ping -c 3 ${who_to_ping}</pre>
<pre>          if [ $? -ne 0 ]</pre>
<pre>          then</pre>
<pre>              echo "`hostname` CANNOT PING ${who_to_ping} the EM Server!" &gt; /tmp/ping.$$</pre>
<pre>       echo|mail -s "`hostname` CANNOT PING ${who_to_ping} from Oracle Managent Server!" "&lt;EML_Address&gt;"</pre>
<pre>       rm -f /tmp/ping.$$</pre>
<pre>           fi</pre>
<pre>      fi</pre>
<pre>      rm -f ${AVL_LOG}</pre>
<pre>      rm -f ${AVL_ERR}</pre>
<pre>exit</pre>
</blockquote>
<p>&nbsp;</p>
<p>Pretty simple to schedule in cron:</p>
<p>0,15,30,45 * * * * /home/oracle/scripts/admin/chk_grid.ksh &lt;dbname&gt; &lt;servername&gt; &gt; /dev/null  2&gt;&amp;1</p>
<p>I’ve chosen a 15 minute interval on the checks, but this can be done with any interval as requirements are set.</p>
<p>&nbsp;</p>
<p><strong>Escalation</strong></p>
<p>Due to Sarbanes-Oxley and/or outside support contracts, an enhanced escalation process may be required.  One that can offer more choices and escalation paths then what is currently offered in the 10g and EM12c console.  A simple package/support object implementation can be created to support this type of requirement that works with OEM.  The code presented here will allow one to set the on-call DBA, scheduler and escalation outside of the OEM interface, but will all OEM alerts and escalation from the OMS will utilize the data found in the supporting tables.</p>
<p>I will try to upload and post the supporting schema and code soon on dbakevlar.com</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Blacking out DB from Agent Side with Shell Scripts:</strong></p>
<p>Blackouts can be performed via a shell script to assist in automated processes that could trigger OEM alerts, sending false notifications when a blackout script is all that is required for Unix Admin or Application support personnel.</p>
<blockquote>
<pre>#!/usr/local/bin/ksh</pre>
<pre># #######################################################</pre>
<pre># start_blackout.ksh</pre>
<pre># Usage ./start_blackout.ksh &lt;oracle_sid&gt;</pre>
<pre># Rewrite Date: 4/22/2011</pre>
<pre># Modified by:  reckl</pre>
<pre>#########################################################</pre>
<pre>usage="$0 &lt;db_name&gt;"</pre>
<pre>if (($# != 1))</pre>
<pre>then</pre>
<pre>    print $usage</pre>
<pre>    exit 1</pre>
<pre>fi</pre>
<pre>ORACLE_SID=$1</pre>
<pre>sudo su - oracle -c "$AGENT_HOME/bin/emctl start blackout ${ORACLE_SID}_blackout ${ORACLE_SID}"</pre>
<pre>exit</pre>
</blockquote>
<p><strong><span style="text-decoration: underline;">Patching</span></strong></p>
<p>I am a supporter of patch deployments through OEM.  If you have not configured this or are working to get this feature approved in your database environments, I highly recommend it.  In the “Deployments” tab of the EM console, first ensure that the MOS credentials is configured:</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p>Once this has been set up for your environment, you can then designate a patching strategy to deploy to development, test and then production with a full testing cycle that will make any DBA stop quaking in their boots when they receive the notification that new patches have arrived from Oracle Support.</p>
<p>The Deployment Procedure Manager allows the DBA group to schedule deployments of necessary patching with the most effective schedule and little DBA involvement required.</p>
<p><img src="data:image/png;base64,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" alt="" width="453" height="442" /></p>
<p>&nbsp;</p>
<p>The DBA can then set up patching resource allocation and requirements from the &#8220;Offline Patching&#8221; UI and choose what to install for automatically patching:</p>
<p><img src="data:image/png;base64,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" alt="" /></p>
<p>To be continued in next post&#8230;.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2012/01/getting-the-most-out-of-enterprise-manager-and-notifications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RMOUG 2012!</title>
		<link>http://dbakevlar.com/2012/01/rmoug-2012/</link>
		<comments>http://dbakevlar.com/2012/01/rmoug-2012/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 22:01:20 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DBA Life]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=454</guid>
		<description><![CDATA[As busy as I am with the 11g project, (no real weekends off for 9 weekends and counting… )  I wanted to take some time out to write on the upcoming RMOUG Training Days 2012. For those of you Oracle techies, DBA or Developer, this is a must attend and for any who do choose [...]]]></description>
			<content:encoded><![CDATA[<p>As busy as I am with the 11g project, (no real weekends off for 9 weekends and counting… <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )  I wanted to take some time out to write on the upcoming <a title="RMOUG Training Days 2012" href="As busy as I am with the 11g project, (no real weekends off for 9 weekends and counting… )  I wanted to take some time out to write on the upcoming RMOUG Training Days 2012. For those of you Oracle techies, DBA or Developer, this is a must attend and for any who travel to attend, kudos to you, good choice.    As a one of the directors on the RMOUG board, I can attest to the incredible amount of time and resources that have been invested into what is easily, the best grass-roots Oracle conference around.  John Jeunette, the Training Days Director for the 2012 event has done a bang-up job with planning and none of us could get along without the continued support from those such as Peggy King and Team YCC.   Those who do attend are going to be treated to a keynote from one of my favorite DBA Gods, Cary Millsap, along with presentations from some of the greats in the DBA world, including Jonathan Lewis, Debra Lilley, Mark Farnam, John King, Alex Gorbachev, Guy Harrison, Dan Morgan,  James Morle and Graham Woods.  We also can’t forget the local favorites like Tim Gorman and Randy Cunningham. Upon quick count, I realized we have 14 Oracle ACE’s and 14 ACE Directors speaking this year.  With all these ACE folks, we’ve decided to create a special event with them, something to really find out what it means to be an Oracle ACE.  Stay tuned, it’s shaping up to be an awesome session. We also have the benefit for those interested in Oracle RAC of having RAC Attack, a great workshop offered at Oracle Open World, also offered at RMOUG Training Days this year!  This is a great opportunity to get your RAC on and learn from some of the best on how to properly build a RAC environment and when.  Pythian and Apress will be sharing in the sponsorship of this great workshop. Show up with a laptop that meets the requirements for the workshop and build your own, how great is that? That’s a pretty impressive count when you think of it!  I’m thrilled with the quality on the content of the presentations this year and how the event is coming together.  We had a record year for abstract submissions and it was a difficult decision deciding who would be in the schedule, so many great, solid abstracts submitted! So if you are interested in attending, here’s the link to RMOUG’s Training Days Event.  There’s only a short time left to take advantage of the advance registration rate, saving even more if you become a member, (that’s me as the membership director just selling it a bit! ) http://www.teamycc.com/RMOUG_2012_Conference/Registration.html">RMOUG Training Days 2012</a>.</p>
<p>For those of you Oracle techies, DBA or Developer, this is a must attend and for any who do choose to travel and attend- kudos to you, good choice.    As one of the directors on the RMOUG board, I can attest to the incredible amount of time and resources that have been invested into what is easily, the best grass-roots, Oracle conference around.  John Jeunette, the Training Days Director for the 2012 event has done a bang-up job with planning and none of us could get along without the continued support from those, such as Peggy King and Team YCC.</p>
<p>Oracle folks who do attend are going to be treated to a keynote from one of my favorite DBA Gods, Cary Millsap, along with presentations from some of the greats in the DBA world, including Jonathan Lewis, Debra Lilley, Mark Farnham, John King, Alex Gorbachev, Guy Harrison, Dan Morgan,  Marco Gralike, James Morle and Graham Woods.  We also can’t forget the local favorites, like Tim Gorman and Randy Cunningham.</p>
<p>Upon quick count, I realized we have 14 Oracle ACE’s and 14 ACE Directors speaking this year.  With all these ACE folks, we’ve decided to create a special event with them, something to really find out what it means to be an Oracle ACE.  Stay tuned, it’s shaping up to be an awesome session.</p>
<p>We also have the benefit for those interested in Oracle RAC of having &#8220;RAC Attack&#8221;, a great workshop, first offered at Oracle Open World and UKOUG, now also offered at RMOUG Training Days for 2012!  This is a great opportunity to get your &#8220;RAC on&#8221; and learn from some of the best on how to properly build a RAC environment and when.  Pythian and Apress will be sharing in the sponsorship of this great workshop at the RMOUG training days event. Show up with a laptop that meets the requirements for the workshop and build your own, how great is that?</p>
<p>That’s a pretty impressive count for a two day Oracle conference when you think of it!  I’m thrilled with the quality on the content of the presentations this year and how the event is coming together.  We had a record year for abstract submissions and it was a difficult decision deciding who would be in the schedule, so many great, solid abstracts submitted!</p>
<p>So if you are interested in attending, here’s the link to RMOUG’s Training Days Event.  You can view the current schedule, registration and biographies for the speakers.  There’s only a short time left to take advantage of the advance registration rate, saving even more if you become a member, (that’s me as the membership director just selling it a bit! <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p><a href="http://www.teamycc.com/RMOUG_2012_Conference/Registration.html">http://www.teamycc.com/RMOUG_2012_Conference/Registration.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2012/01/rmoug-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Presenting at KScope 2012!</title>
		<link>http://dbakevlar.com/2011/12/presenting-at-kscope-2012/</link>
		<comments>http://dbakevlar.com/2011/12/presenting-at-kscope-2012/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 19:34:42 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DBA Life]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=443</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://dbakevlar.com/wp-content/uploads/2011/12/ODTug_xmas2.jpg"><img class="alignleft size-full wp-image-450" title="ODTug_xmas" src="http://dbakevlar.com/wp-content/uploads/2011/12/ODTug_xmas2.jpg" alt="" width="652" height="571" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/12/presenting-at-kscope-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s an RMOUG Christmas!</title>
		<link>http://dbakevlar.com/2011/12/its-an-rmoug-christmas/</link>
		<comments>http://dbakevlar.com/2011/12/its-an-rmoug-christmas/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 17:25:20 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DBA Life]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=438</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://dbakevlar.com/wp-content/uploads/2011/12/rmoug_xmas.jpg"><img class="alignleft size-full wp-image-439" title="rmoug_xmas" src="http://dbakevlar.com/wp-content/uploads/2011/12/rmoug_xmas.jpg" alt="" width="619" height="687" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/12/its-an-rmoug-christmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solid Choices for Oracle Tuning on Solid State Disk</title>
		<link>http://dbakevlar.com/2011/12/solid-choices-for-oracle-tuning-on-solid-state-disk/</link>
		<comments>http://dbakevlar.com/2011/12/solid-choices-for-oracle-tuning-on-solid-state-disk/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 20:33:52 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=423</guid>
		<description><![CDATA[As I continue to work on very large databases, (VLDB), I am exposed to more  opportunities to speed up IO.  This can involve Oracle’s solution of Exadata or stand alone improvements with options such as SSD, (Solid State Disk) which can offer faster IO performance at a fraction of the price.  When this option becomes [...]]]></description>
			<content:encoded><![CDATA[<p>As I continue to work on very large databases, (VLDB), I am exposed to more  opportunities to speed up IO.  This can involve Oracle’s solution of Exadata or stand alone improvements with options such as SSD, (Solid State Disk) which can offer faster IO performance at a fraction of the price.  When this option becomes a reality, there will always be non-DBA’s that advise what would best benefit from the hardware, but to take the time to research what would truly benefit is important for the DBA to perform.</p>
<p><span style="text-decoration: underline;">The <em>Just the Facts</em> on Solid State Disk:</span></p>
<p>There are several types of SSD available:</p>
<ul>
<li>Flash memory-based</li>
<li>DRAM-based</li>
<li>Cache or Buffer</li>
</ul>
<p>The SSD can have different types of host interfaces, depending on the main hardware you are interfacing with and/or vendor choices:</p>
<ul>
<li>PCI</li>
<li>Fibre Channel</li>
<li>ATA, (Serial or Parallel)</li>
<li>SCSI, (Serial or Parallel)</li>
<li>USB</li>
</ul>
<p>Rarely do we get a chance to move entire Terabytes of data onto fast disk, but rather are offered limited, faster disk to utilize for crucial objects that can give us the “most bang for the buck.”   Commonly this is due to the price of these specialized and impressive IO read/write drives, but it can also be due to limitations on the hardware they are interfacing with.</p>
<p>As I started working on databases that utilized faster disk, with or without ASM, it became apparent that what these speedy disks were allocated to wasn’t always what SHOULD have been placed in the new location.  Where indexes, look up tables and temp tablespace experienced impressive gains vs. the standard disk drives they had formerly resided on, I have been quick to dissuade anyone from placing redo logs on SSD.</p>
<p>I’m going to go through what data, reports and queries that I utilize to decide what should be on fast disk, along with my benchmark findings when I did have the opportunity to create an entire database on Fusion Octal fast disk.</p>
<p>Getting the most out of SSD is all about getting what won’t fit in memory, (SGA and PGA) onto a faster disk.  All consistently large, [consistent] read tasks that the database must direct to disk for,  but doesn’t write as often to disk, (visualizing batch loads vs. heavy transactional) and ONCE TUNING OPPORTUNITIES HAVE BEEN EXHAUSTED, are excellent choices for research when deciding what should be placed on SSD. This information can be achieved multiple ways as a DBA.  AWR/ADDM and ASH reports can provide solid, high level data to direct you in the right direction if you are not as familiar with your data or wish to validate some of what you already know.  For those of you that do not have the tuning pack license, then Statspack can do the same.  Tracing can offer a detailed output that will tell you about objects that you are often going to slower disk for.  OEM can provide graphs that will show IO demands on a heavily “weighted” system, as can other GUI tools in the market.</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;">AWR/Statspack and I/O Wait Indicators</span></p>
<p>Your group has already decided that IO is an issue and should have verified this in the top 5 wait events that can be seen through AWR or statspack.  The snapshots utilized for this examination should be times of heavy IO in the database environment as can be seen in the example Table 1.</p>
<p>&nbsp;</p>
<p>Table 1</p>
<table width="676" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="441">Top 5 Timed Events                                         Avg %Total</td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="83"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="441">~~~~~~~~~~~~~~~~~~                                     wait   Call</td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="83"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">Event</td>
<td valign="bottom" nowrap="nowrap" width="104">Waits</td>
<td valign="bottom" nowrap="nowrap" width="87">Time (s)</td>
<td valign="bottom" nowrap="nowrap" width="88">(ms)</td>
<td valign="bottom" nowrap="nowrap" width="64">Time</td>
<td valign="bottom" nowrap="nowrap" width="83">Wait Class</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</td>
<td valign="bottom" nowrap="nowrap" width="104">&#8212;&#8212;&#8212;&#8212;</td>
<td valign="bottom" nowrap="nowrap" width="87">&#8212;&#8212;&#8212;&#8211;</td>
<td valign="bottom" nowrap="nowrap" width="88">&#8212;&#8212;</td>
<td valign="bottom" nowrap="nowrap" width="64">&#8212;&#8212;</td>
<td valign="bottom" nowrap="nowrap" width="83">&#8212;&#8212;&#8212;-</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">db file sequential read</td>
<td valign="bottom" nowrap="nowrap" width="104">
<p align="right">979,382</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">36,066</p>
</td>
<td valign="bottom" nowrap="nowrap" width="88">
<p align="right">37</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">45.1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="83">User I/O</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">db file scattered read</td>
<td valign="bottom" nowrap="nowrap" width="104">
<p align="right">5,083,058</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">22,401</p>
</td>
<td valign="bottom" nowrap="nowrap" width="88">
<p align="right">4</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">28</p>
</td>
<td valign="bottom" nowrap="nowrap" width="83">User I/O</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">Direct path write temp</td>
<td valign="bottom" nowrap="nowrap" width="104"></td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">13,577</p>
</td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">17</p>
</td>
<td valign="bottom" nowrap="nowrap" width="83">User I/O</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">db file parallel write</td>
<td valign="bottom" nowrap="nowrap" width="104">
<p align="right">464,287</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">5,136</p>
</td>
<td valign="bottom" nowrap="nowrap" width="88">
<p align="right">11</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">6.4</p>
</td>
<td valign="bottom" nowrap="nowrap" width="83">System I/O</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="251">direct path read temp</td>
<td valign="bottom" nowrap="nowrap" width="104">
<p align="right">366,956</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">2,671</p>
</td>
<td valign="bottom" nowrap="nowrap" width="88">
<p align="right">7</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">3.3</p>
</td>
<td valign="bottom" nowrap="nowrap" width="83">User I/O</td>
</tr>
</tbody>
</table>
<p>From here, we inspect our AWR or statspack reports, there is a section that should be inspected first and foremost, referred to as <em>Segments by Physical Reads </em>the output from this section can be seen in Table 2.</p>
<p>Table 2</p>
<table width="671" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="127"></td>
<td valign="bottom" nowrap="nowrap" width="132">Tablespace</td>
<td valign="bottom" nowrap="nowrap" width="114"></td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">Obj.</td>
<td valign="bottom" nowrap="nowrap" width="83">Physical</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">Owner</td>
<td valign="bottom" nowrap="nowrap" width="132">Name</td>
<td valign="bottom" nowrap="nowrap" width="114">Object Name</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">Type</td>
<td valign="bottom" nowrap="nowrap" width="83">Reads</td>
<td valign="bottom" nowrap="nowrap" width="64">%Total</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">&#8212;&#8212;&#8212;-</td>
<td valign="bottom" nowrap="nowrap" width="132">&#8212;&#8212;&#8212;-</td>
<td valign="bottom" nowrap="nowrap" width="114">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">&#8212;&#8211;</td>
<td valign="bottom" nowrap="nowrap" width="83">&#8212;&#8212;&#8212;&#8212;</td>
<td valign="bottom" nowrap="nowrap" width="64">&#8212;&#8212;-</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">SCHM_OWNR</td>
<td valign="bottom" nowrap="nowrap" width="132">TBLSPC1_DATA</td>
<td valign="bottom" nowrap="nowrap" width="114">TBL1_FILE_1</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">TABLE</td>
<td valign="bottom" nowrap="nowrap" width="83">
<p align="right">86,788,592</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">47.87</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">SCHM_OWNR</td>
<td valign="bottom" nowrap="nowrap" width="132">TBLSPC2_DATA</td>
<td valign="bottom" nowrap="nowrap" width="114">TBL1_FILE_PK</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">INDEX</td>
<td valign="bottom" nowrap="nowrap" width="83">
<p align="right">80,544,192</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">46.59</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">SCHM_OWNR</td>
<td valign="bottom" nowrap="nowrap" width="132">TBLSPC1_IDX</td>
<td valign="bottom" nowrap="nowrap" width="114">TBL2_MR_PK</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">INDEX</td>
<td valign="bottom" nowrap="nowrap" width="83">
<p align="right">74,742,752</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">45.39</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">SCHM_OWNR</td>
<td valign="bottom" nowrap="nowrap" width="132">TBLSPC1_IDX</td>
<td valign="bottom" nowrap="nowrap" width="114">TBL3_M_PK</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">INDEX</td>
<td valign="bottom" nowrap="nowrap" width="83">
<p align="right">40,924,576</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">28.43</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="127">SCHM_OWNR</td>
<td valign="bottom" nowrap="nowrap" width="132">TBLSPC2_DATA</td>
<td valign="bottom" nowrap="nowrap" width="114">TBL4</td>
<td valign="bottom" nowrap="nowrap" width="18"></td>
<td valign="bottom" nowrap="nowrap" width="134">TABLE</td>
<td valign="bottom" nowrap="nowrap" width="83">
<p align="right">26,790,464</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">15.52</p>
</td>
</tr>
</tbody>
</table>
<p><span style="text-decoration: underline;">Tuning, Always the First Step</span></p>
<p>The first step in the process is to inspect I/O issues with large objects. Is there a partitioning strategy that can take the physical reads and IO down for the objects in question? If there is not or there is still a requirement for full scans or large index or partition scans, then you need to look and see what tuning options there are for the code involved.  If there is already partitioning in place, is it the right partitioning key and/or is sub-partitioning in order.</p>
<p>Once this process has completed, then inspect performance for physical reads again and verify the objects in question are still a bottleneck for IO.  If so, then they may be a valid choice to relocate to a new ASM diskgroup residing on SSD.</p>
<p>Creating a specific ASM disk group for the SSD disk is the obvious choice, as the SSD will not be part of the standard disk groups without performance and rebalance challenges.  Once complete, you will then have the new SSD diskgroup available for use.</p>
<p>Inspect the sizes of the objects in left in your “top 5 physical IO objects” and decide what you move over for initial testing.  I commonly make a copy and test a copy of the objects against the code to test true performance gains, ensuring that there are no required physical storage required changes as well.  ***over what you need for capacity growth estimates.  What should you bring over next?  Now if we are still using the same reports that are showing above, I would look carefully at what I have available and would start to inspect temp usage as a possible next candidate.</p>
<p>It is important that if you consider temp, that it is in a “controlled” state for your environment.  It is not uncommon for many DBA’s to set TEMP to autoextend and not pay attention to temp tablespace usage.  I fully advocate the opposite and track temp usage, along with monitor alerts with scripts for anytime any user or process consumes a certain threshold per process on any of my production systems.</p>
<p>Considering the amount of waits on temp read and writes, tuning opportunities may be boundless on hash joins and sorting.  Low hanging fruit in these categories will involve looking for “order by’s” that have been left in for insert statements, (not sure how often I’ve seen this, but it’s a very common and an unfortunate occurrence…)  In regards to hash joins, there can be examples of wide reporting tables only one or two columns are actually required for the results and the join.  A choice of CTAS, (create table as select) of only the columns required for the process, dropping post the join to the second table, can drastically trim time and temp usage for a hash of tables that involve only a few columns on a wide table where an index is a less than efficient answer.  This choice allows the performance gain of the hash without the performance hit of swapping to temp when wide tables cause PGA to never be enough.</p>
<p>After tuning temp usage due to large hash joins and sorting outside of PGA, inspect the max temp tablespace required.  If this will now fit without impacting capacity planning requirements for the SSD, move the temp tablespace onto the SSD ASM disk group.</p>
<p><span style="text-decoration: underline;">Scripts to Inspect IO Usage</span></p>
<p>There are many scripts that can be written or available on the web and in reports to inspect IO usage.  The following is a good example of one:</p>
<pre><span style="color: #000080;">select</span></pre>
<pre><span style="color: #000080;">io.cnt Count,</span></pre>
<pre><span style="color: #000080;">io.event Event,</span></pre>
<pre><span style="color: #000080;">substr(io.obj,1,20) Object_Name,</span></pre>
<pre><span style="color: #000080;">io.p1 P1_Value,</span></pre>
<pre><span style="color: #000080;">f.tablespace_name Tablespace_Name</span></pre>
<pre><span style="color: #000080;">from</span></pre>
<pre><span style="color: #000080;">(</span></pre>
<pre><span style="color: #000080;">select</span></pre>
<pre><span style="color: #000080;">count(*) cnt,</span></pre>
<pre><span style="color: #000080;">round(count(*)/(60*60),2) aas,</span></pre>
<pre><span style="color: #000080;">substr(event,0,15) event,</span></pre>
<pre><span style="color: #000080;">nvl(o.object_name,decode(CURRENT_OBJ#,-1,0,CURRENT_OBJ#)) obj,</span></pre>
<pre><span style="color: #000080;">ash.p1,</span></pre>
<pre><span style="color: #000080;">o.object_type otype</span></pre>
<pre><span style="color: #000080;">from v$active_session_history ash,</span></pre>
<pre><span style="color: #000080;">all_objects o</span></pre>
<pre><span style="color: #000080;">where ( event like 'db file s%' or event like 'direct%' )</span></pre>
<pre><span style="color: #000080;">and o.object_id (+)= ash.CURRENT_OBJ#</span></pre>
<pre><span style="color: #000080;">and sample_time &gt; sysdate - 7/(60*24)</span></pre>
<pre><span style="color: #000080;">group by</span></pre>
<pre><span style="color: #000080;">substr(event,0,15) ,</span></pre>
<pre><span style="color: #000080;">CURRENT_OBJ#, o.object_name ,</span></pre>
<pre><span style="color: #000080;">o.object_type ,</span></pre>
<pre><span style="color: #000080;">ash.p1</span></pre>
<pre><span style="color: #000080;">) io,</span></pre>
<pre><span style="color: #000080;">dba_data_files f</span></pre>
<pre><span style="color: #000080;">where</span></pre>
<pre><span style="color: #000080;">f.file_id = io.p1</span></pre>
<pre><span style="color: #000080;">and f.tablespace_name not like '%RAM%' –-exclude SSD objects</span></pre>
<pre><span style="color: #000080;">Order by io.cnt desc</span></pre>
<pre><span style="color: #000080;">/</span></pre>
<p>&nbsp;</p>
<table width="509" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="64" />
<col width="109" />
<col width="125" />
<col width="71" />
<col width="140" /> </colgroup>
<tbody>
<tr>
<td width="64" height="20">COUNT</td>
<td width="109">EVENT</td>
<td width="125">OBJECT_NAME</td>
<td width="71">P1_Value</td>
<td width="140">TABLESPACE_NAME</td>
</tr>
<tr>
<td height="20">122</td>
<td>db file sequent</td>
<td>TBL1_CHAIN</td>
<td>102</td>
<td>N_DATA</td>
</tr>
<tr>
<td height="20">33</td>
<td>db file sequent</td>
<td>HH_TBL1_FDX01</td>
<td>161</td>
<td>H_INDX1</td>
</tr>
<tr>
<td height="20">28</td>
<td>db file sequent</td>
<td>CA_TBL2_PK</td>
<td>270</td>
<td>C_INDX</td>
</tr>
<tr>
<td height="20">25</td>
<td>db file sequent</td>
<td>I_TBL3_IDX02</td>
<td>225</td>
<td>I_INDX2</td>
</tr>
<tr>
<td height="20">21</td>
<td>db file sequent</td>
<td>E_TBL4</td>
<td>43</td>
<td>E_DATA</td>
</tr>
<tr>
<td height="20">20</td>
<td>direct path rea</td>
<td>I_MRG_TBL</td>
<td>75</td>
<td>M_DATA</td>
</tr>
<tr>
<td height="20">23</td>
<td>db file scatter</td>
<td>C_TBL3</td>
<td>50</td>
<td>C_DATA</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>The above script gives you clear examples of what objects you should point your research to, first indexes, (sequential) and in this case, a look up table, (direct path read).</p>
<p><span style="text-decoration: underline;">Building a Database Entirely on SSD</span></p>
<p>We were given this opportunity recently to test performance gains and decide if budget should be set aside for investing in the hardware to build entire databases on SSD vs. strategic objects within a database.  We have a process that takes approximately five days to aggregate a snapshot in time, up to 12TB of data.  The goal was to see, could we accomplish this in two days if given all SSD for the database vs. a combination of standard disks on a disk array and SSD for high read/write data.</p>
<p>This sounds like a slam dunk, but it is more challenging than one might think.  There are small things to that have to be updated in the database, such as system statistics in 10g to ensure the database knows fully the gift you have granted it, but then you may also need to make significant logical changes to take advantage of the hardware due to limitations in CPU and memory per process.  The build was on a server that utilized hyper-threading and some of the “performance settings” actually appeared to work against the database vs. the lesser setting that might stripe the CPU usage more efficiently.  The graph below show the hits against the first 32 of “hyper-threaded” 64 CPU’s:</p>
<p>Figure 1</p>
<p><a href="http://dbakevlar.com/wp-content/uploads/2011/12/cpu_ssd_img2.jpg"><img class="alignleft size-large wp-image-436" title="cpu_ssd_img" src="http://dbakevlar.com/wp-content/uploads/2011/12/cpu_ssd_img2-1024x798.jpg" alt="" width="1024" height="798" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>This graph in Figure 1 only shows CPU usage over a small snapshot of time, but over long intervals, it showed the same differing data vs. SAR or other reports from the Admin side-  the database continued to hit the same CPU’s over and over, leaving other CPU’s untouched for extended periods of time.  This did not bode well for the database performance, high read/write capability or not.</p>
<p>&nbsp;</p>
<p>The build time improvements were impressive, but the one thing that must be included is that the improvement in performance was not just a hardware improvement step.  There was first the additional hardware and then a tuning process at the database level to ensure the processes were able to achieve the best performance the solid state disk offered it, (comparison of columns New Run Time against the Final Run Time in Figure 2.)</p>
<table width="706" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" width="64"><strong>Process Step</strong></td>
<td valign="bottom" width="64"><strong>Standard Disk/SSD</strong></td>
<td valign="bottom" width="64"><strong>Total Min.</strong></td>
<td valign="bottom" width="64"><strong>SSD Without Tuning</strong></td>
<td valign="bottom" width="64"><strong>New Run Time</strong></td>
<td valign="bottom" width="64"><strong>Initial Perf. Gain</strong></td>
<td valign="bottom" width="64"><strong>SSD With Tuning</strong></td>
<td valign="bottom" width="64"><strong>Final Run Time</strong></td>
<td valign="bottom" width="65"><strong>Total Perf. Gain</strong></td>
</tr>
<tr>
<td valign="bottom" width="64">DIM Table 1 CTAS</td>
<td valign="bottom" width="64">4 HOURS 20 MINUTES 27 SECS</td>
<td valign="bottom" width="64">260 min</td>
<td valign="bottom" width="64">3 HOURS 38 MINUTES 24 SECS</td>
<td valign="bottom" width="64">218 min</td>
<td valign="bottom" width="64">
<p align="right">19%</p>
</td>
<td valign="bottom" width="64">2 HOURS 43 MINUTES 45 SECS</td>
<td valign="bottom" width="64">164 min</td>
<td valign="bottom" width="65">
<p align="right">58%</p>
</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table 2</td>
<td valign="bottom" width="64">4 HOURS 23 MINUTES 11 SECS</td>
<td valign="bottom" width="64">263 min</td>
<td valign="bottom" width="64">0 HOURS 16 MINUTES 2 SECS</td>
<td valign="bottom" width="64">16 min</td>
<td valign="bottom" width="64"><strong>16 Times Perf</strong></td>
<td valign="bottom" width="64">0 HOURS 19 MINUTES 8 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table 3</td>
<td valign="bottom" width="64">1 HOURS 29 MINUTES 21 SECS</td>
<td valign="bottom" width="64">89 min</td>
<td valign="bottom" width="64">0 HOURS 44 MINUTES 27 SECS</td>
<td valign="bottom" width="64">44 min</td>
<td valign="bottom" width="64">2 Times Perf.</td>
<td valign="bottom" width="64">0 HOURS 57 MINUTES 19 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table 4</td>
<td valign="bottom" width="64">2 HOURS 55 MINUTES 58 SECS</td>
<td valign="bottom" width="64">175 min</td>
<td valign="bottom" width="64">0 HOURS 42 MINUTES 16 SECS</td>
<td valign="bottom" width="64">42 min</td>
<td valign="bottom" width="64">4 Times Perf.</td>
<td valign="bottom" width="64">0 HOURS 47 MINUTES 55 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table 5</td>
<td valign="bottom" width="64">10 HOURS 7 MINUTES 41 SECS</td>
<td valign="bottom" width="64">607 min</td>
<td valign="bottom" width="64">1 HOURS 50 MINUTES 7 SECS</td>
<td valign="bottom" width="64">110 min</td>
<td valign="bottom" width="64"><strong>6 Times Perf.</strong></td>
<td valign="bottom" width="64">1 HOURS 42 MINUTES 6 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table 6</td>
<td valign="bottom" width="64">11 HOURS 32 MINUTES 40 SECS</td>
<td valign="bottom" width="64">692 min</td>
<td valign="bottom" width="64">4 HOURS 51 MINUTES 17 SECS</td>
<td valign="bottom" width="64">291 min</td>
<td valign="bottom" width="64">2 Times Perf.</td>
<td valign="bottom" width="64">5 HOURS 9 MINUTES 26 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">Multiple Table Aggregation</td>
<td valign="bottom" width="64">25 HOURS 15 MINUTES 3 SECS</td>
<td valign="bottom" width="64">1515 min</td>
<td valign="bottom" width="64">9 HOURS 58 MINUTES 1 SECS</td>
<td valign="bottom" width="64">598 min</td>
<td valign="bottom" width="64">3 Times Perf.</td>
<td valign="bottom" width="64">5 HOURS 16 MINUTES 31 SECS</td>
<td valign="bottom" width="64">316 min</td>
<td valign="bottom" width="65"><strong>5 Times Perf.</strong></td>
</tr>
<tr>
<td valign="bottom" width="64">Summary Table 1 Agg.</td>
<td valign="bottom" width="64">25 HOURS 24 MINUTES 35 SECS</td>
<td valign="bottom" width="64">1524 min</td>
<td valign="bottom" width="64">10 HOURS 0 MINUTES 20 SECS</td>
<td valign="bottom" width="64">600 min</td>
<td valign="bottom" width="64">3 Times Perf.</td>
<td valign="bottom" width="64">5 HOURS 18 MINUTES 14 SECS</td>
<td valign="bottom" width="64">318 min</td>
<td valign="bottom" width="65"><strong>5 Times Perf.</strong></td>
</tr>
<tr>
<td valign="bottom" width="64">Summary Table 2 Agg.</td>
<td valign="bottom" width="64">25 HOURS 23 MINUTES 56 SECS</td>
<td valign="bottom" width="64">1523 min</td>
<td valign="bottom" width="64">10 HOURS 7 MINUTES 22 SECS</td>
<td valign="bottom" width="64">607 min</td>
<td valign="bottom" width="64">3 Times Perf.</td>
<td valign="bottom" width="64">5 HOURS 25 MINUTES 54 SECS</td>
<td valign="bottom" width="64">325 min</td>
<td valign="bottom" width="65"><strong>5 Times Perf.</strong></td>
</tr>
<tr>
<td valign="bottom" width="64">Index Creation Table 1</td>
<td valign="bottom" width="64">1 HOURS 16 MINUTES 33 SECS</td>
<td valign="bottom" width="64">76 min</td>
<td valign="bottom" width="64">0 HOURS 53 MINUTES 42 SECS</td>
<td valign="bottom" width="64">54 min</td>
<td valign="bottom" width="64">
<p align="right">39%</p>
</td>
<td valign="bottom" width="64">0 HOURS 53 MINUTES 14 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">Index Creation Table 2</td>
<td valign="bottom" width="64">1 HOURS 22 MINUTES 55 SECS</td>
<td valign="bottom" width="64">82 min</td>
<td valign="bottom" width="64">0 HOURS 59 MINUTES 55 SECS</td>
<td valign="bottom" width="64">60 min</td>
<td valign="bottom" width="64">
<p align="right">28%</p>
</td>
<td valign="bottom" width="64">0 HOURS 59 MINUTES 6 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr Table 3</td>
<td valign="bottom" width="64">6 HOURS 36 MINUTES 20 SECS</td>
<td valign="bottom" width="64">396 min</td>
<td valign="bottom" width="64">3 HOURS 21 MINUTES 18 SECS</td>
<td valign="bottom" width="64">201 min</td>
<td valign="bottom" width="64">
<p align="right">50%</p>
</td>
<td valign="bottom" width="64">3 HOURS 13 MINUTES 38 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">Index Creation Table 3</td>
<td valign="bottom" width="64">0 HOURS 52 MINUTES 2 SECS</td>
<td valign="bottom" width="64">52 min</td>
<td valign="bottom" width="64">0 HOURS 40 MINUTES 3 SECS</td>
<td valign="bottom" width="64">40 min</td>
<td valign="bottom" width="64">
<p align="right">24%</p>
</td>
<td valign="bottom" width="64">0 HOURS 48 MINUTES 15 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr. Table 4</td>
<td valign="bottom" width="64">2 HOURS 41 MINUTES 13 SECS</td>
<td valign="bottom" width="64">161 min</td>
<td valign="bottom" width="64">1 HOURS 32 MINUTES 8 SECS</td>
<td valign="bottom" width="64">92 min</td>
<td valign="bottom" width="64">
<p align="right">43%</p>
</td>
<td valign="bottom" width="64">1 HOURS 28 MINUTES 25 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr Table 5</td>
<td valign="bottom" width="64">3 HOURS 46 MINUTES 59 SECS</td>
<td valign="bottom" width="64">226 min</td>
<td valign="bottom" width="64">2 HOURS 58 MINUTES 29 SECS</td>
<td valign="bottom" width="64">179 min</td>
<td valign="bottom" width="64">
<p align="right">21%</p>
</td>
<td valign="bottom" width="64">2 HOURS 55 MINUTES 20 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr. Table 6</td>
<td valign="bottom" width="64">0 HOURS 51 MINUTES 27 SECS</td>
<td valign="bottom" width="64">51 min</td>
<td valign="bottom" width="64">0 HOURS 36 MINUTES 46 SECS</td>
<td valign="bottom" width="64">37 min</td>
<td valign="bottom" width="64">
<p align="right">28%</p>
</td>
<td valign="bottom" width="64">0 HOURS 34 MINUTES 33 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">Insert to Table 6</td>
<td valign="bottom" width="64">0 HOURS 5 MINUTES 24 SECS</td>
<td valign="bottom" width="64">5 min</td>
<td valign="bottom" width="64">0 HOURS 5 MINUTES 6 SECS</td>
<td valign="bottom" width="64">5 min</td>
<td valign="bottom" width="64">NONE</td>
<td valign="bottom" width="64">0 HOURS 4 MINUTES 52 SECS</td>
<td valign="bottom" width="64">5 min</td>
<td valign="bottom" nowrap="nowrap" width="65">NONE</td>
</tr>
<tr>
<td valign="bottom" width="64">Update to Table 6</td>
<td valign="bottom" width="64">26 HOURS 40 MINUTES 41 SECS</td>
<td valign="bottom" width="64">1640 min</td>
<td valign="bottom" width="64">25 HOURS 9 MINUTES 52 SECS</td>
<td valign="bottom" width="64">1510 min</td>
<td valign="bottom" width="64">
<p align="right">8%</p>
</td>
<td valign="bottom" width="64">17 HOURS 44 MINUTES 2 SECS</td>
<td valign="bottom" width="64">1084 min</td>
<td valign="bottom" nowrap="nowrap" width="65">
<p align="right">44%</p>
</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table 7</td>
<td valign="bottom" width="64">1 HOURS 1 MINUTES 48 SECS</td>
<td valign="bottom" width="64">61 min</td>
<td valign="bottom" width="64">0 HOURS 7 MINUTES 43 SECS</td>
<td valign="bottom" width="64">8 min</td>
<td valign="bottom" width="64"><strong>13 Times Perf.</strong></td>
<td valign="bottom" width="64">0 HOURS 6 MINUTES 37 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr Table 8</td>
<td valign="bottom" width="64">0 HOURS 28 MINUTES 31 SECS</td>
<td valign="bottom" width="64">28 min</td>
<td valign="bottom" width="64">0 HOURS 22 MINUTES 12 SECS</td>
<td valign="bottom" width="64">22 min</td>
<td valign="bottom" width="64">
<p align="right">22%</p>
</td>
<td valign="bottom" width="64">0 HOURS 19 MINUTES 25 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Mod TBLS 9/10</td>
<td valign="bottom" width="64">1 HOURS 42 MINUTES 36 SECS</td>
<td valign="bottom" width="64">102 min</td>
<td valign="bottom" width="64">1 HOURS 42 MINUTES 22 SECS</td>
<td valign="bottom" width="64">102 min</td>
<td valign="bottom" width="64">NONE</td>
<td valign="bottom" width="64">1 HOURS 39 MINUTES 25 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Table Aggr. 11</td>
<td valign="bottom" width="64">2 HOURS 26 MINUTES 58 SECS</td>
<td valign="bottom" width="64">147 min</td>
<td valign="bottom" width="64">1 HOURS 29 MINUTES 53 SECS</td>
<td valign="bottom" width="64">90 min</td>
<td valign="bottom" width="64">
<p align="right">49%</p>
</td>
<td valign="bottom" width="64">1 HOURS 24 MINUTES 42 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr. Table 12</td>
<td valign="bottom" width="64">7 HOURS 24 MINUTES 44 SECS</td>
<td valign="bottom" width="64">445 min</td>
<td valign="bottom" width="64">6 HOURS 7 MINUTES 48 SECS</td>
<td valign="bottom" width="64">368 min</td>
<td valign="bottom" width="64">
<p align="right">18%</p>
</td>
<td valign="bottom" width="64">6 HOURS 6 MINUTES 40 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr. Table 13</td>
<td valign="bottom" width="64">6 HOURS 47 MINUTES 31 SECS</td>
<td valign="bottom" width="64">408 min</td>
<td valign="bottom" width="64">4 HOURS 38 MINUTES 1 SECS</td>
<td valign="bottom" width="64">278 min</td>
<td valign="bottom" width="64">
<p align="right">32%</p>
</td>
<td valign="bottom" width="64">5 HOURS 5 MINUTES 32 SECS</td>
<td valign="bottom" width="64">No Tuning</td>
<td valign="bottom" width="65">N/A</td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr. Table 14</td>
<td valign="bottom" width="64">25 HOURS 23 MINUTES 32 SECS</td>
<td valign="bottom" width="64">1524 min</td>
<td valign="bottom" width="64">10 HOURS 9 MINUTES 51 SECS</td>
<td valign="bottom" width="64">610 min</td>
<td valign="bottom" width="64">3 Times Perf.</td>
<td valign="bottom" width="64">5 HOURS 27 MINUTES 17 SECS</td>
<td valign="bottom" width="64">327 min</td>
<td valign="bottom" nowrap="nowrap" width="65"><strong>5 Times Perf</strong>.<strong></strong></td>
</tr>
<tr>
<td valign="bottom" width="64">CTAS Aggr. Table 15</td>
<td valign="bottom" width="64">1 HOURS 21 MINUTES 59 SECS</td>
<td valign="bottom" width="64">82 min</td>
<td valign="bottom" width="64">0 HOURS 22 MINUTES 49 SECS</td>
<td valign="bottom" width="64">23 min</td>
<td valign="bottom" width="64">
<p align="right">65%</p>
</td>
<td valign="bottom" width="64">0 HOURS 4 MINUTES 33 SECS</td>
<td valign="bottom" width="64">4 min</td>
<td valign="bottom" nowrap="nowrap" width="65"><strong>20 Times Perf.</strong></td>
</tr>
<tr>
<td valign="bottom" width="64">Update to Table 13</td>
<td valign="bottom" width="64">0 HOURS 12 MINUTES 45 SECS</td>
<td valign="bottom" width="64">13 min</td>
<td valign="bottom" width="64">0 HOURS 49 MINUTES 58 SECS</td>
<td valign="bottom" width="64">50 min</td>
<td valign="bottom" width="64">3 Times LOSS!!</td>
<td valign="bottom" width="64">0 HOURS 1 MINUTES 22 SECS</td>
<td valign="bottom" width="64">1 min</td>
<td valign="bottom" nowrap="nowrap" width="65"><strong>9 Times Perf.</strong></td>
</tr>
</tbody>
</table>
<p>Figure 2</p>
<p><em>I must note that what challenged us in unresolved issues were waits on CPU due to hyper-threaded CPU issues.  </em></p>
<p>Tuning involved for the third columns time elapsed involved the following:</p>
<ul>
<li>Bind variable additions</li>
<li>Literal additions where bind peeking was an issue.</li>
<li>A change from ASSM, (Automatic Segment Space Management) to manual segment space management where freelists could be set at the object level, (dynamically allocated freelists were not able to adjust quickly enough for some of the load processes…)</li>
<li>Changes to initial transactions, percent free and parallel that made sense, (upping it for some, downgrading it for others that did not work with the partitioning or a need for partitioning…)</li>
</ul>
<p><span style="text-decoration: underline;">Inspecting I/O by SQL_ID</span></p>
<p>This script, (adopted from Tim Gorman’s sqlhistory.sql from, <a href="http://www.evdbt.com/">www.evdbt.com</a>)  does a wonderful job of pulling a clean, clear picture of what physical and logical I/O is occurring in a single SQL_ID, seen here in Table 3 :</p>
<p>Table 3</p>
<table width="854" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="58"></td>
<td colspan="5" valign="bottom" nowrap="nowrap" width="547"><strong>Plan HV     Min Snap  Max Snap  Execs       LIO            PIO            CPU         Elapsed     </strong></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="58"></td>
<td colspan="5" valign="bottom" nowrap="nowrap" width="547">1766271350  659       659       1           593,134,283    12,961,814     14,657.45   15,067.05</td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="58"></td>
<td valign="bottom" nowrap="nowrap" width="237"></td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="2" valign="bottom" nowrap="nowrap" width="295"><strong>========== PHV = 1766271350==========</strong></td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423">First seen from &#8220;07/15/11 13:00:31&#8243; (snap #659)</td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423">Last seen from  &#8220;07/15/11 13:00:31&#8243; (snap #659)</td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="58"></td>
<td valign="bottom" nowrap="nowrap" width="237"></td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423"><strong>Execs          LIO            PIO            CPU            Elapsed</strong></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423"><strong>=====          ===            ===            ===            =======</strong></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423">1              593,134,283    12,961,814     14,657.45      15,067.05</td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="58"></td>
<td valign="bottom" nowrap="nowrap" width="237"></td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="2" valign="bottom" nowrap="nowrap" width="295"><strong>Plan hash value: 1766271350</strong></td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table width="655" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="55"><strong>    TQ  </strong></td>
<td valign="bottom" width="134"><strong>IN-OUT</strong></td>
<td valign="bottom" nowrap="nowrap" width="107"><strong> PQ Distrib </strong></td>
<td valign="bottom" nowrap="nowrap" width="64"><strong> </strong></td>
<td valign="bottom" nowrap="nowrap" width="53"><strong> </strong></td>
<td valign="bottom" nowrap="nowrap" width="57"><strong> </strong></td>
<td valign="bottom" nowrap="nowrap" width="88"><strong> </strong></td>
<td valign="bottom" nowrap="nowrap" width="51"><strong> </strong></td>
<td valign="bottom" nowrap="nowrap" width="47"><strong> </strong></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">0</p>
</td>
<td valign="bottom" width="134"> CREATE TABLE STATEMENT</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">  1543M(100)</td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55"></td>
<td valign="bottom" width="134"></td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">1</p>
</td>
<td valign="bottom" width="134">  PX COORDINATOR</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55"></td>
<td valign="bottom" width="134"></td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">2</p>
</td>
<td valign="bottom" width="134">   PX SEND QC (RANDOM)</td>
<td valign="bottom" nowrap="nowrap" width="107"> :TQ10001</td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">   397G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">  4128K  (7)</td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,01</td>
<td valign="bottom" width="134"> P-&gt;S</td>
<td valign="bottom" nowrap="nowrap" width="107"> QC (RAND)</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">3</p>
</td>
<td valign="bottom" width="134">    LOAD AS SELECT</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,01</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">4</p>
</td>
<td valign="bottom" width="134">     PX RECEIVE</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">   397G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">  4128K  (7)</td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,01</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">5</p>
</td>
<td valign="bottom" width="134">      PX SEND RANDOM LOCAL</td>
<td valign="bottom" nowrap="nowrap" width="107"> :TQ10000</td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">   397G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">  4128K  (7)</td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> P-&gt;P</td>
<td valign="bottom" nowrap="nowrap" width="107"> RANDOM LOCA</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">6</p>
</td>
<td valign="bottom" width="134">       PX PARTITION LIST ALL</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">   397G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">  4128K  (7)</td>
<td valign="bottom" nowrap="nowrap" width="51">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="47">
<p align="right">1000</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> PCWC</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">7</p>
</td>
<td valign="bottom" width="134">        HASH JOIN RIGHT OUTER</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">   397G</td>
<td valign="bottom" nowrap="nowrap" width="57">    14G</td>
<td valign="bottom" nowrap="nowrap" width="88">  4128K  (7)</td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">8</p>
</td>
<td valign="bottom" width="134">         TABLE ACCESS FULL</td>
<td valign="bottom" nowrap="nowrap" width="107">HDN_TBL</td>
<td valign="bottom" nowrap="nowrap" width="64">   231M</td>
<td valign="bottom" nowrap="nowrap" width="53">   112G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">   576K (22)</td>
<td valign="bottom" nowrap="nowrap" width="51">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="47">
<p align="right">1000</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">9</p>
</td>
<td valign="bottom" width="134">         HASH JOIN RIGHT OUTER</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">   171G</td>
<td valign="bottom" nowrap="nowrap" width="57">  6967M</td>
<td valign="bottom" nowrap="nowrap" width="88">  1551K  (7)</td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">10</p>
</td>
<td valign="bottom" width="134">          TABLE ACCESS FULL</td>
<td valign="bottom" nowrap="nowrap" width="107">HD_TBL</td>
<td valign="bottom" nowrap="nowrap" width="64">   310M</td>
<td valign="bottom" nowrap="nowrap" width="53">    50G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">   144K (34)</td>
<td valign="bottom" nowrap="nowrap" width="51">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="47">
<p align="right">1000</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">
<p align="right">11</p>
</td>
<td valign="bottom" width="134">          TABLE ACCESS FULL</td>
<td valign="bottom" nowrap="nowrap" width="107">H_TBL</td>
<td valign="bottom" nowrap="nowrap" width="64">   464M</td>
<td valign="bottom" nowrap="nowrap" width="53">    95G</td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88">   339K (13)</td>
<td valign="bottom" nowrap="nowrap" width="51">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="47">
<p align="right">1000</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="55">  Q1,00</td>
<td valign="bottom" width="134"> PCWP</td>
<td valign="bottom" nowrap="nowrap" width="107"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="53"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="88"></td>
<td valign="bottom" nowrap="nowrap" width="51"></td>
<td valign="bottom" nowrap="nowrap" width="47"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="854" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="4" valign="bottom" nowrap="nowrap" width="484"><strong>                                              Summary Execution Statistics Over Time</strong></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423">                                                                              Avg                 Avg</td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>Snapshot                          Avg LIO             Avg PIO          CPU (secs)      Elapsed (secs)</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>Time                 Execs            Per Exec            Per Exec            Per Exec            Per Exec</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541">15-JUL 13:00        1      593,134,283.00       12,961,814.00           14,657.45           15,067.05</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541">             &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541">avg                                 593,134,283.00       12,961,814.00           14,657.45           15,067.05</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="2" valign="bottom" nowrap="nowrap" width="295">sum                        1</td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="58"></td>
<td valign="bottom" nowrap="nowrap" width="237"></td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423"><strong>                                              Per-Plan Execution Statistics Over Time</strong></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="3" valign="bottom" nowrap="nowrap" width="423"><strong>                                                                                         Avg                 Avg</strong></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>      Plan Snapshot                          Avg LIO             Avg PIO          CPU (secs)      Elapsed (secs)</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541"><strong>Hash Value Time            Execs            Per Exec            Per Exec            Per Exec            Per Exec</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="6" valign="bottom" nowrap="nowrap" width="605"><strong>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</strong></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="6" valign="bottom" nowrap="nowrap" width="605">1766271350 15-JUL 13:00        1      593,134,283.00       12,961,814.00           14,657.45           15,067.05</td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="6" valign="bottom" nowrap="nowrap" width="605">**********              &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="5" valign="bottom" nowrap="nowrap" width="541">avg                                                        593,134,283.00       12,961,814.00           14,657.45           15,067.05</td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td colspan="2" valign="bottom" nowrap="nowrap" width="295">sum                                               1</td>
<td valign="bottom" nowrap="nowrap" width="128"></td>
<td valign="bottom" nowrap="nowrap" width="61"></td>
<td valign="bottom" nowrap="nowrap" width="57"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="91"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="45"></td>
<td valign="bottom" nowrap="nowrap" width="49"></td>
</tr>
<tr>
<td width="58"></td>
<td width="237"></td>
<td width="128"></td>
<td width="61"></td>
<td width="57"></td>
<td width="64"></td>
<td width="91"></td>
<td width="64"></td>
<td width="45"></td>
<td width="49"></td>
</tr>
</tbody>
</table>
<p>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>This report clearly shows the amount of logical vs. physical I/O coming from the statement in question.  This gives the DBA a clear indicator if any object in the poor performing process would benefit a move to SSD or if tuning is in order to eliminate the I/O performance challenge.  A combination of both may be chosen, as there are multiple right outer hash-joins which clearly show as the performance hit in the time elapsed and in the temp tablespace usage/significant I/O categories, (note that the process needs to scan ALL the partitions for the objects in question…)</p>
<p><span style="text-decoration: underline;">SSD and Forced Hash Joins on Indexes</span></p>
<p>When a database design is impacted by the front-end tool required to present data in a proper format, such as Business Analytics Software, the price can be high to the DBA who has to manage resource usage.  Many times the data must be presented in a very flat, wide format and requires a large amount of data pulled across a network interface.  This can be in anywhere from a couple 100GB’s to multiple Terabytes.  When you are the DBA looking at ways to increase performance when logical performance tuning is limited, solid state disk can offer you gains not offered anywhere else.</p>
<p>Business Analytics Software often will query a few 100GB to 1TB objects, hash join and then perform an order by.  For the DBA, to create an index, then using a hint to force a hash join between an index and the large table can improve performance greatly, but to move the index onto SSD can increase the hash and limit the requirements for SSD at the same time.</p>
<pre><span style="color: #000080;">create table    new_ordertmp_tbl  compress pctfree 0 tablespace data_1 as</span></pre>
<pre><span style="color: #000080;">SELECT <em>/*+ USE_HASH(t,i) INDEX_FFS(i,I_TBL2_IDX) INDEX(t,CT1) */</em></span></pre>
<pre><span style="color: #000080;">cast(MOD(t.i_id, 1000) as number(3)) im_key</span></pre>
<pre><span style="color: #000080;">, LEAST(ROUND(MONTHS_BETWEEN(:b1,  t.t_dt) + .4999 ), 48) AS r_key , t.i_id AS ib_id</span></pre>
<pre><span style="color: #000080;">, t.m_id, t.t_dt, cast(:b5 as varchar2(5)) m_cd, FIRST_VALUE(i.ib_id) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt ORDER BY t.t_dt ASC</span></pre>
<pre><span style="color: #000080;">) AS ibcid, t.t_nbr, cast(TO_NUMBER(TO_CHAR(FIRST_VALUE(t.t_dt) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt ORDER BY t.t_dt ASC</span></pre>
<pre><span style="color: #000080;">), ''YYYYMMDD'')) as number(8)) AS d_id,</span></pre>
<pre><span style="color: #000080;">FIRST_VALUE(DECODE(t.oct_cd, NULL, 'O','W', 'O', 'E', 'O', 'R', 'R', 'F')</span></pre>
<pre><span style="color: #000080;">) OVER(PARTITION BY t.d_id, t.m_id, t.t_nbr,t.t_dt ORDER BY t.t_dt ASC</span></pre>
<pre><span style="color: #000080;">) AS tct_cd, SUM(t.ot_amt) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt) AS ot_amt</span></pre>
<pre><span style="color: #000080;">, FIRST_VALUE(NVL(t.pmt_cd, ''U'')) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt ORDER BY t.t_dt ASC</span></pre>
<pre><span style="color: #000080;">) AS pmt_cd, SUM(t.i_cnt) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt) AS i_cnt</span></pre>
<pre><span style="color: #000080;">, FIRST_VALUE(t.cs_cd IGNORE NULLS) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt ORDER BY t.t_dt ASC</span></pre>
<pre><span style="color: #000080;">) AS cs_cd, FIRST_VALUE(t.cc_cd IGNORE NULLS) OVER(</span></pre>
<pre><span style="color: #000080;">PARTITION BY t.i_id, t.m_id, t.t_nbr,t.t_dt ORDER BY t.t_dt ASC</span></pre>
<pre><span style="color: #000080;">) AS cc_cd, t.oct_cd</span></pre>
<pre><span style="color: #000080;">FROM CT_TBL1 t, I_TBL2 i</span></pre>
<pre><span style="color: #000080;">WHERE t.m_id = :b5</span></pre>
<pre><span style="color: #000080;">AND t.t_dt BETWEEN  :b1  AND  :b2 AND i.ibid = t.i_id</span></pre>
<pre><span style="color: #000080;">order by i.i_id; </span></pre>
<p><span style="text-decoration: underline;">Object Sizes:</span></p>
<p>CT_TBL1, partition 7= 800GB</p>
<p>I_TBL2=1.2TB</p>
<p>While the I_TBL2_IDX, the index created on the I_TBL2 and possessing only the columns required for this routinely run query and leading with the I_ID column, is only 200GB.</p>
<p>Execution Plan for Query:</p>
<p>Table 4</p>
<table width="685" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="271"><strong>Description</strong></td>
<td valign="bottom" nowrap="nowrap" width="85"><strong>Object</strong></td>
<td valign="bottom" nowrap="nowrap" width="64"><strong>Cost</strong></td>
<td valign="bottom" nowrap="nowrap" width="97"><strong>Cardinality</strong></td>
<td valign="bottom" nowrap="nowrap" width="87"><strong>Bytes</strong></td>
<td valign="bottom" nowrap="nowrap" width="81"><strong>PartitionID</strong></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">SELECT STATEMENT, GOAL = ALL_ROWS</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">107587</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">10079496</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271"> WINDOW SORT</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">107587</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">10079496</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">  WINDOW BUFFER</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">107587</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">10079496</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">   WINDOW SORT</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">107587</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">10079496</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">    WINDOW SORT</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">107587</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">10079496</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">     FILTER</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64"></td>
<td valign="bottom" nowrap="nowrap" width="97"></td>
<td valign="bottom" nowrap="nowrap" width="87"></td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">      HASH JOIN</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">107371</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">10079496</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">       PARTITION LIST SINGLE</td>
<td valign="bottom" nowrap="nowrap" width="85"></td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">330</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">8166868</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81">
<p align="right">7</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">        TABLE ACCESS FULL</td>
<td valign="bottom" nowrap="nowrap" width="85">CT_TBL1</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">330</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">16356015</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">8166868</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81">
<p align="right">7</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="271">       INDEX FAST FULL SCAN</td>
<td valign="bottom" nowrap="nowrap" width="85">I_TBL2_IDX</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">23597</p>
</td>
<td valign="bottom" nowrap="nowrap" width="97">
<p align="right">6399400008</p>
</td>
<td valign="bottom" nowrap="nowrap" width="87">
<p align="right">2120000</p>
</td>
<td valign="bottom" nowrap="nowrap" width="81"></td>
</tr>
</tbody>
</table>
<p>The hash join is thus, decreased to a total size of 1TB, vs. the much larger size it would have been if the hash join would have been run against the table.  By running it with the index residing on solid state disks, the actual performance to create the table from the CTAS in question was increased by 12 fold.</p>
<p>What does the IO look like on the solid state disk vs. the old standard disk?  The differences are startling when viewed through iostat, (table 5).</p>
<p>Table 5</p>
<table width="350" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="73">Device:</td>
<td valign="bottom" nowrap="nowrap" width="85">rsec/s</td>
<td valign="bottom" nowrap="nowrap" width="64">wsec/s</td>
<td valign="bottom" nowrap="nowrap" width="64">avgqu-sz</td>
<td valign="bottom" nowrap="nowrap" width="64">%util</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="73">Raid 5 Disk</td>
<td valign="bottom" nowrap="nowrap" width="85">
<p align="right">55200</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="center"> 30224</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">215.72</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">84.03</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="73">SSD</td>
<td valign="bottom" nowrap="nowrap" width="85">
<p align="right">52394.67</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="center">   41306</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">223.74</p>
</td>
<td valign="bottom" nowrap="nowrap" width="64">
<p align="right">7.49</p>
</td>
</tr>
</tbody>
</table>
<p>As you can see, the IO is much less impacting on the SSD than the standard disk.</p>
<p>Via graphs, such as from Cacti, the differences in IO throughput can be seen for standard disk, (figure 3) and solid state disk, (figure 4.)</p>
<p>Figure 3</p>
<p><a href="http://dbakevlar.com/wp-content/uploads/2011/12/ssd_io_img1.jpg"><img class="alignleft size-full wp-image-427" title="ssd_io_img1" src="http://dbakevlar.com/wp-content/uploads/2011/12/ssd_io_img1.jpg" alt="" width="384" height="161" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Figure 4</p>
<p>&nbsp;</p>
<p><a href="http://dbakevlar.com/wp-content/uploads/2011/12/ssd_io_img21.jpg"><img class="alignleft size-full wp-image-429" title="ssd_io_img2" src="http://dbakevlar.com/wp-content/uploads/2011/12/ssd_io_img21.jpg" alt="" width="377" height="164" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;">Summary</span></p>
<p>Solid state disk is here to stay and often will be seen as a “silver bullet” for production I/O issues.  The goal of the DBA is to utilize this technology in a way that does not replace logical tuning and focus instead, in ways that may actually support positive changes enforcing both physical and logical tuning to get the most out of the new hardware available on the market today.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/12/solid-choices-for-oracle-tuning-on-solid-state-disk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restarting a Duplicate Process From a VERY Failed State</title>
		<link>http://dbakevlar.com/2011/11/restarting-a-duplicate-process-from-a-very-failed-state/</link>
		<comments>http://dbakevlar.com/2011/11/restarting-a-duplicate-process-from-a-very-failed-state/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 03:38:37 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DB Chaos]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=419</guid>
		<description><![CDATA[As part of an 11g Upgrade, it was found that a database environment could be built from one of the upgraded databases through a duplicate.  As this process had never been performed before in this fashion, a test was in order.  The test was an excellent chance to discover that the OSUser that performs the [...]]]></description>
			<content:encoded><![CDATA[<p>As part of an 11g Upgrade, it was found that a database environment could be built from one of the upgraded databases through a duplicate.  As this process had never been performed before in this fashion, a test was in order.  The test was an excellent chance to discover that the OSUser that performs the duplicate process was the proud owner of a .kshrc file with hard coded Oracle variables set which was an excellent choice if you want to really screw up a new duplicate database&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Scenario:</p>
<p>1. Duplicate has started with correct variables set.</p>
<p>2.  Subsequent shell scripts then &#8220;upset&#8221; the environment mid-process leaving a failed duplicate with ASM files for the controlfiles created, but the DBID and dbname still set to the target database, not the auxillary.</p>
<p>3.  Post the failure, the auxillary, (duplicate) database can only be mounted, not opened.</p>
<table width="722" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="722" /> </colgroup>
<tbody>
<tr>
<td width="722" height="60"></td>
</tr>
<tr>
<td width="722" height="20">After setting environment to building auxillary database environment, after duplicate failure and you see in the spfile, name of db is no longer the auxilary database.</td>
</tr>
<tr>
<td width="722" height="20">1.  Shutdown the auxilary database:</td>
</tr>
<tr>
<td width="722" height="20"> [oracledbs]$ sqlplus &#8216;/as sysdba&#8217;</td>
</tr>
<tr>
<td width="722" height="20">SQL&gt; shutdown;</td>
</tr>
<tr>
<td width="722" height="20">ORA-01109: database not open</td>
</tr>
<tr>
<td width="722" height="20">Database dismounted.</td>
</tr>
<tr>
<td width="722" height="20">ORACLE instance shut down.@</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="40">In a second screen set to +ASM instance for auxillary, remove controlfiles for target db that have been set to that name through the asmcmd command console:</td>
</tr>
<tr>
<td width="722" height="20">[oracle@dbs]$ asmcmd</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; ls</td>
</tr>
<tr>
<td width="722" height="20">DATA_H/</td>
</tr>
<tr>
<td width="722" height="20">DATA_RAM_H/</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; cd DATA_H</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; ls</td>
</tr>
<tr>
<td width="722" height="20">DB_H/</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; cd DB_H</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; ls</td>
</tr>
<tr>
<td width="722" height="20">CONTROLFILE/</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; cd CONTROLFILE</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; ls</td>
</tr>
<tr>
<td width="722" height="30">control1.ctl &lt;&#8211;these are control files for auxillary, stuck with dbname of target, can&#8217;t be renamed, can&#8217;t mount db!</td>
</tr>
<tr>
<td width="722" height="20">control2.ctl</td>
</tr>
<tr>
<td width="722" height="20">control3.ctl</td>
</tr>
<tr>
<td width="722" height="20">current.389.766743537</td>
</tr>
<tr>
<td width="722" height="20">current.445.766743537</td>
</tr>
<tr>
<td width="722" height="20">current.500.766743537</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; rm control*</td>
</tr>
<tr>
<td width="722" height="20">You may delete multiple files and/or directories.</td>
</tr>
<tr>
<td width="722" height="20">Are you sure? (y/n) y</td>
</tr>
<tr>
<td width="722" height="20">ASMCMD&gt; quit</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">Back on your original screen now, restart the auxillary with pfile set to corect dbname and start with this pfile-</td>
</tr>
<tr>
<td width="722" height="20">SQL&gt;  startup nomount pfile=&#8217;/u01/app/oracle/product/11.2.0/dbhome_2/dbs/initdb_h.ora&#8217;</td>
</tr>
<tr>
<td width="722" height="20">ORACLE instance started.</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">Total System Global Area 7.6964E+10 bytes</td>
</tr>
<tr>
<td width="722" height="20">Fixed Size                  2215704 bytes</td>
</tr>
<tr>
<td width="722" height="20">Variable Size            3.0065E+10 bytes</td>
</tr>
<tr>
<td width="722" height="20">Database Buffers         4.6708E+10 bytes</td>
</tr>
<tr>
<td width="722" height="20">Redo Buffers              189513728 bytes</td>
</tr>
<tr>
<td width="722" height="20">SQL&gt; create spfile from pfile;</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">File created.</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">SQL&gt; shutdown;</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">ORACLE instance shut down.</td>
</tr>
<tr>
<td width="722" height="20">SQL&gt; startup nomount;</td>
</tr>
<tr>
<td width="722" height="20">ORACLE instance started.</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">Total System Global Area 7.6964E+10 bytes</td>
</tr>
<tr>
<td width="722" height="20">Fixed Size                  2215704 bytes</td>
</tr>
<tr>
<td width="722" height="20">Variable Size            3.0065E+10 bytes</td>
</tr>
<tr>
<td width="722" height="20">Database Buffers         4.6708E+10 bytes</td>
</tr>
<tr>
<td width="722" height="20">Redo Buffers              189513728 bytes</td>
</tr>
<tr>
<td width="722" height="20"></td>
</tr>
<tr>
<td width="722" height="20">Now you can restart the duplicate process and the database will again be recognized correctly.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/11/restarting-a-duplicate-process-from-a-very-failed-state/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Break and EM12c and Other Hobbies</title>
		<link>http://dbakevlar.com/2011/11/how-to-break-and-em12c-and-other-hobbies/</link>
		<comments>http://dbakevlar.com/2011/11/how-to-break-and-em12c-and-other-hobbies/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 03:25:45 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DB Chaos]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=417</guid>
		<description><![CDATA[As many know I&#8217;ve been busy trying to bring our many-times patched 10g Enterprise Manager migrated to a new server with EM12c.  I thought it would be interesting to see how fast I could break it, considering my skills, I knew it might not be a challenge. Scenario 1.  Bug with listener refusing to connect [...]]]></description>
			<content:encoded><![CDATA[<p>As many know I&#8217;ve been busy trying to bring our many-times patched 10g Enterprise Manager migrated to a new server with EM12c.  I thought it would be interesting to see how fast I could break it, considering my skills, I knew it might not be a challenge.</p>
<p><span style="text-decoration: underline;">Scenario</span></p>
<p>1.  Bug with listener refusing to connect dynamically to EM12c repository database.</p>
<p>2.  After releasing code to the database for advanced notification,  the SYSMAN.MGMT_ADMIN_DATA package has gone invalid, which is used to manage much of the repository at the command line.</p>
<p>3.  The repository owner password has become corrupted.</p>
<p>These were my high level notes as I went through the troubleshooting:</p>
<table width="738" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="738" /> </colgroup>
<tbody>
<tr>
<td width="738" height="20">Reconfigure Repository:</td>
</tr>
<tr>
<td width="738" height="40">$AGENT_HOME/bin/emctl config oms -store_repos_details -repos_port 1521 -repos_sid emrep12c -repos_host host_nm -repos_user SYSMAN -repos_pwd password</td>
</tr>
<tr>
<td width="738" height="20"></td>
</tr>
<tr>
<td width="738" height="20">Stopping Old Oracle OMS and configuring:</td>
</tr>
<tr>
<td width="738" height="21">export ORACLE_HOME=/opt/oracle/app/OracleHomes/oms10g</td>
</tr>
<tr>
<td width="738" height="21">cd $ORACLE_HOME/opmn/bin</td>
</tr>
<tr>
<td width="738" height="21">./opmnctl stopall</td>
</tr>
<tr>
<td width="738" height="21">cd $ORACLE_HOME/bin</td>
</tr>
<tr>
<td width="738" height="21">./emctl config oms -change_repos_pwd</td>
</tr>
<tr>
<td width="738" height="21">cd $ORACLE_HOME/opmn/bin</td>
</tr>
<tr>
<td width="738" height="21">./opmnctl startall</td>
</tr>
<tr>
<td height="20"></td>
</tr>
<tr>
<td width="738" height="21">Invalid package after loop from listener bug, corrupt SYSMAN password and invalid MGMT_XXX pkgs!</td>
</tr>
<tr>
<td width="738" height="21">Can&#8217;t reset password, pkg used for it is invalid!</td>
</tr>
<tr>
<td height="20">ORA-04063: package body &#8220;SYSMAN.MGMT_ADMIN_DATA&#8221; has errors</td>
</tr>
<tr>
<td height="20">ORA-06508: PL/SQL: could not find program unit being called: &#8220;SYSMAN.MGMT_ADMIN_DATA&#8221;</td>
</tr>
<tr>
<td height="20">ORA-06512: at line 1</td>
</tr>
<tr>
<td height="20">Can&#8217;t start repository, password error in logs:</td>
</tr>
<tr>
<td height="20">Error occurred. Check the log /local/u01/app/oracle/product/12.1.0/gc_inst/em/EMGC_OMS1/sysman/log/secure.log</td>
</tr>
<tr>
<td height="20">[oracle@vwgrid01 bin]$ ./emctl start oms</td>
</tr>
<tr>
<td width="738" height="20">Oracle Enterprise Manager Cloud Control 12c Release 12.1.0.1.0</td>
</tr>
<tr>
<td width="738" height="20"></td>
</tr>
<tr>
<td width="738" height="20">Soooo close…but did I get far enough?, (Nope, failure…have to remove everything!!)</td>
</tr>
<tr>
<td width="738" height="20">Can&#8217;t drop repository:</td>
</tr>
<tr>
<td width="738" height="40">&lt;Database ORACLE HOME&gt;/bin/emca -deconfig dbcontrol db -repos drop -SYS_PWD sys_password -SYSMAN_PWD password</td>
</tr>
<tr>
<td width="738" height="20">Can&#8217;t reconfigure through the system, either!</td>
</tr>
<tr>
<td width="738" height="40">&lt;Database ORACLE HOME&gt;/bin/emca -deconfig dbcontrol db -repos drop -cluster -SYS_PWD sys_password -SYSMAN_PWD password</td>
</tr>
<tr>
<td width="738" height="20"></td>
</tr>
<tr>
<td width="738" height="20"></td>
</tr>
<tr>
<td width="738" height="20">No chance either…I&#8217;m stuck in a terrible loop!</td>
</tr>
<tr>
<td width="738" height="20"></td>
</tr>
<tr>
<td width="738" height="20">Solution-</td>
</tr>
<tr>
<td width="738" height="40">backup and then edit out the 12c environment from the inventory.xml file in the ContentsXML dir of the Lsinventory</td>
</tr>
<tr>
<td width="738" height="20">kill any process that are still running out the the EM12c home.</td>
</tr>
<tr>
<td width="738" height="20">rm -rf the 12c home directory</td>
</tr>
<tr>
<td width="738" height="20">Uninstall the emrep12 database in the 11g home</td>
</tr>
<tr>
<td width="738" height="20">Create a new emrep12 database in the 11g home</td>
</tr>
<tr>
<td width="738" height="20">recreate a new inventory file:</td>
</tr>
<tr>
<td width="738" height="40">$ORACLE_HOME/oui/bin/runInstaller -silent -invPtrLoc &#8220;/u01/app/oraInventory/oraInst.loc&#8221; -attachHome ORACLE_HOME=&#8221;/u01/app/oracle/product/11.2.0&#8243; ORACLE_HOME_NAME=&#8221;OraDb11g_home2&#8243;</td>
</tr>
<tr>
<td width="738" height="20">Install the EM12c once again, as now the installation appears to have never existed…</td>
</tr>
<tr>
<td width="738" height="20"></td>
</tr>
<tr>
<td width="738" height="40">If a restart of the installation needs to be done, you need to look in the home it fails on, (*saying that it&#8217;s already installed there) and remove the *_temp file from the dir, then try again.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/11/how-to-break-and-em12c-and-other-hobbies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The NO_INVALIDATE Option in DBMS_STATS with 10g</title>
		<link>http://dbakevlar.com/2011/10/the-no_invalidate-option-in-dbms_stats-with-10g/</link>
		<comments>http://dbakevlar.com/2011/10/the-no_invalidate-option-in-dbms_stats-with-10g/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 19:51:54 +0000</pubDate>
		<dc:creator>Kellyn Pot'Vin</dc:creator>
				<category><![CDATA[DB Chaos]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=411</guid>
		<description><![CDATA[I had worked hard on a report, 47 SQL statements in all to tune it down from 5 hrs to under 30 minutes.  The first runs had been quite successful, so when a third run sent an alert on temp usage, I knew something was wrong. SID PROCESS MACHINE SQL_TEXT SQL_ID TOTAL MB -------- ------------ [...]]]></description>
			<content:encoded><![CDATA[<p>I had worked hard on a report, 47 SQL statements in all to tune it down from 5 hrs to under 30 minutes.  The first runs had been quite successful, so when a third run sent an alert on temp usage, I knew something was wrong.</p>
<pre>     SID PROCESS      MACHINE SQL_TEXT    SQL_ID     TOTAL MB
-------- ------------ -------------------- ---------------------
     507 1137	      HOST SELECT *** 7t3muww36xhzn  45516
     600 1139	      HOST SELECT *** 7t3muww36xhzn  45516
     525 1132	      HOST SELECT *** 7t3muww36xhzn  45516
     509 1135	      HOST SELECT *** 7t3muww36xhzn  45516</pre>
<p>I checked the stats first, as one of the fixes was to ensure the staging tables in this process were collecting stats after the initial feeds came in, but both tables involved showed valid statistics:</p>
<pre><span style="color: #0000ff;">SQL&gt; select num_rows, last_analyzed from dba_tab_partitions 2 where table_name='&lt;I_STAGE&gt;' 3 and partition_name='P170';</span>

 <strong> NUM_ROWS LAST_ANAL</strong>
---------- ---------
 480900000 17-OCT-11</pre>
<pre><span style="color: #0000ff;">SQL&gt; select last_analyzed from dba_tables 2 where table_name='&lt;SML_TBL&gt;';</span>

<strong>LAST_ANAL</strong>
---------
17-OCT-11</pre>
<p>I ran a quick AWR report for the specific SQL_ID to see what I was dealing with, execution plan wise..</p>
<pre></pre>
<pre>              Snap Id      Snap Time      Sessions Curs/Sess
            --------- ------------------- -------- ---------
Begin Snap:     46198 18-Oct-11 09:00:09       282       7.9
  End Snap:     46200 18-Oct-11 10:00:13       245       8.4
   Elapsed:               60.07 (mins)
   DB Time:            1,874.62 (mins)</pre>
<pre></pre>
<p>&nbsp;</p>
<pre>SQL ID: 7t3muww36xhzn           DB/Inst: PRODUCTION/PROD  Snaps: 46198-46200
-&gt; 1st Capture and Last Capture Snap IDs
   refer to Snapshot IDs witin the snapshot range
-&gt; SELECT ***

    Plan Hash           Total Elapsed                 1st Capture   Last Capture
#   Value                    Time(ms)    Executions       Snap ID        Snap ID
--- ---------------- ---------------- ------------- ------------- --------------
1   324636810               4,785,428             4         46199          46199
2   4097803110                  1,047             1         46200          46200
          -------------------------------------------------------------

Plan 1(PHV: 324636810)
----------------------

Plan Statistics                 DB/Inst: PRODBASE/prodbase  Snaps: 46198-46200
-&gt; % Total DB Time is the Elapsed Time of the SQL statement divided
   into the Total Database Time multiplied by 100

Stat Name                                Statement   Per Execution % Snap
---------------------------------------- ---------- -------------- -------
Elapsed Time (ms)                         4,785,428    1,196,357.0     4.3
CPU Time (ms)                             3,450,070      862,517.6     8.4
Executions                                        4            N/A     N/A
Buffer Gets                                 759,453      189,863.3     0.0
Disk Reads                                  683,619      170,904.8     2.8
Parse Calls                                      35            8.8     0.0
Rows                                              0            0.0     N/A</pre>
<pre>Execution Plan
------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name        | Rows  | Bytes | Cost  | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib
------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |             |       |       |     9 |       |       |        |      |
|   1 |  COUNT STOPKEY                |             |       |       |       |       |       |        |      |
|   2 |   PX COORDINATOR              |             |       |       |       |       |       |        |      |
|   3 |    PX SEND QC (ORDER)         | :TQ10002    |     1 |   240 |     9 |       |       |  Q1,02 | P-&gt;S | QC (ORDER)
|   4 |     VIEW                      |             |     1 |   240 |     9 |       |       |  Q1,02 | PCWP |
|   5 |      SORT ORDER BY STOPKEY    |             |     1 |   120 |     9 |       |       |  Q1,02 | PCWP |
|   6 |       PX RECEIVE              |             |     1 |   240 |       |       |       |  Q1,02 | PCWP |
|   7 |        PX SEND RANGE          | :TQ10001    |     1 |   240 |       |       |       |  Q1,01 | P-&gt;P | RANGE
|   8 |         SORT ORDER BY STOPKEY |             |     1 |   240 |       |       |       |  Q1,01 | PCWP |
|   9 |          HASH JOIN            |             |     1 |   120 |     5 |       |       |  Q1,01 | PCWP |
|  10 |           PX RECEIVE          |             |     1 |   109 |     3 |       |       |  Q1,01 | PCWP |
|  11 |            PX SEND BROADCAST  | :TQ10000    |     1 |   109 |     3 |       |       |  Q1,00 | P-&gt;P | BROADCAST
|  12 |             PX BLOCK ITERATOR |             |     1 |   109 |     3 |   KEY |   KEY |  Q1,00 | PCWC |
|  13 |              TABLE ACCESS FULL| I_STAGE     |     1 |   109 |     3 |   KEY |   KEY |  Q1,00 | PCWP |
|  14 |           PX BLOCK ITERATOR   |             |  5002 | 55022 |     2 |       |       |  Q1,01 | PCWC |
|  15 |            TABLE ACCESS FULL  | SML_TBL     |  5002 | 55022 |     2 |       |       |  Q1,01 | PCWP |
------------------------------------------------------------------------------------------------------------------------</pre>
<p>This is the one that was eating up all the temp! Note that even though I checked stats, stats were correct as of the previous day, no changes to the partition stats, the execution plan only shows one row, which anyone who listens to Maria Colgan knows, that&#8217;s just Oracle giving you the benefit of the doubt and saying, &#8220;I don&#8217;t think there&#8217;s any rows in this object, (or sub-object in this case..) but I&#8217;ll give you 1 row for the fun of it!&#8221;</p>
<p>Second execution plan in the report is the one I desired:</p>
<pre>Plan 2(PHV: 4097803110)
-----------------------

Plan Statistics                 DB/Inst: PRODUCTION/PROD  Snaps: 46198-46200
-&gt; % Total DB Time is the Elapsed Time of the SQL statement divided
   into the Total Database Time multiplied by 100

Stat Name                                Statement   Per Execution % Snap
---------------------------------------- ---------- -------------- -------
Elapsed Time (ms)                             1,047        1,046.7     0.0
CPU Time (ms)                                   967          967.0     0.0
Executions                                        1            N/A     N/A
Buffer Gets                                   2,007        2,007.0     0.0
Disk Reads                                        3            3.0     0.0
Parse Calls                                       9            9.0     0.0
Rows                                             40           40.0     N/A
User I/O Wait Time (ms)                           1            N/A     N/A</pre>
<pre>Execution Plan
------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name        | Rows  | Bytes |TempSpc| Cost  | Pstart| Pstop |    TQ  |IN-OUT| PQ
------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |             |       |       |       |  2834 |       |       |        |      |
|   1 |  COUNT STOPKEY                |             |       |       |       |       |       |       |        |      |
|   2 |   PX COORDINATOR              |             |       |       |       |       |       |       |        |      |
|   3 |    PX SEND QC (ORDER)         | :TQ10002    |  1272K|   291M|       |  2834 |       |       |  Q1,02 | P-&gt;S | QC
|   4 |     VIEW                      |             |  1272K|   291M|       |  2834 |       |       |  Q1,02 | PCWP |
|   5 |      SORT ORDER BY STOPKEY    |             |  1272K|   152M|   389M|  2834 |       |       |  Q1,02 | PCWP |
|   6 |       PX RECEIVE              |             |    40 |  9600 |       |       |       |       |  Q1,02 | PCWP |
|   7 |        PX SEND RANGE          | :TQ10001    |    40 |  9600 |       |       |       |       |  Q1,01 | P-&gt;P | RA
|   8 |         SORT ORDER BY STOPKEY |             |    40 |  9600 |       |       |       |       |  Q1,01 | PCWP |
|   9 |          HASH JOIN            |             |  1272K|   152M|       |     7 |       |       |  Q1,01 | PCWP |
|  10 |           PX RECEIVE          |             |  5005 | 55055 |       |     2 |       |       |  Q1,01 | PCWP |
|  11 |            PX SEND BROADCAST  | :TQ10000    |  5005 | 55055 |       |     2 |       |       |  Q1,00 | P-&gt;P | BR
|  12 |             PX BLOCK ITERATOR |             |  5005 | 55055 |       |     2 |       |       |  Q1,00 | PCWC |
|  13 |              TABLE ACCESS FULL| SML_TBL     |  5005 | 55055 |       |     2 |       |       |  Q1,00 | PCWP |
|  14 |           PX BLOCK ITERATOR   |             |  1271K|   139M|       |     4 |   KEY |   KEY |  Q1,01 | PCWC |
|  15 |            TABLE ACCESS FULL  | I_STAGE     |  1271K|   139M|       |     4 |   KEY |   KEY |  Q1,01 | PCWP |
------------------------------------------------------------------------------------------------------------------------</pre>
<pre></pre>
<p>So what changed? What impacted my statistics?</p>
<p>Upon investigation, I came to the conclusion that it is a combination of a &#8220;feature&#8221; with what I think is a bug in 10g dbms_stats.</p>
<p>A search of stats processing showed that during the one process that was executing against the P170 partition on the I_STAGE, there were a number of other partitions in this same table having stats gathered post loading.</p>
<pre><span style="color: #0000ff;">declare v_stage_table_name varchar2(64); begin select min(stage_table_name) into v_stage_table_name from stage_tables </span></pre>
<pre><span style="color: #0000ff;">where stage_table_type_cd = '&lt;I_STAGE&gt;'; dbms_stats.gather_table_stats (ownname =&gt; 'dw_user', tabname =&gt; v_stage_table_name, </span></pre>
<pre><span style="color: #0000ff;">partname =&gt; 'P450' ,estimate_percent =&gt;.01, granularity=&gt;'PARTITION', method_opt=&gt;'for all columns size 1', </span></pre>
<pre><span style="color: #0000ff;">no_invalidate=&gt; false, cascade=&gt;false, degree=&gt;4); end;</span></pre>
<p>Now the key here in the statement above is:</p>
<p><strong><span style="color: #0000ff;">no_invalidate=&gt;false</span></strong></p>
<p>If you read the description for this from Oracle:</p>
<table title="GATHER_TABLE_STATS Procedure Parameters" dir="ltr" summary="This table describes the Parameters of DBMS_STATS.GATHER_TABLE_STATS subprogram." width="100%" border="1" frame="hsides" rules="groups" cellspacing="0" cellpadding="3">
<tbody>
<tr align="left" valign="top">
<td id="r14c1-t37" headers="r1c1-t37" align="left"><code>no_invalidate</code></td>
<td headers="r14c1-t37 r1c2-t37" align="left">Does not invalidate the dependent cursors if set to <code>TRUE</code>. The procedure invalidates the dependent cursors immediately if set to <code>FALSE</code>. Use <code>DBMS_STATS</code>.<code>AUTO_INVALIDATE</code>. to have Oracle decide when to invalidate dependent cursors. This is the default. The default can be changed using the <a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_stats.htm#i1048566">SET_PARAM Procedure</a>.</td>
</tr>
</tbody>
</table>
<p>The surmised bug is one where even though the dbms_stats being performed by another process is partition level, the invalidation of the cursors is across all partitions in the object, causing them all to be invalidated, requiring them to re-parse the SQL.  (There are a number of similar bugs already documented in 10.2.0.4.0 for partition level statistics gathering&#8230;)</p>
<p>The feature to allow Oracle to re-parse and take advantage of the newest statistics information in the data dictionary resulted in a poor performance challenge in this instance, as the cursors were invalidated on a process that needed no changes to statistics.</p>
<p>I tested repeatedly against partitions, collecting stats with the no_invalidate set to false or true and even to AUTO to see what would occur and it consistently impacted my cursors against other partitions.  I can find not documented bug, but as many know, I&#8217;m about to move everything to 11g  in short order and expect it would be a waste of time to pursue it to far&#8230;</p>
<p>I notified the Java developer who owns this code to please update the no_invalidate=&gt;true to correct the performance impact short term and look forward to 11g bugs to replace my exhaustion on 10g ones! <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/10/the-no_invalidate-option-in-dbms_stats-with-10g/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Oracle Open World 2011 Followup</title>
		<link>http://dbakevlar.com/2011/10/oracle-open-world-2011-followup/</link>
		<comments>http://dbakevlar.com/2011/10/oracle-open-world-2011-followup/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 02:51:55 +0000</pubDate>
		<dc:creator>Kellyn</dc:creator>
				<category><![CDATA[DBA Life]]></category>

		<guid isPermaLink="false">http://dbakevlar.com/?p=407</guid>
		<description><![CDATA[Oracle Open World is over for me now, but what a great event it was.  I met so many people and actually was able to spend a little time getting to know a few of them.  I attended parties, dinners and meetups.  I networked myself, my company and RMOUG.  It was a phenomenal turn out, [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Oracle Open World is over for me now, but what a great event it was.  I met so many people and actually was able to spend a little time getting to know a few of them.  I attended parties, dinners and meetups.  I networked myself, my company and RMOUG.  It was a phenomenal turn out, even with a few folks missing that I knew we&#8217;d miss terribly</p>
<p align="left"><strong>Arriving-  California Zephyr</strong></p>
<p align="left">If you hadn&#8217;t heard, we decided to take a train from Denver, CO to San Francisco, CA. via Amtrak, called the California Zephyr.  This was a 33 hour train ride, slowly trekking at times, racing traffic at others, through beautiful scenery, all from a second floor sleeper car.  We had lovely meals with folks in the dinner lounge car and visited with others on the observation deck, (specialized car with a glass, domed ceiling.</p>
<p align="left">Upon our arrival in San Fran, we quickly rented a car and headed up to a lovely party at Oracle&#8217;s one and only, Graham Woods.  I quickly found Gwen Shapira, (we&#8217;ve been trying to meet for awhile now, so was glad to FINALLY have the opportunity met&#8230;) caught up with Alex Gorbachev and teased by Cary Millsap about our challenges with understanding that we needed to PAY for our bottle of wine on the train and that it was not included in the price of the meal, (glad they couldn&#8217;t figure out how to pronounce my name over the intercom, but quickly figured out that it was me and my wonderful companion they were looking for-  his name is not so difficult to pronounce!)</p>
<p align="left">Debra Lilley arrived soon into the party and many found fun as she brought me from room to room in search of those she wanted to introduce me to.  I&#8217;m to ensure she has a great birthday at February&#8217;s RMOUG, so it&#8217;s important she and I bond, ya know&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="left">I ended up with a lovely embarassing situation upon being introduced to &#8220;Greg Brown&#8221; who I had to ask repeatedly where I knew him from, which he found quite hilarious, considering our emails until it hit me I was speaking to &#8220;Greg Rahn&#8221;.  He was a good sport about my lack of IQ after the long trip and I appreciate his patience.</p>
<p align="left"><strong>Sunday, OOW11</strong></p>
<p align="left">The first day consisted of me attending a few of Tim Gorman&#8217;s sessions that I, as a VLDB DBA, had lived, but had never really sat through before.  I still picked up a few things from my first DBA God and yes, the Gods are good to me.  At his second session, Tim pointed out Andy Klock and I to each other, knowing we&#8217;d been tweeting back and forth about meeting up, so we sat together and it gave me an opportunity to physically meet one of the major clients I supported while at Pythian.  It was a pleasure to speak to her in person and glad to see someone not as indepth in the database world revel in the festivities and presentations of Oracle Open World.</p>
<p align="left">Sunday evening was the ACE dinner and attendance was fantastic, (along with the food!)  It was easy to see why no one sat at any one table for very long and I did get to spend a good amount of time speaking with Mark Bobak, Kent Graziano, Doug Burns, James Morle, along with many others.</p>
<p align="left"><strong>Monday, OOW11</strong></p>
<p align="left">I didn&#8217;t do to well on my schedule builder for Monday or Tuesday and if I go back over the actual schedule of sessions, I&#8217;m sure I&#8217;ll find a few that I should have gone to.  Monday night was the Oak Table dinner which was great fun.  We started out meeting up with Mike Swing and Craig Shalahammer for drinks before heading to the dinner.  Craig showed me some of his mathamatica graphics for buffers and latch visuals, (yes, his is one of those sessions I obviously missed adding to my schedule!)  We spoke about databases a bit, but the conversations regarding life were much more interesting.</p>
<p align="left">Upon heading over to the Oak table dinner, there was a huge line of people waiting for taxis, but Mike Swing, Tim Gorman and I went up to the bellhop instead.  I&#8217;m not sure if it was Mike or Tim, but one of them asked if there was a better option and we had a personal SUV taking us to our dinner in just a few minutes for a few dollars more than a taxi would have cost, (note to future OOW attenders&#8230;screw the lines! <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p align="left">As soon as we entered for the dinner, the gracious Carol Dacko ensured us our places and Mogens Norrsgard was busy entertaining everyone.  He and I quickly attained a quirky regard for each other and the jokes about Tim,  &#8220;I saw him first!&#8221; as the game of us challenging each other for Tim&#8217;s affections commenced.</p>
<p align="left">I was seated next to Jeremy Schneider, who I thoroughly enjoyed conversing with.  He&#8217;s a brilliant young DBA, so his company, along with Gwen Shapira, Robyn Sands, Tim Gorman, Andy Klock, Rihaj Shamsudeen and Alex Gorbachev guaranteed a lively conversation.  This was also my first opportunity to meet up with Yury Velikanov from Pythian. I&#8217;ve only worked with him virtually, so this was a great chance considering he resides in Austrailia.  He is technically skilled, easy-going and quick to make friends-  a great representative for the Pythian name, like Gwen and Andy.</p>
<p align="left"><strong>Tuesday, OOW11</strong></p>
<p align="left">Tuesday was the start for most of us feeling the heat from staying up to late and eliminating sleep from our diets.  My voice was starting to sound a bit horse at this point, so I&#8217;m sure folks were starting to wonder how well I had fought off my cold, (not very well in the colder, wetter weather of San Francisco&#8230;)  We met up with Ben Boise from Quest Software and spent a bit of time at the Enkitec booth.  The Enkitec booth was hands-down, the winner for me.  Kerry Osbourne had told me at Graham&#8217;s party, after I had finished teasing Frits Hoogland that he&#8217;d been given my copy of the Exadata book via Tanel, that if I came by, he&#8217;d have a copy for me.  Yeah, wasn&#8217;t turning that down&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   So while there, spoke to Kerry about what a great DBA and all around good guy Karl Arao was.  He&#8217;s succeeding there and post the converation, asked Kerry and Randy Johnson to sign my copy of the book.  I went back a bit later to talk with Karl a bit more and for the fun of it, forced him to sign my copy, too.  Tanel had tweeted that he was going to have a secret Exadata hacking session that day, so I headed out with my book and was able to get Tanel&#8217;s signature, too&#8230;  No, none of you can have it&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="left">On our way out of Moscone for the night, spent about 20 minutes speaking with Jonathan Lewis.  Dr. Steve Dorsey and a guest joined Tim Gorman, Jonathan and I to complete the conversation about the evenings plans.</p>
<p align="left">We traveled down to The Stinking Rose for a wonderful dinner of wonderful dishes with way too much garlic in them.  I truly feared anyone who would come near us post the meal, but it was well worth it, (and apologies to anyone near us afterwards&#8230;)</p>
<p align="left"><strong>Wednesday, OOW11</strong></p>
<p align="left">The day went quickly and the evening was the blogger meetup, there was a break between networking, dropping off postcards promoting RMOUG 2012, where we were able to head over to Mogen&#8217;s office, (i.e. back of Chevy&#8217;s restaurant this year&#8230;) where everyone had been hanging out throughout each day when needing a break from the chaos.  Throughout the day, there was some conversation via Twitter on who was going to get my wristband, as we were bowing out of the concert/chaos that night.  First it appeared that Greg Rahn would need it, but I had already pointed him towards Mike Swing who was offering him up one, so Doug Burns was the lucky winner and new owner of my band.  The group at Chevy&#8217;s, as always was fun to simply observe, let alone partake in conversation with and how can you say no to Mogens?</p>
<p align="left">The meetup was a quick hop and a jump over to Jillian&#8217;s where there were a number of private parties going on, but the bloggers meetup by Pythian was the top deal.  We were all given a bandana and sharpies to get each other&#8217;s signature, which I was a happy blogger to just go around and meet as many as I could.  I enjoyed writing &#8220;Kellyn was here&#8221; and pointing arrows to the Pythian logo on the bandana or as everyone was wearing them on their heads, it had humor all in itself, (note to self, another reason I&#8217;m glad no one decided to wear the bandana as a bustier&#8230;)</p>
<p align="left">Paul Vallee did a lovely tribute to Steve Jobs in the beginning of the meet up at the high time, Pythian first gave away an Apple TV to the blogger picked who had posts from the dates randomly chosen, (happened to be RMOUG Training Days week, so I didn&#8217;t even have to check, I KNEW I had posts out there.. LOL)  Yury won the TV and then they gave away an IPod Touch to the person who had received the most signatures.  I was sure I was no where near the top, but then got a look at the leader, Tim Hall&#8217;s bandana.  Upon counting mine up, I was two short of his number and he won, but Tim, the gracious guy he is, handed me the prize.  I, confused easily as I am, asked why I was getting it, I came in second and he replied, &#8220;I [worked] around to get my signatures and you just got them while meeting everyone, I&#8217;m disqualifying myself!&#8221;  Thank you, Tim Hall, from me and my children, who one in particular has been jonesing for one of these! <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="left">Post the meetup, Tim Gorman and I were going to head out for some dinner and Alex Gorbachev joined us at a wonderful Indian restaurant called Amber.  Wine and conversation flowed, while the fun and chaos of the Petty/Sting concert went on at Treasure Island.  When we did finally finish, it was just in time to meet everyone back over at the night&#8217;s bar of choice, &#8220;W&#8221;.  I sat and spoke most of the evening with Martin Paul Nash, Alex G. and Dan Norris, (Mogen&#8217;s slept in the corner, those Danes and their catnaps to catch up on jetlag really impresses me!)  Folks came in from the concert, Lisa Dobson, Connor McDonald, Andy Klock, Doug Burns and others, little by little.  We stayed and talked until my voice had become so hoarse that I was starting to sound a bit like Barry White.</p>
<p align="left">Gotta say, another brilliant, easy-going and friendly DBA, Martin Paul Nash.  Between Martin, Andy, Jeremy, Connor and Dan, I&#8217;m feeling good about the future of our database administration world.</p>
<p align="left"><strong>Thursday, OOW11</strong></p>
<p align="left">Surprise came the next morning when we found out many of the people we left the night before had never actually slept that night.  They continued to enjoy the opportunity to see folks that many may only see once a year and had simply stayed up!  A few of them were presenting on Thursday, so a lot of attendees may have wondered about that, too&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p align="left">I attended only one session on Thursday, had slept in too late for the one I&#8217;d wanted to attend on optimal performance, (and had to answer to Gwen and others as to why I wasn&#8217;t there&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )  Maria Colgan was great, (as usual) and she was one of the last folks I really wanted to meet, but had reserved the fact by the group that crowded her immediately after the presentation, that it just wasn&#8217;t going to happen.  Tim and I went over to Chevy&#8217;s to have a last OOW11 lunch with Mogens&#8217; group before heading to the airport and who shows up to have lunch there, too?  Yes, Maria Colgan, so I did get to meet her&#8230;AND have lunch with her, (along with DBA Gods, Demi-Gods, you know the drill&#8230; <img src='http://dbakevlar.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p align="left">During all of this, I did a lot of RMOUG networking to ensure that I added as much to the great plans for the 2012 conference that I could.  I was thrilled to have so many folks dedicated to coming out to Denver in February to talk, (because the conference is second to Debra Lilley&#8217;s birthday, I swear the marketing is there!)  Had a lovely conversation about bringing RAC Attack out for training days this year, which I think will be well received.  Jeremy Schneider is in Africa the week of the conference, but we are working on others who can really take on this great opportunity for DBA&#8217;s to take advantage of.</p>
<p align="left">I wish I could say the plane ride back was relaxing and a wonderful time to reflect on a great Oracle Open World, but as usual, the airlines were busy trying to ruin travel for all of us.  I am thrilled with everyone I met while in San Francisco and although I should have attended more sessions, I wouldn&#8217;t have changed a thing.</p>
<p align="left">Thank you Oracle, Pythian and all that I met this last week for such a wonderful experience!</p>
]]></content:encoded>
			<wfw:commentRss>http://dbakevlar.com/2011/10/oracle-open-world-2011-followup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

