<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-755542794415995865</id><updated>2011-09-28T15:30:57.814-07:00</updated><category term='performance tuning'/><category term='oem'/><category term='Wait Events'/><category term='publications'/><category term='Optimizer'/><category term='Explain Plan'/><category term='Software'/><category term='graphics'/><category term='dboptimizer'/><category term='Oracle'/><category term='sybase'/><category term='ASH'/><category term='conferences'/><category term='management'/><category term='industry'/><category term='embarcadero'/><category term='presentations'/><category term='sql tuning'/><category term='vst'/><title type='text'>DB Optimizer</title><subtitle type='html'>database performance, sql tuning and  data visualization</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default?start-index=101&amp;max-results=100'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>138</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3477528106944072990</id><published>2011-01-01T09:21:00.000-08:00</published><updated>2011-01-04T17:42:41.640-08:00</updated><title type='text'>Migrating to wordpress</title><content type='html'>I'm migrating to wordpress. In 5  seconds you should be redirected to&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dboptimizer.com/"&gt;http://dboptimizer.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3477528106944072990?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3477528106944072990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/migrating-to-wordpress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3477528106944072990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3477528106944072990'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/migrating-to-wordpress.html' title='Migrating to wordpress'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-530225248302520435</id><published>2010-12-28T17:53:00.000-08:00</published><updated>2010-12-28T18:10:31.628-08:00</updated><title type='text'>Delphix deals before the end of year</title><content type='html'>&lt;span style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"   &gt;&lt;div&gt;&lt;span style="border-collapse: collapse; "&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse; "&gt;It's let's make a deal time at Delphix.  &lt;/span&gt;&lt;span style="border-collapse: collapse; "&gt;If you have ever had the fun of closing an Oracle deal at their fiscal year end, you know what happens. Not only is it fiscal year end but Delphix is also millimeters away from adding an extra figure to their end of quarter total and I'm betting &lt;/span&gt;&lt;span style="border-collapse: collapse; "&gt;that now is the last time these low of prices will ever be seen - just my view point from being inside the castle.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse; "&gt;I'm not sure if you can imagine the ease and savings of virtualizing databases&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse; "&gt;&lt;p&gt;&lt;span&gt;1)&lt;span&gt;     &lt;/span&gt;&lt;/span&gt;Super fast provision – three clicks and a few minutes to stand up a fully functional, point-in-time 10g/11g database copy/clone&lt;/p&gt;&lt;p&gt;&lt;span&gt;2)&lt;span&gt;     &lt;/span&gt;&lt;/span&gt;Storage savings&lt;span&gt; &lt;/span&gt;- a new database copy basically only consists of some pointers and the space it takes for private redo and temp&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse; "&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Delphix doesn't require filesystem snashots or EMC or NetApps. It only requires x86 box with about the same amount of the disk space of the database you want to virtualize. The source database is copied onto the Delphix machine with RMAN calls, the data is compressed and  Delphix handles the snapshots and provisioning of virtual databases. Virtual database can be provisioned from the original source copy, or any incremental snapshot or if log shipping is used, then any SCN or date in between.  Then you can make as many copies as you want, with in reason, for almost free in terms of storage.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;If you are a departmental head and some extra budget that will be lost at year end  then Delphix is a good way to use that budget.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   &gt;For  these cut rate deals, everything has to be in by Friday at the absolute latest. For best info contact&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   &gt;&lt;a href="mailto:kaycee.lai@delphix.com" target="_blank"&gt;kaycee.lai@delphix.com&lt;/a&gt; and/or &lt;a href="mailto:garrett.stanton@delphix.com" target="_blank"&gt;garrett.stanton@&lt;wbr&gt;delphix.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"   &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   &gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="src" value="http://www.youtube.com/v/2B5jcZeNZko?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/2B5jcZeNZko?fs=1&amp;amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   &gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span   &gt;&lt;span style="border-collapse: collapse; "&gt;This idea is being harnessed by more and more companies across different industries - we've be implemented this at Shopping.com (part of ebay), Tivo (consumer tech), Corporate Express (retail), Tagged (social networking), Clearwire (telcom), KLA Tencor (hardware), Holland America (travel) .  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span   &gt;&lt;span style="border-collapse: collapse; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"   &gt;&lt;span style="border-collapse: collapse; "&gt;When I talk to customers who don't have development or QA copies of production &lt;/span&gt;I cringe&lt;span style="border-collapse: collapse; "&gt;. Usually developers work on subsets of production and often query performance on these subsets don't reflect the performance in production.  Even if production is a full copy of  development there is often just one copy shared by all the developers and QA.  Any change to this copy  has to go through  a number of hoops and signoffs which slows down the development process and de-motivates developers. I don't know if you can imagine having a copy per developer of production where each developer can make and test as many changes &lt;/span&gt;&lt;span style="border-collapse: collapse; "&gt; &lt;/span&gt;&lt;span style="border-collapse: collapse; "&gt; as fast as they want on an exact copy of production - it's awesome and inspires the developers. After the developers are confident of there modifications then they can submit the final change request for review.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span   &gt;&lt;span style="border-collapse: collapse; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span   &gt;&lt;span style="border-collapse: collapse; "&gt;Delphix makes all of this easy with no changes on production and creation of virtual databases just a few clicks of a mouse in GUI .&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"   &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-530225248302520435?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/530225248302520435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/delphix-deals-before-end-of-year.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/530225248302520435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/530225248302520435'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/delphix-deals-before-end-of-year.html' title='Delphix deals before the end of year'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6961093356655616730</id><published>2010-12-19T13:54:00.000-08:00</published><updated>2010-12-19T16:56:59.181-08:00</updated><title type='text'>New Oracle Monitor - what language would you use?</title><content type='html'>I don't consider myself a programmer and my exposure to  some of these languages is quite superficial, so please feel encouraged to jump into this discussion with your experiences, corrections and comments.&lt;div&gt;&lt;br /&gt;&lt;div&gt;What language and UI would you use to create an Oracle monitor? Why?&lt;/div&gt;&lt;div&gt;What are the pros and cons ? I want a tool to be&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;easy to install&lt;/li&gt;&lt;li&gt;quick to program&lt;/li&gt;&lt;li&gt;have interactive graphics&lt;/li&gt;&lt;li&gt;run fast&lt;/li&gt;&lt;li&gt;web enabled&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;These goals are hard, if not impossible, to achieve in the same product. A product's choice of programming language will be limited if interactive graphics are involved. I think graphics are the only way to make a tool easy to use and information easy to grasp but graphics definitely limits the coding options. A really nice option, and practically a commercial requirement is to run in a  web browser and running in a browser  even further limits the the  coding options and and the possibilities of achieving all the goals&lt;/div&gt;&lt;div&gt;What programming languages could be used? Some choices are&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;C&lt;/li&gt;&lt;li&gt;SQL*Plus&lt;/li&gt;&lt;li&gt;PL/SQL&lt;/li&gt;&lt;li&gt;perl&lt;/li&gt;&lt;li&gt;python&lt;/li&gt;&lt;li&gt;tcl/tk&lt;/li&gt;&lt;li&gt;ruby(on rails)&lt;/li&gt;&lt;li&gt;Java fat client&lt;/li&gt;&lt;li&gt;Java web app (with Flex)&lt;/li&gt;&lt;li&gt;Delphi&lt;/li&gt;&lt;li&gt;Visual Basic&lt;/li&gt;&lt;li&gt;Apex&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;And tangential languages&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;ksh(bash/sh/csh) with AWK&lt;/li&gt;&lt;li&gt;HTML5&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Here is a quick (5 minute off the cuff ) impression of the languages&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_fA5yrPv5jII/TQ6AExkIw6I/AAAAAAAAQRo/tSRfogs4APU/s1600/langs.png"&gt;&lt;img src="http://4.bp.blogspot.com/_fA5yrPv5jII/TQ6AExkIw6I/AAAAAAAAQRo/tSRfogs4APU/s400/langs.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5552516210107138978" style="cursor: pointer; width: 400px; height: 168px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Do they require an install? or can the be run immediately with simple executable?&lt;/div&gt;&lt;div&gt;Are interactive graphics possible (within reason)&lt;/div&gt;&lt;div&gt;Are they easy or difficult to program in?&lt;/div&gt;&lt;div&gt;Do they have cross platform support? (*nix, mac, win)&lt;/div&gt;&lt;div&gt;Are they web enabled?&lt;/div&gt;&lt;div&gt;Are the fast or are they memory (and CPU) hogs?&lt;/div&gt;&lt;div&gt;Do  you have to pay for the development platform?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Installation:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To have an absolutely brain dead install  would require the tool to be written in C, Delphi or VB as these are compiled into single executables. All the other languages, AFAIK, require the language interpreter or engine to be installed and generally require Oracle libraries to be there. Actually, C, Delphi and VB might require Oracle libraries as well, but at least for C, it seems like there would be a way to link a static executable.  Oracle is not required for most Java applications as they are generally shipped with a JDBC driver for Oracle, though it's just another file to scatter about on your file system as part of a complicated install. On the other hand Embarcadero has a neat option where everything, even in a java app, is packaged into one executable called an "instant on" executable, much more akin to running a self contained executable on UNIX via some  windows magic in the sauce.&lt;/div&gt;&lt;div&gt;The installs required by other products vary.  I'd say most are pretty easy, though how easy  depends largely on how the language environment is packaged along with the tool.  If the tool does no prepackaging and lets the user set up the required packages then installation can be a nightmare. A tool like ASHMON written in TCL/TK for examples  requires  graphing package, thread package, math extension and an Oracle connection package. I've packaged all these up into a single download which still requires the Oracle client libraries to be pre-installed. All and all it takes a good bit of upkeep to maintain the binaries of all packages on the platforms people might use and even upon installation it doesn't have single executable, but an execution shell that has to launch and find the scripts which depend upon directory locations and it has to find the Oracle install and tnsname.ora. It would be so awesome if I could just  make one executable with everything.  So installation for Perl, Python and ruby would be similar, AFAIK.  A java app is a bit better - one executable though it depends on java already being installed, and for APEX - I believe all sorts of stuff has to be installed and configured on an Oracle database and either installing a full Oracle database for the tool or requiring the target database to have APEX installed is a lot to ask for.&lt;/div&gt;&lt;div&gt; The software that is most likely to be installed is SQL*Plus but even SQL*Plus may not always be available on a customers laptop or desktop. My laptop did not have SQL*Plus until yesterday, almost 2 months after I started using the laptop. I was just using SSH and other tools. Yesterday I finally installed SQL*Plus to start working on a new performance monitoring tool. Why a new tool? I want a new tool that will give me performance data from customer's Oracle databases that I can review at a later point in time. I want a tool that the customer can run as quickly and easily as possible and that requires the least amount of user knowledge and interaction. Beyond the goal of collection performance data, I would also want the tool to give some immediate feedback on performance. Of course SQL*Plus should be the easiest thing to use. Maybe the laptop or desktop does not have SQL*Plus installed, but in the realm of Oracle performance, nothing should be more reasonable than expecting the customer to have SQL*Plus installed on the desktop/laptop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Graphics&lt;/div&gt;&lt;div&gt;AFAIK, the only reasonable interactive graphics options are Java Applications, Java in the web using FLEX (SGV was an option but is been shelved), TCL/TK, Ruby with RMagick, Visual Basic and Delphi. Not such luck for  SQL, PLSQL, Perl  or Python.&lt;/div&gt;&lt;div&gt;Apex may have some, but not sure how robust they are.&lt;/div&gt;&lt;div&gt;Java has gobs,  but how good they are, not so sure and how do you find the right one? Many are pay for and I'd like to first commit to Java before paying and I want to be sure the  package I'm buying is the best.  Ideally I'd rather not have to pay&lt;/div&gt;&lt;div&gt;TCL's BLT package has a quite good graphing library.&lt;/div&gt;&lt;div&gt;For graphs, there are lots of small but important options - auto resize, filled area stacking, log scales, mixing bars and lines, easily adding and deleting items from the graph, actions on graph contents triggered by mouse passing over or clicking, etc. Sure, graphing can be done in almost anything, but having a package to take care of all the minutia is the only kind really worth my time.  TCL's BTL graphs also use "vectors" or very efficient lists of numbers. I can act on these lists - divided two lists,  add to lists, multiply a list by a value  or modify points, add points, delete points and have the graph updated immediately.&lt;/div&gt;&lt;div&gt;Delphi and Visual Basic have graphic packages though, like JAVA, there are lots of options and many are pay for.&lt;/div&gt;&lt;div&gt;Ruby seems to have Rmagick. Not sure if there are other options.&lt;/div&gt;&lt;div&gt;Java web applications have Flex which requires Adobe's IDE.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Data Manipulation&lt;/div&gt;&lt;div&gt;SQL and PL/SQL of course are pretty simple - at least they provide the ability to collect and manipulate data  in a far more powerful and easy way than any other language. The con with SQL of course is it's not procedure. PLSQL is of course procedural but often leads to creating things in the database like global temporary tables, packages and procedures and creating things in the target database is a "no no" for me. I want to affect as little as possible the database I'm monitoring.  The best approach is to collect the data via SQL or even PLSQL  with as little manipulation and then manipulate the data on a local, not target database. I've done this in the past with AWK but it's tedious and brittle. Similarly I've manipulated the data in TCL and again, though clearer than AWK it's still quite tedious.  I've tried it in JAVA and  JAVA just gives me the hebee jebees - it might not be as tedious, but I just get the feeling that the data structures are inefficient, non-scalable, slow and memory intensive. Another maybe better alternative is using a locals database but this requires installing a databases which is a bit overkill at least if the database is Oracle. The solution to this is to use an embeddable database like HSQL, H2, SQLite  or firebird (is Derby embeddable?) For other languages we could also manipulate the data in local structures or objects but tacking aggregations, groupings, sums, averages, counts etc is just so tedious in code and so easy and effortless in a database. I assume it's pretty easy to embed a databases in almost all the languages except maybe C because then I'd assume we'd be loosing the advantage of having C be an easy to install executable, though maybe it's easy. &lt;/div&gt;&lt;div&gt;I started to play with SQLite and TCL a several years ago and though it may be simple it was certainly taking me more time than just interfacing TCL with a running Oracle database.&lt;/div&gt;&lt;div&gt;Beyond whether to use a database or not and how, there is the question of how productive is a coder in a language. The lower level the language the more tedious. For example C, though elegant and fast, is quite tedious.  At the other end is something like Delphi which is a piece of cake. Another aspect is just how heavy the language is. I find Java  heavy. The overhead to set up simple functionality feels simply crippling to me. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UI layout&lt;/div&gt;&lt;div&gt;Delphi is easy to layout UI.&lt;/div&gt;&lt;div&gt;TCL/TK is difficult.&lt;/div&gt;&lt;div&gt;I think Java is somewhere in between&lt;/div&gt;&lt;div&gt;For SQL  the only UI is just hacking with ASCII - generally not pretty.&lt;/div&gt;&lt;div&gt;Ruby - I don't know.&lt;/div&gt;&lt;div&gt;Flex - not sure either though I'd guess its good though no where near as easy as Delphi.&lt;/div&gt;&lt;div&gt;VB - I assume it's like Delphi.&lt;/div&gt;&lt;div&gt;Perl and Python - not much options unless they are married to something like TK.&lt;/div&gt;&lt;div&gt;Apex - don't know, I've head good things but it is Oracle and from what I've seen of APEX it's not a cakewalk, at least to get up and running and ready. Maybe when all the pieces are in place its straight forward.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Coding&lt;/div&gt;&lt;div&gt;Java IMO seems like crap - it's like "new money" , you know those LA mansions that are gaudy fake,  expensive and needlessly huge.&lt;/div&gt;&lt;div&gt;Perl is not pretty but at leasts it's efficient. You don't get any LA mansions in Perl. It's more like a souped up jalopy. It's sort of junky but it runs fast. &lt;/div&gt;&lt;div&gt;Python seems good to me.&lt;/div&gt;&lt;div&gt;Ruby seems like a cross between TCL and Python - seems nice - sort of zen, though I've only written a few lines.&lt;/div&gt;&lt;div&gt;TCL - little strange, but ok - might have been nice but it's been long forgotten.&lt;/div&gt;&lt;div&gt;Delphi uses a modified Pascal and what's easier than Pascal?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Performance&lt;/div&gt;&lt;div&gt;Java is a pig. &lt;/div&gt;&lt;div&gt;Flex is a pig.&lt;/div&gt;&lt;div&gt;OK, OK don't tell me that it's not the language its the programmer. I've never seen a C program take up 600Ms to collect a few K of data and I've never seen a Java program run under 50Ms. (more like 100M+)&lt;/div&gt;&lt;div&gt;Delphi is like 10M, runs fast. What's not to like? (pay for IDE and it's washed up, the UI looks like so 20 years ago)&lt;/div&gt;&lt;div&gt;C of course is lightning fast. &lt;/div&gt;&lt;div&gt;TCL seems fine, maybe at bit slow, but for the structures I care about like vectors and in graphs have been well optimized&lt;/div&gt;&lt;div&gt;Python seems fast.&lt;/div&gt;&lt;div&gt;Perl - I assume it's pretty fast. I tried to write a direct memory access program in Perl and it was slower than executing SQL but that's because the API attached and detached from the Oracle SGA for every bit of data I collected. I theoretically could have gone in and modified the  Perl API for shared memory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Web&lt;/div&gt;&lt;div&gt;Who works on the web for a GUI? Apex, Java with Flex, Ruby on Rails with Rmagick. Rmagick may or may not provide GUI interaction - I have yet to try it. I spent a couple hours last weekend trying to get it to work under Cygwin and eventually gave up and just installed it straight under windows, but have yet to play with it.&lt;/div&gt;&lt;div&gt;Java with Flex is probably the premier solution but it's fat and the IDE is payfor. &lt;/div&gt;&lt;div&gt;What about HTML5?&lt;/div&gt;&lt;div&gt;Is FLEX an option? maybe for an enterprise application but not for a desktop web enabled application as far as I can tell.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My Story&lt;/div&gt;&lt;div&gt;I've been thinking about this for years. I started programming TCL/TK graphics back in 1994.  The only other option before 2000 or so was Visual Basic and Delphi . I didn't hear of Delphi till about 2007 (!) and Visual Basic never seemed like an option since it was limited to Windows. The windows limitation seems much less important now days, but back then I only worked on UNIX and didn't have a laptop, so TCL/TK was the only option until around 2000 when Java became an option. In 2002 when I started working on OEM 10gR1. When I arrived at Oracle in 2002 to work on OEM, I had no idea it was web based and pure HTML. HTML ?! I had thought that I would be working on the 9i java fat client. The 9i java client was relatively good at least compared to OEM 7 and 8 and I thought with a little facelift the 9i client could be good. I could hardly believe the 10g OEM was HTML. Pure HTML ? No interactive graphics?! and this was the monitor that was suppose to performance shoot,  monitor and tune the some of  the most important production databases in the world? Are you kidding me? The "solution" back pre-10gR1 was to have use gifs for any graphics. Any change in the gifs causes not a partial page refresh but a full page refresh. and these gifs would only be updated occasionally. The refresh rate on the Oracle home page could be as much as an hour out of date. Wow. &lt;/div&gt;&lt;div&gt;Well we change things - got SVG in, got the refresh rate to be much faster, but OEM is still slow and the data collection has hardly improved in the last 6 years. So much more could be done with some small changes, for example adding the average wait times for different kind of IOs, harnessing the wait histograms better, high lighting some key statistics , trending, forecasting, showing the differences between selected periods clearly, adding more drill down and aggregation options on the ASH data and externalizing in a clear graphical way the new extended row course data in ASH. I had want to get Adobe Flash/Flex into OEM but Oracle was reluctant. The compromise was SVG. OEM does use Flex but I've heard that Flex is going to be ripped out in lieu of ADF, and what's even more twisted is ADF builds it's graphic components upon Flex. Strange.&lt;/div&gt;&lt;div&gt;In all cases OEM is slow and huge and slow to change. Java, whether it's in the middle tier or a Java application is  memory pig and generally slow. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Summary&lt;/div&gt;&lt;div&gt;&lt;div&gt;I want the tool to run fast which means using as little CPU and memory as possible.&lt;/div&gt;&lt;div&gt;I want a tool that's fast to install.&lt;/div&gt;&lt;div&gt;I want a tool that has interactive graphics.&lt;/div&gt;&lt;div&gt;I want a tool that is easy to create and program.&lt;/div&gt;&lt;div&gt;I want the tool to be web enabled.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For collection, the best sounds like using SQL*Plus with anonymous PLSQL - this could possibly be wrapped in C for a single collection executable.&lt;/div&gt;&lt;div&gt;For aggregation, anything works as long as it has a database.&lt;/div&gt;&lt;div&gt;For UI  Delphi sounds like the easiest to program *and* run (possibly VB - anyone know the pros and cons of VB verses Delphi?)&lt;/div&gt;&lt;div&gt;For web - it's either JAVA and FLEX and a memory pig and a pay for IDE or is RUBY on rails a possibility? Ruby has an Oracle , SQLite and UI packages. &lt;/div&gt;&lt;div&gt;What about HTML5 ? Too new? Does it have Oracle access? does it have an embeddable database? What graphic options does it have?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6961093356655616730?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6961093356655616730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/new-oracle-monitor-what-language-would.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6961093356655616730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6961093356655616730'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/new-oracle-monitor-what-language-would.html' title='New Oracle Monitor - what language would you use?'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fA5yrPv5jII/TQ6AExkIw6I/AAAAAAAAQRo/tSRfogs4APU/s72-c/langs.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6380852227196029779</id><published>2010-12-07T21:39:00.000-08:00</published><updated>2010-12-08T11:33:42.972-08:00</updated><title type='text'>Solaris AWK still broken after all these years</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fA5yrPv5jII/TP8cSLO8uxI/AAAAAAAAQRI/SNDUPO5By4k/s1600/awk.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 138px; height: 200px;" src="http://2.bp.blogspot.com/_fA5yrPv5jII/TP8cSLO8uxI/AAAAAAAAQRI/SNDUPO5By4k/s400/awk.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5548184364522453778" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fA5yrPv5jII/TP8cSLO8uxI/AAAAAAAAQRI/SNDUPO5By4k/s1600/awk.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;It's amazing how time flies. I've got the above book sitting on my desk at work. It's the only book on my desk at work. Its probably my favorite computer book for it's terse clear style and simple power.  I've keep it for about 20 years, and 20 years later, I'd expect any bugs in basic code examples to be worked out. For the most part on most platforms this is true, but not Solaris. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;AWK is an awesome utility always available on UNIX and makes a perfect tool to for scripts that will run anywhere with no need for dependencies nor if's, and's or but's. For that reason it's all the more dissapointing that the default awk on Solaris is broken for syntaxes that were valid over 20 years ago. On the default awk on Solaris the following are broken&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); line-height: 20px; "&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;awk -vVAR=value&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="line-height: 13px; "&gt;if ( $0 ~ "string" )&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;gsub , sub&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Probably the most useful thing to know is for point 1, passing in a shell variable, you can do it by setting a variable in the shell such as "VAR=10" and accessing it in the awk script with:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;VAR="'"$VAR"'"&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;Point 2, the if construct can be gotten around a bit less elegantly  with&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;pre&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;/string/   { ...&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Point 3,  gsub and sub are broken is just plain annoying and it takes writing your own routines with  index and substr.&lt;/div&gt;&lt;div&gt;Which was too bad for me. I wanted to write a script to eliminate more than 2 redo logs from database creation for "scratch" databases.  I don't know if you can imagine a create script like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;STARTUP NOMOUNT pfile='/mnt/provision/redo2a/datafile/initredo2a.ora.provision'&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;CREATE CONTROLFILE REUSE SET DATABASE "redo2a" RESETLOGS ARCHIVELOG&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;    MAXLOGFILES $MAXLOGFILES&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;    MAXLOGMEMBERS $MAXLOGMEMBERS&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;    MAXDATAFILES $MAXDATAFILES&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;    MAXINSTANCES $MAXINSTANCES&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;    MAXLOGHISTORY $MAXLOGHISTORY&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;LOGFILE&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;  GROUP 1(&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/redo01.log'&lt;span style="background-color: rgb(252, 229, 205); "&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span style="font-family: Arial, Verdana, sans-serif; font-weight: normal; font-style: italic; "&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span style="background-color: rgb(252, 229, 205); "&gt;&lt;span&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/redo01a.log'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); "&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;) SIZE 52428800,&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;GROUP 2(&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/redo02.log'&lt;span style="background-color: rgb(252, 229, 205); "&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span style="font-family: Arial, Verdana, sans-serif; font-weight: normal; font-style: italic; "&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span style="background-color: rgb(252, 229, 205); "&gt;&lt;span&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/redo02a.log'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); "&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;) SIZE 52428800&lt;span&gt;&lt;span style="background-color: rgb(252, 229, 205); "&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span&gt;&lt;span style="background-color: rgb(252, 229, 205); "&gt;GROUP 3(&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span&gt;&lt;span style="background-color: rgb(252, 229, 205); "&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/redo03.log'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;&lt;span&gt;&lt;span style="background-color: rgb(252, 229, 205); "&gt;) SIZE 52428800&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;DATAFILE&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;  '/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/system01.dbf',&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/undotbs01.dbf',&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/sysaux01.dbf',&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/users01.dbf',&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;'/mnt/provision/redo2a/datafile/opt/oracle/oradata/homer/t1.dbf'&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;$CHARACTER_SET&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-style: italic; font-size: 13px; line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style="font-style: normal; "&gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size: 13px; line-height: 20px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;I just wanted 2 redo logs and one member for group, so I wanted to pull out all that's highlighted in orange. Simple with AWK:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-size: 13px; font-style: italic; line-height: 13px; "&gt;&lt;pre&gt;cat ${MNTDIR}/doCreateControlFile.sh | \&lt;br /&gt;awk -vNREDO="$NREDO" '&lt;br /&gt;BEGIN {&lt;br /&gt; output="on"&lt;br /&gt; members="off"&lt;br /&gt; nlogs=0&lt;br /&gt; last="no"&lt;br /&gt;}&lt;br /&gt;{&lt;br /&gt;# members&lt;br /&gt;if ( $0 ~ "GROUP"     ) { members="on" ; nlogs=0}&lt;br /&gt;# output&lt;br /&gt;if ( $0 ~ NREDO       ) { last="yes" }&lt;br /&gt;if ( $0 ~ "DATAFILE"  ) { output="on"  }&lt;br /&gt;if ( $0 ~ "SIZE"      ) { members="off" ; nlogs=0}&lt;br /&gt;if ( output == "on"   ) {&lt;br /&gt;   nlogs++&lt;br /&gt;       gsub(/,/,"")&lt;br /&gt; }&lt;br /&gt; if ( nlogs &lt; last ="=" last = "no" output="off"&gt; /tmp/redo2.$$&lt;/pre&gt;&lt;/div&gt;&lt;div style="color: rgb(68, 68, 68); font-family: Arial, Verdana, sans-serif; font-size: 13px; font-style: italic; line-height: 13px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The script works on AIX, HPUX, Redhat but not on Solaris.  For Solaris I had a few choices. I could try and use nawk or gawk which would require me using some sort of "ifdef" and even then using nawk would require some changes. AFAIK gawk would have to be installed on the machines, thus ruling it out. For me, I wanted the safest option. The safest option for me was just to re-write the code in a way that worked around the bugs on Solaris default awk.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre&gt;cat ${MNTDIR}/doCreateControlFile.sh | \&lt;br /&gt;awk  '&lt;br /&gt;BEGIN {&lt;br /&gt;output="on"&lt;br /&gt;members="off"&lt;br /&gt;nlogs=0&lt;br /&gt;last="no"&lt;br /&gt;size="no"&lt;br /&gt;NREDO="'"$NREDO"'"&lt;br /&gt;}&lt;br /&gt;/DATAFILE/               { output="on"  } # turn output back on&lt;br /&gt;/SIZE/                   { members="off" ; nlogs=0; size="yes"}  # end of group members&lt;br /&gt;/GROUP/                  { members="on"  ; nlogs=-1 }  # start counting group members&lt;br /&gt;{ if ( index($0,NREDO) )   last="yes"    } # reach the maximum  of redo logs to recreate&lt;br /&gt;{&lt;br /&gt;if ( output == "on"   ) {&lt;br /&gt;str=$0&lt;br /&gt;if ( members == "on"  ) { # we are in the log member section&lt;br /&gt;   nlogs++             # count members&lt;br /&gt;   i=index(str,",");   # get rid of comma at end of line&lt;br /&gt;   if ( i &gt; 0 ) {&lt;br /&gt;       str=substr(str,0,i-1)&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;if ( nlogs &lt; size ="=" last ="=" str="$0" i="index(str,"&gt; 0 ) {&lt;br /&gt;                str=substr(str,0,i-1)&lt;br /&gt;            }&lt;br /&gt;            last = "no"&lt;br /&gt;            output="off"   # we reach max # of redo logs, turn output off till we see DATAFILE&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;      print str&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;{ size = "no" }&lt;br /&gt;'  &gt; /tmp/redo2.$$&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6380852227196029779?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6380852227196029779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/solaris-awk-still-broken-after-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6380852227196029779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6380852227196029779'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/solaris-awk-still-broken-after-all.html' title='Solaris AWK still broken after all these years'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fA5yrPv5jII/TP8cSLO8uxI/AAAAAAAAQRI/SNDUPO5By4k/s72-c/awk.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-2327591661007760731</id><published>2010-12-02T14:38:00.000-08:00</published><updated>2010-12-03T10:00:50.596-08:00</updated><title type='text'>Job Openings for Oracle experts</title><content type='html'>&lt;div&gt;You know it's a good company when the support desk looks like this:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm6.static.flickr.com/5247/5227029555_493b1d3413_b.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 266px;" src="http://farm6.static.flickr.com/5247/5227029555_493b1d3413_b.jpg" border="0" alt="" /&gt;&lt;/a&gt; &lt;a href="http://farm6.static.flickr.com/5081/5227624832_d91de9bdcb_b.jpg"&gt;&lt;img src="http://farm6.static.flickr.com/5081/5227624832_d91de9bdcb_b.jpg" border="0" alt="" style="cursor: pointer; width: 200px; height: 266px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.delphix.com/"&gt;Delphix&lt;/a&gt;, the company I've been at for the past month, is hiring! We are interested primarily in Oracle expertise centered around backup and recovery, rman, dataguard and ASM. &lt;/div&gt;&lt;div&gt;Big plus for  solid knowledge of NFS, storage systems, zfs and networking with an eye for performance tuning.&lt;/div&gt;&lt;div&gt;We are looking for sales consultants, support, engineers and QA.&lt;/div&gt;&lt;div&gt;I'm super happy with this new position - small company where everyone makes an impact and the people are super smart, motivated and experienced.&lt;/div&gt;&lt;div&gt;We've got an amazing team from the the creators of Dtrace and zfs to principle players in the development of Oracle RAC, cache fusion and dataguard to the founder of Avamar and the marketing VP who took VMware public. Come join us ! &lt;/div&gt;&lt;div&gt;If interested, contact me at kyle.hailey @ delphix dot com.&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;div&gt;Delphix turns physical database infrastructure into software that can run in a fraction of the space, automating some of the most challenging and time consuming operations in the datacenter: refreshing and provisioning of databases. With our database virtualization software, enterprises can reduce complex provisioning tasks from 10 days to 10 seconds and shrink 10 TB into 1 TB.&lt;/div&gt;&lt;div&gt;Enterprises typically create multiple copies of production databases for development, testing, QA, staging, UAT, pilots, training, operational reporting, etc. By linking with production databases via standard APIs, Delphix enables the benefits of consolidation and virtualization for all supporting database infrastructure—with no need to make changes to production systems. As a result, an investment in Delphix can generate a high-impact ROI with very low risk.&lt;/div&gt;&lt;div&gt;The team at Delphix has been responsible for developing products that have generated billions in annual revenue, including Oracle RAC, used in more than 20% of Oracle deployments, and EMC Avamar, the solution that pioneered data de-duplication, one of the fastest growing technologies in datacenters today. Our board of directors includes founding board members for Oracle, Business Objects, Informatica, Riverbed, Brocade, and Avamar.  One of our lead investors was the co-founding chairman of Oracle, founding chairman of Business Object and founding chairman of Informatica.  Our Advisory board has a number of recognized industry icons including the original WW VP’S of Field ops from Oracle and VMware.  I We are head quartered in Palo Alto.  Delphix will be hard to beat in terms of working on very interesting technology, a great business, and the ability to grow both your career and technical ability.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-2327591661007760731?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/2327591661007760731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/job-openings-for-oracle-experts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2327591661007760731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2327591661007760731'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/12/job-openings-for-oracle-experts.html' title='Job Openings for Oracle experts'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm6.static.flickr.com/5247/5227029555_493b1d3413_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7836508378410149585</id><published>2010-11-23T12:58:00.001-08:00</published><updated>2010-11-23T15:06:37.826-08:00</updated><title type='text'>NFS and IO testing : Bonnie++</title><content type='html'>&lt;div&gt;Been spending time lately testing out and trying to tune NFS mounts.&lt;/div&gt;&lt;div&gt;For testing IO, I've been using&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;dd&lt;/li&gt;&lt;li&gt;iozone&lt;/li&gt;&lt;li&gt;bonnie++&lt;/li&gt;&lt;li&gt;orion&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;This first option, &lt;b&gt;dd&lt;/b&gt;, is fine for file creation tests and/or sequential reads but less flexible for random reads or random writes&lt;/div&gt;&lt;div&gt;To test random reads I thought I'd use &lt;b&gt;iozone &lt;/b&gt;but don't see a solely random read test.&lt;/div&gt;&lt;div&gt;Then I thought I'd use the Oracle supplied tool, &lt;b&gt;orion&lt;/b&gt;, to do random read test on an NFS mounted file system, but this doesn't work, at least on AIX 6.1, with my mount settings. &lt;/div&gt;&lt;div&gt;First orion test gave this error&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;$  orion -run simple -testname orion&lt;/div&gt;&lt;div&gt;ORION: ORacle IO Numbers -- Version 11.1.0.7.0&lt;/div&gt;&lt;div&gt;orion_20101123_1503&lt;/div&gt;&lt;div&gt;rwbase_read_luncfg: SlfFopen error on orion.lun&lt;/div&gt;&lt;div&gt;orion_parse_args: rwbase_read_luncfg failed&lt;/div&gt;&lt;/blockquote&gt;OK, have to create "orion.lun" with either my lun locations or my file locations. I put in file locations:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt; $ cat orion.lun&lt;/div&gt;&lt;div&gt;&lt;div&gt;/tmp/system01.dbf&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;Now get another error&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ orion -run simple -testname orion&lt;/div&gt;&lt;div&gt;ORION: ORacle IO Numbers -- Version 11.1.0.7.0&lt;/div&gt;&lt;div&gt;orion_20101123_1508&lt;/div&gt;&lt;div&gt;Test will take approximately 9 minutes&lt;/div&gt;&lt;div&gt;Larger caches may take longer&lt;/div&gt;&lt;div&gt;orion_spawn: skgpspawn failed: Error category: 27155, Detail: 2&lt;/div&gt;&lt;div&gt;orion_main: orion_spawn failed&lt;/div&gt;&lt;div&gt;Non test error occurred&lt;/div&gt;&lt;div&gt;Orion exiting&lt;/div&gt;&lt;div&gt;Illegal instruction(coredump)&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Looks like the "orion" executable wasn't being found, at least not by execve&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ truss -f orion -run simple -testname orion &lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;700502: execve("orion", 0x0FFFFFFFFFFBF2D0, 0x0FFFFFFFFFFFFB30) Err#2  ENOENT&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;so I ran it from my bin directory where the orion executable could be found. Now get another error&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ orion -run simple -testname orion&lt;/div&gt;&lt;div&gt;ORION: ORacle IO Numbers -- Version 11.1.0.7.0&lt;/div&gt;&lt;div&gt;orion_20101123_1510&lt;/div&gt;&lt;div&gt;Test will take approximately 9 minutes&lt;/div&gt;&lt;div&gt;Larger caches may take longer&lt;/div&gt;&lt;div&gt;storax_skgfr_openfiles: File identification failed on /kyle/system01.dbf&lt;/div&gt;&lt;div&gt;OER 27054: please look up error in Oracle documentation&lt;/div&gt;&lt;div&gt;Additional information: 6&lt;/div&gt;&lt;div&gt;rwbase_lio_init_luns: lun_openvols failed&lt;/div&gt;&lt;div&gt;rwbase_rwluns: rwbase_lio_init_luns failed&lt;/div&gt;&lt;div&gt;orion_thread_main: rw_luns failed&lt;/div&gt;&lt;div&gt;Non test error occurred&lt;/div&gt;&lt;div&gt;Orion exiting&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;If the datafile was on "/tmp" it word fine but if it was on my NFS mount it failed with the above error.  Hmm - doesn't work over NFS?&lt;/div&gt;&lt;div&gt;Finally I decided to try &lt;b&gt;bonnie++&lt;/b&gt;. I download, unziped, tar extracted &lt;b&gt;bonnie++&lt;/b&gt; , ran "./configure" and then make, but got error&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ make&lt;/div&gt;&lt;div&gt;make: 1254-002 Cannot find a rule to create target bon_io.o from dependencies.&lt;/div&gt;&lt;div&gt;Stop.&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;For some reason the rule for the ".o" doesn't seem to work:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;%.o: %.cpp %.h bonnie.h port.h&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;        $(CXX) -c $&amp;lt&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Not feeling like trying to figure make out I just did it by hand&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, sans-serif; font-size: 13px; color: rgb(68, 68, 68); line-height: 20px; "&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;$ for i in *cpp; do&lt;/div&gt;&lt;div&gt;        name=`echo $i | sed -e 's/.cpp//'`&lt;/div&gt;&lt;div&gt;        echo "g++ -c $name.cpp $name.h  bonnie.h port.h"&lt;/div&gt;&lt;div&gt;  done &gt; makeo&lt;/div&gt;&lt;/div&gt;&lt;div&gt;$ sh makeo&lt;/div&gt;&lt;div&gt;$ make&lt;/div&gt;&lt;/blockquote&gt;&lt;/span&gt;That worked. Test results coming&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7836508378410149585?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7836508378410149585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/11/nfs-and-io-testing-bonnie.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7836508378410149585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7836508378410149585'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/11/nfs-and-io-testing-bonnie.html' title='NFS and IO testing : Bonnie++'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-2692785203054295158</id><published>2010-11-11T12:05:00.000-08:00</published><updated>2010-11-11T12:10:49.128-08:00</updated><title type='text'>Virtual Conference on Oracle Performance!</title><content type='html'>&lt;div&gt;Check this out ( from &lt;a href="http://tech.e2sn.com/virtual-conferences"&gt;http://tech.e2sn.com/virtual-conferences &lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The E2SN Virtual Conferences are webinar-style online training sessions, but just like at conferences, you can listen to multiple top speakers within a single event.&lt;/div&gt;&lt;div&gt;The standard conference consists of 4 x 1.5 hour presentations with 30-minute Q &amp;amp; A sessions after each presentation. The four sessions are spread across two days, so the conference takes only four hours per day. So, in addition to not even having to leave your desk for learning from world's top experts, you can still get your important work done in the office, too!&lt;/div&gt;&lt;div&gt;The first scheduled virtual conference is focusing on a walk-through on Systematic Oracle SQL Optimization, with emphasis on practical applications and real-life scenarios.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, sans-serif; font-size: 13px; "&gt;&lt;h3&gt;Systematic Oracle SQL Optimization virtual conference:&lt;/h3&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The speakers are: &lt;b&gt;Cary Millsap&lt;/b&gt;, &lt;b&gt;Jonathan Lewis&lt;/b&gt;, &lt;b&gt;Kerry Osborne&lt;/b&gt; and &lt;b&gt;Tanel Poder&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;The conference takes place on &lt;b&gt;18. and 19. November&lt;/b&gt; ( 2 x 0.5 days )&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The time of the conference sessions is: &lt;b&gt;08:00am - 12:00pm Pacific Standard Time&lt;/b&gt; (PST) on both days&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For this inaugural event we have a special launch price of &lt;b&gt;&lt;span &gt;475 USD&lt;/span&gt;&lt;/b&gt; per attendee!&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large; "&gt;Click here for &lt;/span&gt;&lt;/b&gt;&lt;a href="http://tech.e2sn.com/virtual-conferences/systematic-oracle-sql-optimization-in-real-life" style="color: rgb(78, 125, 191); "&gt;&lt;b&gt;&lt;span style="font-size: large; "&gt;agenda, abstract and registration....&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-2692785203054295158?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/2692785203054295158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/11/virtual-conference-on-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2692785203054295158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2692785203054295158'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/11/virtual-conference-on-oracle.html' title='Virtual Conference on Oracle Performance!'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3619285376497369625</id><published>2010-10-27T12:01:00.000-07:00</published><updated>2010-10-28T22:25:57.417-07:00</updated><title type='text'>SVG and OEM on windows 64 bit</title><content type='html'>&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Anyone try to use OEM from a windows 64bit machine? Looks like there is no SVG install for windows 64bit so the charts on the performance pages are all just gifs. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Seems surprising but alas with Oracle and their dealings with UI, its not that surprising.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I wanted Oracle to use flash in OEM 10g but that got nixed. I was glad to have SVG  in OEM 10g rather than nothing, but SVG has been EOLed and so unless Oracle does something then there will be more and more cases where OEMs SVG components don't work in browsers as OS's advance.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;On a good note though, in 11g I was happy to see some FLEX components but word has it that these will be pulled - hmpf!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I'm happy to see that my current company, Delphix, is using FLEX (not that FLEX is the only way to go but it's a nice way, at least until HTML5) . Here's an example of Delphix's interface&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 class="UIIntentionalStory_Message" ft="{&amp;quot;type&amp;quot;:&amp;quot;msg&amp;quot;}" style="color: rgb(51, 51, 51); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: normal; border-collapse: separate; "&gt;&lt;span class="UIStory_Message"&gt;&lt;span style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.delphix.com/resources.php?tab=product-demo" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.delphix.com/resources.php?tab&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.delphix.com/resources.php?tab=product-demo" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;wbr&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="word_break" style="display: block; float: left; margin-left: -10px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.delphix.com/resources.php?tab=product-demo" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;=product-demo&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="UIIntentionalStory_Message" ft="{&amp;quot;type&amp;quot;:&amp;quot;msg&amp;quot;}" style="color: rgb(51, 51, 51); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: normal; border-collapse: separate; "&gt;&lt;span class="UIStory_Message"&gt;&lt;span class="Apple-style-span" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;After working at Oracle for 13 years , UI seemed to be some of the worst in the valley often harking back to web pages from 1992, it's nice to be at  Delphix, a company that seems to appreciate UI and aesthetics. I never understood why Oracle's UI wasn't better since  Larry was such good friends with Steve Jobs. Steve Jobs and Apple are so good at look and feel. I figured Steve Jobs would have influenced Larry and Oracle to have great UI,  but alas there has never been any indication of that other than the fun demos Larry and Steve use to do around Oracle and the NEXT machine back in the day.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3619285376497369625?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3619285376497369625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/10/svg-and-oem-on-windows-64-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3619285376497369625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3619285376497369625'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/10/svg-and-oem-on-windows-64-bit.html' title='SVG and OEM on windows 64 bit'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6461430659339981530</id><published>2010-10-26T14:47:00.001-07:00</published><updated>2010-10-27T11:54:21.486-07:00</updated><title type='text'>ASHMON on 64bit Oracle 11gR2</title><content type='html'>&lt;div&gt;It's been years since I've changed any ASHMON code  though I have used ASHMON whenever I didn't have access to DB Optimizer or when I wanted to specifically access v$active_session_history graphically.  Yesterday, though,  I just got a new laptop that is 64bit and I couldn't get ASHMON to run! So after only sleeping 4 hours last night I finally got it to run. (a lot of time was just getting Oracle to install which is a separate story - suffice it to say the 11gR2 full database download installed where as the 11gR2 client gave an error that main wasn't found).&lt;/div&gt;&lt;div&gt;The fix to make ASHMON run on 64 bit turns out to be pretty easy. To make ASHMON run on 64bit requires two 32bit  dlls as well as forcing TNS_ADMIN to the directory with the tnsnames.ora (unfortunately oratcl doesn't seem to accept explicit database addresses , ie name:port:sid, that could bypass the tnsnames.ora) ASHMON for some reason wasn't picking up the tnsnames.ora in the Oracle 11gR2 directory.  I could have forced ASHMON to use the Oracle 11 tnsnames.ora  with TNS_ADMIN but figured it was easier to just point ASHMON to a tnsnames in the ASHMON install with TNS_ADMIN. You can edit ashmon/funcs/begin.tcl to change TNS_ADMIN to point to a different tnsnames.ora.&lt;/div&gt;&lt;div&gt;I have now made a new compressed file of ASHMON including the two dlls, oci.dll and oraocius10.dll, as well as changing  the variables ORACLE_HOME and TNS_NAMES to point to ./ashmon and ./ashmon/network/admin respectively.&lt;/div&gt;&lt;div&gt;Here is the new "rar" file (I don't have gzip on my new laptop so just downloaded rar)&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/ftp/ashmon_2010_10_22_64bit.rar"&gt;http://www.perfvision.com/ftp/ashmon_2010_10_22_64bit.rar&lt;/a&gt;&lt;/div&gt;&lt;div&gt;This version of ASHMON should run on any windows box within reason. The only "gotcha" is that you have to edit the tnsnames.ora file in the ./ashmon/network/admin to add your targets.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6461430659339981530?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6461430659339981530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/10/ashmon-on-64bit-oracle-11gr2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6461430659339981530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6461430659339981530'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/10/ashmon-on-64bit-oracle-11gr2.html' title='ASHMON on 64bit Oracle 11gR2'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-9083665421035431709</id><published>2010-09-29T18:43:00.000-07:00</published><updated>2010-09-30T05:39:52.416-07:00</updated><title type='text'>Oracle on VMware webinar tomorrow (Sept 30)</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Tomorrow I'm on an Embarcadero hosted webinar about the pros and cons of hosting Oracle on VMware. If interested the link is at&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;a href="http://www.embarcadero.com/oracle-database-performance-licensing-dynamics-in-a-virtualized-environment" target="_blank" style="color: rgb(0, 0, 204); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.embarcadero.com/&lt;wbr&gt;oracle-database-performance-&lt;wbr&gt;licensing-dynamics-in-a-&lt;wbr&gt;virtualized-environment&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;It's an interactive Q&amp;amp;A webinar with Dave Welch the main guy at VMware's booth at Oracle Open World last week. Dave is pro VMware as one might imagine.&lt;br /&gt;If you have any burning questions about VMware and Oracle and/or  positive/negative experiences with Oracle on VMware, drop me a line and I'll try and get your content, questions and feedback into the webinar. (during the webinar questions can be posted in the online chat)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The current list of questions center around performance overhead on VMware, Oracle's attitude toward supporting VMware, whether RAC is appropriate and/or supported on VMware and how VMware compares to Oracle's VM server.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-9083665421035431709?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/9083665421035431709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-on-vmware-webinar-tomorrow-sept.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/9083665421035431709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/9083665421035431709'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-on-vmware-webinar-tomorrow-sept.html' title='Oracle on VMware webinar tomorrow (Sept 30)'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-1064784939221473404</id><published>2010-09-23T09:37:00.001-07:00</published><updated>2010-09-24T11:45:04.519-07:00</updated><title type='text'>Oracle  Closed World Presentations Downloads</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: medium; "&gt;Presentations from Oracle Closed World will be posted to&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/ftp/OCW/"&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.perfvision.com/ftp/OCW/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Links to scripts from Tanel Poder's presentations at&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;a href="http://blog.tanelpoder.com/2010/09/20/oracle-closed-world-presentation-links/" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://blog.tanelpoder.com&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;a href="http://blog.tanelpoder.com/2010/09/20/oracle-closed-world-presentation-links/" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;wbr&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="word_break" style="display: block; float: left; margin-left: -10px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;a href="http://blog.tanelpoder.com/2010/09/20/oracle-closed-world-presentation-links/" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;/2010/09/20/oracle-closed-&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;a href="http://blog.tanelpoder.com/2010/09/20/oracle-closed-world-presentation-links/" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;wbr&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="word_break" style="display: block; float: left; margin-left: -10px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;a href="http://blog.tanelpoder.com/2010/09/20/oracle-closed-world-presentation-links/" rel="nofollow" target="_blank" style="cursor: pointer; color: rgb(59, 89, 152); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;world-presentation-links/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Some photos from OCW 2010&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;a href="http://www.flickr.com/photos/kylehailey/sets/72157625018583630/"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.flickr.com/photos/kylehailey/sets/72157625018583630/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Thanks all to an awesome Oracle Closed World and the Oaktable, Miracle Consulting and Embarcadero for sponsoring this event.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;PS stay tuned for the 10 important database ideas black paper that we will be putting together from Oracle Closed World. (if you would like to contribute please email me kyle.hailey@embarcadero.com)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;&lt;img src="http://farm5.static.flickr.com/4103/5020387449_ebc59a3c4e.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Kerry, Karl, Kyle&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Link to a few more OCW 2010 photos from Karl : &lt;a href="http://www.flickr.com/photos/kylehailey/sets/72157625025196338/"&gt;http://www.flickr.com/photos/kylehailey/sets/72157625025196338/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-1064784939221473404?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/1064784939221473404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-presentations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1064784939221473404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1064784939221473404'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-presentations.html' title='Oracle  Closed World Presentations Downloads'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4103/5020387449_ebc59a3c4e_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-4415072433183491240</id><published>2010-09-22T13:56:00.000-07:00</published><updated>2010-09-29T08:29:11.619-07:00</updated><title type='text'>DB Optimizer vs OEM</title><content type='html'>&lt;div&gt;Oracle OEM is slower, more complicated and it  if it breaks, which has plenty, it’s super hard to fix.&lt;/div&gt;&lt;div&gt;OEM has nothing like visual sql  tuning diagrams. If OEM can’t tune a query they you are at a dead end street with no way out. With DBO you’ve got the VST diagrams which explain tons about what is going on with the query&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=EoDnR02S2WA"&gt;http://www.youtube.com/watch?v=EoDnR02S2WA&lt;/a&gt; - VST demo from webinar with Jonathan Lewis&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/09/db-optimizer-251-released.html"&gt;http://db-optimizer.blogspot.com/2010/09/db-optimizer-251-released.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/09/sql-tuning-best-practice-visualizing.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://db-optimizer.blogspot.com/2010/09/sql-tuning-best-practice-visualizing.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/07/product-design.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://db-optimizer.blogspot.com/2010/07/product-design.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;There is no load testing or SQL IDE in OEM&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/07/14-minute-video-overview-of-db.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://db-optimizer.blogspot.com/2010/07/14-minute-video-overview-of-db.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;OEM’s SQL Tuining Advisor (STA) has a solid history of not being able to tune queries or worse still “tuning” the query and making it run slower&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-how-well-does.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-how-well-does.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-2.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-2.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-3.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-3.html&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-4415072433183491240?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/4415072433183491240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/db-optimizer-vs-oem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4415072433183491240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4415072433183491240'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/db-optimizer-vs-oem.html' title='DB Optimizer vs OEM'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-4676472210554080108</id><published>2010-09-22T10:10:00.001-07:00</published><updated>2010-09-22T10:17:20.319-07:00</updated><title type='text'>Oracle Closed World: last minute additions Exadata any MySQL talks</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;We've just added talks on Exadata and MySQL starting at 1:15-2pm today.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;In summary&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;1:15-2pm Exadata and MySQL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;2pm Gwen Shapira on &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;webscale, /dev/null &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;a href="http://www.pythian.com/news/author/shapira/" style="color: rgb(51, 102, 153); "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.pythian.com/news/author/shapira/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;3pm Kevin Closson &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; on SMT and Flash (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://kevinclosson.wordpress.com/" style="color: rgb(51, 102, 153); "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://kevinclosson.wordpress.com/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Beer served the whole time and lunch around 2:30&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 13px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Oracle Closed World 1-4 Thirsty Bear, Sept 22, 2010, directions &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;a href="http://tinyurl.com/2dzjkh5" style="color: rgb(51, 102, 153); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://tinyurl.com/2dzjkh5&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-4676472210554080108?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/4676472210554080108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-last-minute.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4676472210554080108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4676472210554080108'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-last-minute.html' title='Oracle Closed World: last minute additions Exadata any MySQL talks'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6376986930604864240</id><published>2010-09-21T18:06:00.000-07:00</published><updated>2010-09-21T21:18:44.342-07:00</updated><title type='text'>Oracle Closed World: last day with Kevin Closson as well as Gwen Shapira</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 16px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Rest assured, Kevin has left his bow and arrow at home this time. We are working on a hands on presentation complete with hunting tutorial for next year!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Wednesday Sept 21 1-4pm will be the last day of Oracle Closed World 2010&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Highlights of the last day will be&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;3PM - 4PM Keynote Speaker Kevin Closson will present on SMT and Flash (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://kevinclosson.wordpress.com/"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://kevinclosson.wordpress.com/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;as well as Gwen Shapira (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.pythian.com/news/author/shapira/"&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://www.pythian.com/news/author/shapira/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; who will be talking &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;convincingly about &lt;/span&gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;webscale, /dev/null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;direction to Oracle Closed World at the Thirsty Bear:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(51, 51, 51); line-height: 16px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;a href="http://tinyurl.com/2dzjkh5" style="color: rgb(51, 102, 153); "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;http://tinyurl.com/2dzjkh5&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 16px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Beer, Brains and Mayhem&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6376986930604864240?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6376986930604864240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-last-day-with-kevin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6376986930604864240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6376986930604864240'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-last-day-with-kevin.html' title='Oracle Closed World: last day with Kevin Closson as well as Gwen Shapira'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3140407150068058160</id><published>2010-09-20T21:03:00.000-07:00</published><updated>2010-09-20T21:10:27.978-07:00</updated><title type='text'>Oracle Closed World 1:30-2:30 Sept 20, 2010 I'll be speaking</title><content type='html'>&lt;div&gt;I'll be speaking tomorrow at Oracle Closed World 1:30-2:30 at the Thirsty Bear, Sept 21, 2010&lt;/div&gt;&lt;div&gt;&lt;a href="http://tinyurl.com/2dzjkh5"&gt; &lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;a href="http://tinyurl.com/2dzjkh5"&gt;http://tinyurl.com/2dzjkh5&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; border-collapse: collapse; "&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 18px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Database Performance Made Easy Through Graphics&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 16px; "&gt;Average Active Sessions (AAS) Formulas, Interpreting Load Charts and Visual SQL Tuning (VST)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Kyle begins his presentation with a discussion of the use of sample data to create Active Sessions History (ASH). But ASH is dense, multidimensional data, which makes it difficult to analyze. Fortunately, ASH can be simplified using a metric called Average Active Sessions (AAS). AAS  shows the load on the database and allows  you to drill down with precision and clarity into the cause of each bottleneck.  &lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Most often, bottlenecks are caused by poor-performing SQL statements. For analyzing suboptimal SQL statements, Kyle will show you how to lay out the query graphically in a Visual SQL Tuning (VST) diagram. Through the VST, you’ll learn how to quickly visualize any coding errors in the query, discover flaws in the underlying database schema, and most importantly, find the best execution path through the query.&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3140407150068058160?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3140407150068058160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-130-230-sept-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3140407150068058160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3140407150068058160'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-130-230-sept-20.html' title='Oracle Closed World 1:30-2:30 Sept 20, 2010 I&apos;ll be speaking'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7699975406062881924</id><published>2010-09-20T13:35:00.000-07:00</published><updated>2010-09-20T13:38:36.561-07:00</updated><title type='text'>Oracle Closed World : Lots of hacking and undocumented stuff! , 30 minutes and counting !</title><content type='html'>Tanel Poder, world expert on Oracle performance tuning and internals will be speaking live from Oracle Closed World on "&lt;span class="Apple-style-span" style="font-family: arial, verdana, helvetica; font-size: 30px; font-weight: bold; line-height: 30px; "&gt;Lots of hacking and undocumented stuff!"&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial, verdana, helvetica;font-size:7;"&gt;&lt;span class="Apple-style-span" style="font-size: 30px; line-height: 30px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-weight: normal; line-height: normal; font-size: 16px; "&gt;Find out how to do things like trace a sql statement only across all sessions in the database. The presentation will be offered live by podcast if you  are unable to join in person at the Thirsty Bear in San Francico.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, sans-serif; font-size: 13px; "&gt;&lt;h3 xmlns="http://www.w3.org/1999/xhtml" id="sites-page-title-header" align="left" style="font-size: 22px; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); padding-top: 3px; padding-right: 10px; padding-bottom: 3px; padding-left: 10px; "&gt;&lt;span id="sites-page-title" dir="ltr"&gt;Secret Oracle Closed World Presentation&lt;/span&gt;&lt;/h3&gt;&lt;div id="sites-canvas-main" class="sites-canvas-main" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); min-height: 150px; padding-bottom: 5px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div id="sites-canvas-main-content"&gt;&lt;table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox" style="width: 919px; table-layout: fixed; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="sites-layout-tile sites-tile-name-content-1" style="vertical-align: top; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; "&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: arial, sans-serif; "&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="708" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center" valign="top" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td height="18" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="20" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;img height="1" src="http://img.gotomeeting.com/g2mimages/1x1.gif" width="20" /&gt;&lt;/td&gt;&lt;td width="668" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center" valign="top" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;img height="200" src="http://www1.gotomeeting.com/g2w/images/110594065/92110756931700585//embed.jpg" width="268" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="30" style="vertical-align: top; text-align: center; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;Mogens (left) and Tanel (right) working on the&lt;br /&gt;Oracle Closed World webinar broadcast&lt;br /&gt;masterplan (it was very hard work)&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 30px; font-weight: bold; line-height: 30px; font-family:arial,verdana,helvetica;color:#000000;"&gt;Lots of hacking and undocumented stuff!&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="15" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="100%" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; width: 688px; height: 16px; "&gt;&lt;span style="font-size: 14px; font-weight: bold; font-family:arial,verdana,helvetica;color:#0077dd;"&gt;Join us for a Webinar on September 20 2-3pm PST&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; width: 688px; height: 20px; "&gt;&lt;span style="font-family: arial, verdana, helvetica; "&gt;&lt;br /&gt;&lt;span style="font-family: arial, sans-serif; "&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;This session doesn't have any slides, but Tanel will show you lots of (undocumented) ways to hack Oracle instead. Some of this stuff may even be useful, but some is just fun ;-) Topics will range from how to read systemstate dumps, how to perform in-memory conditional tracing and how to trace a single SQL etc as time permits!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="20" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="32" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;&lt;b&gt;Title:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td width="5" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-family:arial;font-size:78%;"&gt; &lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;&lt;span style="font-style: italic; "&gt;Lots of hacking and undocumented stuff!&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="3" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;&lt;b&gt;Date:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;Monday, September 20, 2010&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="3" style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;&lt;b&gt;Time:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;/td&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; "&gt;&lt;span style="font-size: 12px; font-family:arial,verdana,helvetica;color:#000000;"&gt;2:00 PM - 3:00 PM PDT&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;Seminar delivered by Tanel Poder (the guy below):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; width: 688px; height: 31px; "&gt;&lt;div style="display: block; text-align: left; "&gt;&lt;a href="https://www1.gotomeeting.com/register/110594065" target="_blank" rel="nofollow" style="color: rgb(42, 93, 176); "&gt;&lt;img border="0" src="http://tech.e2sn.com/_/rsrc/1284959387503/secret/Tanel_Poder_headshot_96x96.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="display: block; text-align: left; "&gt;&lt;a href="https://www1.gotomeeting.com/register/110594065" target="_blank" rel="nofollow" style="color: rgb(42, 93, 176); "&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="display: block; text-align: left; "&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial, verdana, helvetica; font-size: 12px; "&gt;About the speaker:&lt;br /&gt;&lt;a href="http://tech.e2sn.com/team/tanel-poder" target="_blank" rel="nofollow" style="color: rgb(42, 93, 176); "&gt;http://tech.e2sn.com/team/tanel-poder&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="display: block; text-align: left; "&gt;&lt;a href="https://www1.gotomeeting.com/register/110594065" target="_blank" rel="nofollow" style="color: rgb(42, 93, 176); "&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="display: block; text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; width: 688px; height: 20px; "&gt;&lt;a href="https://www1.gotomeeting.com/register/110594065" target="_blank" rel="nofollow" style="color: rgb(78, 125, 191); "&gt;&lt;img border="0" height="31" src="http://img.gotomeeting.com/g2mimages/webinar/themes/basic/button_registerNow.gif" width="183" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7699975406062881924?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7699975406062881924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-lots-of-hacking-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7699975406062881924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7699975406062881924'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-lots-of-hacking-and.html' title='Oracle Closed World : Lots of hacking and undocumented stuff! , 30 minutes and counting !'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3956459710289549872</id><published>2010-09-20T13:30:00.000-07:00</published><updated>2010-09-20T13:33:37.512-07:00</updated><title type='text'>Arup Nanda on RAC - live from Oracle Closed World</title><content type='html'>Oracle Closed World has kicked off and Arup Nanda, &lt;a href="http://arup.blogspot.com/"&gt;http://arup.blogspot.com/&lt;/a&gt;,  is presenting on RAC&lt;div&gt;Full house but we can sqeeze in some more. Come early while there is still free beer and Oracle Closed World T-shirts.&lt;/div&gt;&lt;div&gt;Arup Nanda is presenting on how cache fusion works, difference between row locks and RAC block locks, and answering questions like can I buffer my whole database in memory.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana, arial, helvetica, sans-serif; font-size: small; "&gt;Arup Nanda has been an Oracle DBA since 1993, which has exposed him to all facets of database administration&amp;emdash;from modeling to disaster recovery. He currently leads the global DBA team at Starwood Hotels, the parent of chains such as Sheraton and Westin, in White Plains, NY. He serves as a contributing editor of &lt;i&gt;SELECT Journal&lt;/i&gt;, the publication of Independent Oracle Users Group (IOUG); speaks at many Oracle Technology&amp;emdash;related events such as Oracle World and local user groups such as New York Oracle User Group; and has written many articles for both print publications such as &lt;i&gt;Oracle Magazine&lt;/i&gt; and online publications such as &lt;i&gt;Oracle Technology Network&lt;/i&gt;. Arup has coauthored two books: &lt;i&gt;Oracle Privacy Security Auditing&lt;/i&gt; (Rampant, 2003) and &lt;i&gt;Oracle PL/SQL for DBAs&lt;/i&gt; (O'Reilly, 2005). Recognizing his professional accomplishments and contributions to user community, Oracle chose him as the "DBA of the Year" in 2003. He lives in Danbury, Connecticut, with his wife Anindita and son Anish. He can be reached at arup@proligence.com.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3956459710289549872?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3956459710289549872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/arup-nanda-on-rac-live-from-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3956459710289549872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3956459710289549872'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/arup-nanda-on-rac-live-from-oracle.html' title='Arup Nanda on RAC - live from Oracle Closed World'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-751550134568084295</id><published>2010-09-20T12:21:00.000-07:00</published><updated>2010-09-20T12:28:00.001-07:00</updated><title type='text'>Oracle Closed World live, now!</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Click here for the lastest info:  &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amiando.com/ocw.html?page=434167" style="color: rgb(51, 102, 153); "&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Oracle Closed World 2010&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt; !&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Mon, Tue, Wed 1pm-4pm at the Thirsty Bear during Oracle Open World.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;OCW is bigger and better this year. That means more beer, more technical goodness, chicken wings and 3+ keynotes.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;The agenda will include a lot of spontaneity and improve. No telling who will show up to talk on what, but here is a brief idea, and plan for some of the talks:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: medium; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; line-height: normal; border-collapse: collapse; font-size: 12px; "&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 18px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Monday, September 20: 1PM to 4PM &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Of special interest, check out Tanel's presentation, available on podcast, on Oracle Secret internals, called "&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: arial, verdana, helvetica; font-weight: normal; font-style: italic; "&gt;Lots of hacking and undocumented stuff!", more info here &lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-style: normal; border-collapse: collapse; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://tech.e2sn.com/secret"&gt;http://tech.e2sn.com/secret&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;1-2 PM: Keynote Speaker  &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Arup Nanda&lt;/strong&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Cache Fusion Demystified&lt;/strong&gt; &lt;br /&gt;Cache Fusion the fundamental to performance in RAC by reducing the need to go to disk for the data and getting it from the memory of another instance directly. But it is also a source of a lot of mystery, myths and misconceptions.&lt;br /&gt;&lt;a href="http://www.amiando.com/ocw.html?page=434183" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;Full Abstract&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;2-3 PM: Keynote Speaker Tanel Poder&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;This session doesn't have any slides, but Tanel will show you lots of (undocumented) ways to hack Oracle instead. Some of this stuff is actually useful, some is more fun ;-)    Topics will range from how to read systemstate dumps, how to perform in-memory conditional tracing and how to trace a single SQL etc as time permits! More on Tanel's thought leadership here: &lt;a href="http://tech.e2sn.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://tech.e2sn.com&lt;/a&gt; and his blog &lt;a href="http://blog.tanelpoder.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://blog.tanelpoder.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amiando.com/ocw.html?page=434183" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;Full Abstract&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;3-4 PM: Keynote Speaker Riyaj Shamsudeen will present on RAC Advanced Trouble Shooting.&lt;/span&gt;&lt;/strong&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://orainternals.wordpress.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://orainternals.wordpress.com&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Also on the Agenda for Monday:&lt;/em&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Karl Arao&lt;/strong&gt; will spend 5 to 10 minutes on each of the following topics:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Graphing the AAS with Perfsheet a la Enterprise Manager&lt;/strong&gt; &lt;br /&gt;&lt;a href="http://karlarao.wordpress.com/2010/07/25/graphing-the-aas-with-perfsheet-a-la-enterprise-manager/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://karlarao.wordpress.com/2010/07/25/graphing-the-aas-with-perfsheet-a-la-enterprise-manager/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Linear Regression with AAS&lt;/strong&gt; &lt;br /&gt;&lt;a href="http://karlarao.tiddlyspot.com/#r2project" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://karlarao.tiddlyspot.com/#r2project&lt;/a&gt; &lt;/span&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; ____________________________________________________________________________________&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 16px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Tuesday, September 21: 1PM to 4PM&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;1:30 - 2:30 PM: Keynote Speaker Kyle Hailey&lt;/strong&gt; &lt;br /&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Database Performance Made Easy Through Graphics&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;Average Active Sessions (AAS) Formulas, Interpreting Load Charts and Visual SQL Tuning (VST)&lt;br /&gt;&lt;a href="http://www.amiando.com/ocw.html?page=434183" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;Full Abstract&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Also on the Agenda for Tuesday:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Martin Nash &lt;/strong&gt;will present a 5-Minute presentation &lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"Helping MOS to Help Me", &lt;/strong&gt;which is about diagnosing the cause of an ORA-600 error and then working around the error until a patch is available/applied. Obviously it's not applicable to every ORA-600, but the approach to identifying the source of the problem is Martin feels is worth sharing.&lt;a href="http://oraganism.wordpress.com/author/martinpaulnash/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://oraganism.wordpress.com/author/martinpaulnash/&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Arjen Visser &lt;/strong&gt;will present a 5-Minute presentation on &lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;how to use DBvisit to implement a standby database&lt;/strong&gt; without Data Guard. When using Oracle Standard Edition and Standard Edition One, Data Guard is not available. Dbvisit can be used as an alternative to implement and managing standby databases to ensure complete protection for your primary database. This is a quick overview of the Dbvisit solution. &lt;a href="http://blog.dbvisit.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(30, 98, 182); "&gt;http://blog.dbvisit.com&lt;/a&gt;  &lt;br /&gt;&lt;br /&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;OPEN MIC - 5-MINUTES-OF-FAME AND 5-MINTUES-OF-HELP&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;_____________________________________________________________________________________&lt;br /&gt;&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 16px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Wednesday, September 22: 1PM to 4PM&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-right: 0px; margin-bottom: 12px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;AWARDS!&lt;br /&gt;&lt;br /&gt;3PM - 4PM Keynote Speaker Kevin Closson will present on SMT and Flash&lt;br /&gt;&lt;br /&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Also on the Agenda for Wednesday:&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Gwen Shapira &lt;/strong&gt;&lt;/strong&gt;will talk convincingly about &lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;webscale, /dev/null     &lt;/strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "&gt;&lt;img src="http://farm5.static.flickr.com/4146/4975442290_ef70ce0b2d.jpg" style="padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); " /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-751550134568084295?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/751550134568084295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-live-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/751550134568084295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/751550134568084295'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-live-now.html' title='Oracle Closed World live, now!'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4146/4975442290_ef70ce0b2d_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-1286278649015549167</id><published>2010-09-15T15:07:00.001-07:00</published><updated>2010-09-15T15:14:26.648-07:00</updated><title type='text'>Quest vs Embarcadero : SQL Tuning</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I get asked regularly what does Embarcadero's SQL tuner have that is any different than Quest's SQL tuner. The HUGE difference between Quest and Embarcadero’s approach is the Visual SQL Tuning (VST). Without VST most automated SQL tuning turns into dead ends.  Why dead ends? Because in general the databases are going to correctly optimize queries. Queries are rarely incorrectly optimized. In those rare instances where a database get’s it wrong, then the approach of blindly generating and testing alternative execution plans can be helpful but only helpful in the case where queries are small enough that many alternative cases can be tested.&lt;/div&gt;If on the other hand the query is long running say, a  day, then testing alternative cases will not lead to results for easily several days. On the other hand with VST diagram we can quickly identified the best execution path using the diagram and guide the database to use this path.&lt;br /&gt;Also for queries that can’t be optimized by the database because the are inherently slow, intractable or badly written - then what do you do?  Generating alternative execution cases is pointless. What is going to help you quickly and easily understand  the query and what the problems are? The solution is VST diagrams which only Embarcadero has in DB Optimizer.&lt;br /&gt;&lt;div&gt;Not only does DB Optimizer generate and test alternative  execution plans, analyze indexes, suggest missing indexes, verify table statistics, analyze columns for histogram candidates and the have the powerful VST diagrams, DB Optimizer also has database load profiling, detail drilldown, load testing and sql editing with error flagging, automated error fixing, type ahead and code templates.  All of this is wrapped in the Eclipse IDE and is a single executable supporting the same interface across Oracle, SQL Server, Sybase and DB2.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-1286278649015549167?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/1286278649015549167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/quest-vs-embarcadero-sql-tuning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1286278649015549167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1286278649015549167'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/quest-vs-embarcadero-sql-tuning.html' title='Quest vs Embarcadero : SQL Tuning'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-4010041135661435625</id><published>2010-09-10T17:00:00.000-07:00</published><updated>2010-09-10T20:01:54.549-07:00</updated><title type='text'>DB Optimizer - "the wow factor of the InSync conference"</title><content type='html'>&lt;div&gt;Just recovering from a whirlwind 2 weeks in APAC  (Asia-Pacific)&lt;/div&gt;&lt;div&gt;Japan:&lt;/div&gt;&lt;div&gt;First off was 48 hours in Tokyo where I was warmly welcomed by Oaktable member, Ichiro Obata. Check out Ichro's blog at&lt;/div&gt;&lt;div&gt;&lt;a href="http://ichiroobata.blogspot.com/2010/08/optimizerindexcostadj.html"&gt;http://ichiroobata.blogspot.com/2010/08/optimizerindexcostadj.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Ichiro not only warmly welcomed me, treated me to Sushi and Sapporo, discussed Exadata, data warehousing, and performance tuning, but he also took me to the crazy neighborhood of Akihabara, sort of a mix of computer stores, nerds, manga, goth and geisha. Here's someones description:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.brettb.com/TravelLog.Tokyo.Akihabara.asp"&gt;http://www.brettb.com/TravelLog.Tokyo.Akihabara.asp&lt;/a&gt;&lt;/div&gt;&lt;div&gt;China&lt;/div&gt;&lt;div&gt;Traveled then to China where I gave another presentation to a packed house&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4084/4975277000_05e6024b9e_m.jpg" /&gt;&lt;img src="http://farm5.static.flickr.com/4146/4969799065_92d09b4355_m.jpg" /&gt;&lt;/div&gt;&lt;div&gt;and visited numerous clients as well has having Peking Duck for the first time (not to mention pigs feed and jelly fish - two new ones on me)&lt;/div&gt;&lt;div&gt;Australia&lt;/div&gt;&lt;div&gt;Finished up with an awesome time in Melbourne at the Insync  Conference where I got to listen to great presentations by Richard Foote, Connor McDonald among others as well as giving my own presentation on simplifying database performance monitoring and tuning with graphics. After my presentation one of the participants called my section on Visual SQL Tuning (VST),  "the wow factor of the conference!"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-4010041135661435625?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/4010041135661435625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/db-optimizer-wow-factor-of-insync.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4010041135661435625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4010041135661435625'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/db-optimizer-wow-factor-of-insync.html' title='DB Optimizer - &quot;the wow factor of the InSync conference&quot;'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4084/4975277000_05e6024b9e_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3879080318370051926</id><published>2010-09-10T13:29:00.000-07:00</published><updated>2010-09-10T14:48:16.124-07:00</updated><title type='text'>SQL Joins Graphically</title><content type='html'>&lt;div&gt;I've noticed this print out in a number of cubes at work and I think that attests to it's attractiveness and/or usefulness. I don't use most of these join methods but it is a nice complete feeling list with graphic representations and we might expand our join graphics in DB Optimizer to include similar graphics.&lt;/div&gt;&lt;div&gt;See:&lt;/div&gt;&lt;a href="http://www.codeproject.com/KB/database/Visual_SQL_Joins.aspx?msg=2919602"&gt;http://www.codeproject.com/KB/database/Visual_SQL_Joins.aspx?msg=2919602&lt;/a&gt;&lt;img src="http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_V2.png" height="472" width="600" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3879080318370051926?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3879080318370051926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/sql-joins-graphically.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3879080318370051926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3879080318370051926'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/sql-joins-graphically.html' title='SQL Joins Graphically'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-8339150710368857736</id><published>2010-09-10T11:16:00.000-07:00</published><updated>2010-09-10T11:18:32.746-07:00</updated><title type='text'>Simulated ASH 2.1 (SASH 2.1)</title><content type='html'>&lt;div&gt;Thanks to Marcin Przepiorowski for improving the SASH code!&lt;/div&gt;&lt;div&gt;see &lt;a href="http://ashmasters.com/ash-simulation/simulation-v21/"&gt;http://ashmasters.com/ash-simulation/simulation-v21/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, tahoma, verdana, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 20px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;V2.1 - Installs on Windows or Unix on Standard Edition&lt;/strong&gt;&lt;br /&gt;I would like to present a new version of S-ASH package. It is based on Kyle’s version v2 and it has been modified by me to meet a customer requirements related to minimize changes on production database and some bug fixing and new functionality has been added. In addition to that a new project called &lt;a href="http://sourceforge.net/projects/orasash/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; cursor: pointer; color: rgb(153, 153, 153); "&gt;OraSASH&lt;/a&gt; has been created on SourceForge to keep tracking of all changes and bug fixing.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;In version 1 and version 2 collection job has been implemented on production database and PL/SQL package has to been deployed on it too. In new version collection job is running on repository database and it is accessing target database via DB link and list of changes on production database has been limited to one user and one view.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;————————————————————————————&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Installation&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Please find a list of installation steps:&lt;/p&gt;&lt;ol style="margin-top: 0.5em; margin-right: 0.5em; margin-bottom: 1.5em; margin-left: 0.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;create a SASH user - run &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_0_user.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_0_user.sql&lt;/a&gt; - as user SYS on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;add sys procedure to kill jobs - run &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_1_sys_procedure.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_1_sys_procedure.sql&lt;/a&gt; - as user SYS on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;create repository - run - &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_1_sys_procedure.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_1_tables.sql&lt;/a&gt; - as user SASH on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;create repository management package - run - &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_2_pkg.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_2_pkg.sql&lt;/a&gt; - as user SASH on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;create user and view on target - run - &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/targ_1_userview_9i.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;targ_1_userview_9i.sql&lt;/a&gt; for 9i or&lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/targ_1_userview_10g.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;targ_1_userview_10g.sql&lt;/a&gt; for 10g and above - as SYS user on database being monitored&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;create database link using - run - &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_3_dblink.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_3_dblink.sql&lt;/a&gt; - as user SASH on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;create a sash packages - run - &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_4_packages.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_4_packages.sql&lt;/a&gt; - as user SASH on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;fill setup tables - login into SQL*Plus as SASH user and execute following statements&lt;br /&gt;&lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 1.1em/normal 'Courier New', Courier, monospace; "&gt;&lt;br /&gt;exec sash_pkg.set_dbid;&lt;br /&gt;exec sash_pkg.get_event_names;&lt;br /&gt;exec sash_pkg.get_users;&lt;br /&gt;exec sash_pkg.get_params;&lt;br /&gt;sash_pkg.get_data_files ;&lt;br /&gt;commit;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;/code&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;If target database is in version 9i fill up wait classes table - run &lt;a href="http://sourceforge.net/projects/orasash/files/v2.1/repo_5_waitgroups.sql/download" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; cursor: pointer; color: rgb(51, 51, 136); "&gt;repo_5_waitgroups.sql&lt;/a&gt; - as user SASH on repository database&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;If target database is in version 10g or above run following statement as SASH user on repository database&lt;br /&gt;&lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 1.1em/normal 'Courier New', Courier, monospace; "&gt;&lt;br /&gt;update sash_event_names sen set sen.wait_class = ( select wg.wait_class from gv$event_name@sashprod wg where wg.name=sen.name);&lt;br /&gt;commit;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;/code&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.4em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; list-style-type: decimal; list-style-position: outside; list-style-image: initial; background-position: initial initial; background-repeat: initial initial; "&gt;setup jobs - login into SQL*Plus as SASH user and execute following statements&lt;br /&gt;exec sash_repo.setup_jobs&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;—————————————–&lt;br /&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Maintenace&lt;/strong&gt;&lt;br /&gt;All commands have to be executed as SASH user connected to repository database.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Starting collection job&lt;br /&gt;exec sash_repo.start_collecting_jobs;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Stoping collection job&lt;br /&gt;exec sash_repo.stop_collecting_jobs;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Data retention&lt;/strong&gt;&lt;br /&gt;Collection job is using “poor” man partitioning trick and number of tables have been increased from 7 in version 2 into 31 in version 2.1. It allow to keep performance data for one month.&lt;br /&gt;Whole solution has been tested on database with 300 connected sessions and it gathered about 100 MB&lt;br /&gt;of performance data daily.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Retention setup:&lt;br /&gt;exec sash_repo.set_retention(’x');&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;where x is one of:&lt;br /&gt;- d - last week&lt;br /&gt;- w - last month&lt;br /&gt;- h - last 24 h&lt;br /&gt;- m - last 30 minutes&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;If you have any problems or questions feel free to add comments here or contact me directly&lt;br /&gt;&lt;a href="http://oracleprof.blogspot.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; cursor: pointer; color: rgb(153, 153, 153); "&gt;Marcin Przepiorowski&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-8339150710368857736?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/8339150710368857736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/simulated-ash-21-sash-21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/8339150710368857736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/8339150710368857736'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/simulated-ash-21-sash-21.html' title='Simulated ASH 2.1 (SASH 2.1)'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-1873462310558634494</id><published>2010-09-10T08:00:00.000-07:00</published><updated>2010-09-10T11:20:08.213-07:00</updated><title type='text'>SQL Tuning Best Practice – Visualizing the Query</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom:5.0pt;line-height:normal;mso-outline-level: 3;background:white"&gt;&lt;span class="Apple-style-span"   style="font-family:Arial, sans-serif;font-size:6;"&gt;&lt;span class="Apple-style-span"  style="font-size:19px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"   style=" font-weight: normal;  font-family:Arial, Verdana, sans-serif;font-size:13px;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"   style="font-family:Arial, sans-serif;font-size:6;"&gt;&lt;b&gt;&lt;h3 xmlns="http://www.w3.org/1999/xhtml" id="sites-page-title-header" align="left" dir="ltr" style="font-size: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: rgb(0, 0, 0); padding-top: 3px; padding-right: 10px; padding-bottom: 3px; padding-left: 10px; "&gt;&lt;/h3&gt;&lt;div id="sites-canvas-main" class="sites-canvas-main" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); min-height: 150px; padding-bottom: 5px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div id="sites-canvas-main-content"&gt;&lt;table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox" style="width: 916px; table-layout: fixed; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="sites-layout-tile sites-tile-name-content-1" style="vertical-align: top; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; "&gt;&lt;div dir="ltr"&gt;&lt;div&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;SQL tuning can be a challenge to even the most experienced database professional. So, how can you give yourself a leg up in optimizing a difficult query?&lt;span&gt; &lt;/span&gt;As you will discover in this best practice, visualizing the query can help you quickly understand the query, as well as define its optimal execution path.&lt;/span&gt;&lt;/div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;A best practice for visualizing the query is to draw the query out as a Visual SQL Tuning (VST) diagram.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;A VST diagram consists of the following elements: &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style="line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;    tables as nodes&lt;/span&gt;&lt;/li&gt;&lt;li style="line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;    joins as connectors&lt;/span&gt;&lt;/li&gt;&lt;li style="line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;    filter percentages&lt;/span&gt;&lt;/li&gt;&lt;li style="line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;    relationships &lt;/span&gt;&lt;/li&gt;&lt;li style="line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;    join sizes &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;Historically, SQL tuning has been limited to the following two approaches: &lt;/span&gt;&lt;/p&gt;&lt;ol style="list-style-type: decimal; "&gt;&lt;li&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;Explain plan for the query; and/or &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;Trace the query&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;For example, a trace output might look something like this:e&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border- padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color:initial;"&gt;&lt;div&gt;&lt;div class="sites-codeblock sites-codesnippet-block" style="background-color: rgb(239, 239, 239); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); display: block; padding-top: 0.5em; padding-right: 0px; padding-bottom: 0.5em; padding-left: 1em; line-height: 13px; "&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;PARSING IN CURSOR #2 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;len&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=53 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;dep&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=0 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;uid&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=61 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;oct&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=3 lid=61 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;tim&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=1151519905950403 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;hv&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=2296704914 ad='4e50010c'&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;SELECT 'Hello, world; today is ' || SYSDATE FROM dual&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;END OF STMT&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;PARSE #2:c=4000,e=1540,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=1151519905950397&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;BINDS #2:&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;EXEC #2:c=0,e=58,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1151519906034782&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;WAIT #2: &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;nam&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;='SQL*Net message to client' &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;ela&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;= 2 driver id=1650815232 #bytes=1 p3=0 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;obj&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;#=-1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;tim&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=1151519906034809&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;FETCH #2:c=0,e=29,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=1151519906034864&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;WAIT #2: &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;nam&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;='SQL*Net message from client' &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;ela&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;= 215 driver id=1650815232 #bytes=1 p3=0 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;obj&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;#=-1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;tim&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=1151519906035133&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;FETCH #2:c=0,e=1,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=1151519906035165&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;WAIT #2: &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;nam&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;='SQL*Net message to client' &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;ela&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;= 1 driver id=1650815232 #bytes=1 p3=0 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;obj&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;#=-1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;tim&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=1151519906035188&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;WAIT #2: &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;nam&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;='SQL*Net message from client' &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;ela&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;= 192 driver id=1650815232 #bytes=1 p3=0 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;obj&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;#=-1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;tim&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=1151519906035400&lt;/span&gt;&lt;/code&gt;&lt;span style=" ;font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;STAT #2 id=1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;cnt&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;pid&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=0 pos=1 &lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;obj&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=0 op='FAST DUAL  (&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;cr&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="  ;font-family:Arial;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;&lt;span style=" ;font-size:x-small;"&gt;=0 pr=0 pw=0 time=3 us)&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style="  ;font-family:Arial, sans-serif;font-size:10pt;"&gt;Not exactly user-friendly. I think I might need a couple of double espressos before I plunge into this one.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style="  ;font-family:Arial, sans-serif;font-size:10pt;"&gt;&lt;span style="line-height: 14px; "&gt;How about an explain plan? An explain plan is better, but still lacking insightful information&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="sites-codeblock sites-codesnippet-block" style="background-color: rgb(239, 239, 239); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(211, 211, 211); border-right-color: rgb(211, 211, 211); border-bottom-color: rgb(211, 211, 211); border-left-color: rgb(211, 211, 211); display: block; padding-top: 0.5em; padding-right: 0px; padding-bottom: 0.5em; padding-left: 1em; line-height: 13px; "&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;--------------------------------------------------------------------------------------------&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| Id&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| Operation&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                           &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| Name&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;               &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| Starts | E-Rows | A-Rows |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;---------------------------------------------------------------------------------------------&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;HASH GROUP BY&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|*&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;2 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;FILTER&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                            &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;        &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1909 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|*&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;3 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;TABLE ACCESS BY INDEX ROWID&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| PS_RETROPAYPGM_TBL |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;3413 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;4 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;     &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;NESTED LOOPS&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;165 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;6827 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|*&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;5 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;HASH JOIN&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;165 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;3413 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|*&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;6 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;       &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;HASH JOIN&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                     &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;165 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;3624 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;7 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;        &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;TABLE ACCESS BY INDEX ROWID&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| WB_JOB&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;             &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;242 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;2895 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;8 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;         &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;NESTED LOOPS&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;233 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;2897 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;9 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;          &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;TABLE ACCESS BY INDEX ROWID| PS_PAY_CALENDAR&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|* 10 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;           &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;INDEX RANGE SCAN&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;          &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| PS0PAY_CALENDAR&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|* 11 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;          &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;INDEX RANGE SCAN&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;           &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| WBBJOB_B&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;           &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;286 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;2895 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|* 12 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;        &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;TABLE ACCESS FULL&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;            &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| WB_RETROPAY_EARNS&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;27456 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;122K|&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;13 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;       &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;TABLE ACCESS FULL&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;             &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| PS_RETROPAY_RQST&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;13679 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;13679 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|* 14 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;INDEX RANGE SCAN&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;               &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| PS#RETROPAYPGM_TBL |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;3413 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;3413 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;15 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;SORT AGGREGATE&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1791 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1791 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;16 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;     &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;FIRST ROW&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                       &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1791 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1579 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|* 17 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;INDEX RANGE SCAN (MIN/MAX)&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;     &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| WB_JOB_F&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;           &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1791 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1579 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;18 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;       &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;SORT AGGREGATE&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1539 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1539 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;19 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;        &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;FIRST ROW&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;                    &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1539 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1539 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|* 20 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;         &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;INDEX RANGE SCAN (MIN/MAX)&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;  &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;| WB_JOB_G&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;           &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;|&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1539 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;      &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1 |&lt;/code&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;/code&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;1539 |&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;---------------------------------------------------------------------------------------------&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;Predicate Information (identified by operation id):&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;---------------------------------------------------&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;&lt;code style="color: rgb(0, 96, 0); "&gt;   &lt;span style="color: rgb(0, 0, 0);  font-family:'Courier New';"&gt;2 - filter(("B"."EFFDT"= AND "B"."EFFSEQ"=))&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;   &lt;/span&gt;3 - filter("E"."OFF_CYCLE"="A"."PAY_OFF_CYCLE_CAL")&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;   &lt;/span&gt;5 - access("D"."RETROPAY_SEQ_NO"="C"."RETROPAY_SEQ_NO")&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;   &lt;/span&gt;6 - access("C"."EMPLID"="B"."EMPLID" AND "C"."EMPL_RCD#"="B"."EMPL_RCD#")&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;  &lt;/span&gt;10 - access("A"."RUN_ID"='PD2' AND "A"."PAY_CONFIRM_RUN"='N')&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;  &lt;/span&gt;11 - access("B"."COMPANY"="A"."COMPANY" AND "B"."PAYGROUP"="A"."PAYGROUP")&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;  &lt;/span&gt;12 - filter(("C"."RETROPAY_PRCS_FLAG"='C' AND "C"."RETROPAY_LOAD_SW"='Y'))&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;  &lt;/span&gt;14 - access("E"."RETROPAY_PGM_ID"="D"."RETROPAY_PGM_ID")&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;  &lt;/span&gt;17 - access("F"."EMPLID"=:B1 AND "F"."EMPL_RCD#"=:B2 AND "F"."EFFDT"&lt;=:B3)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="   ;font-family:'Courier New';font-size:8pt;color:black;"&gt;&lt;span&gt;  &lt;/span&gt;20 - access("G"."EMPLID"=:B1 AND "G"."EMPL_RCD#"=:B2 AND "G"."EFFDT"=:B3)&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="  ;font-family:'Courier New';color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="  ;font-family:'Courier New';color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; text-align: left; direction: ltr; vertical-align: baseline; "&gt;&lt;span style="  ;font-family:'Courier New';color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;If I was greeted with this first thing in the morning, I'd definitely get a coffee before attempting to operate on it.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;The explain plan is just a set of directions that the database takes to retrieve the data from the database in order to satisfy an SQL query. An analogy would be if we imagine the SQL query as a google maps request for directions to get from my home in the suburbs to my office downtown. The explain plan is like the turn-by-turn route list. But for any of us who have gotten lost well know, it’s also nice to be able to see the map as well as the turn-by-turn directions.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;If google maps only gave me the directions without the map I'd be pretty upset, probably lost and totally anxious about how long it's going to take me to get to my destination.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt; &lt;span style=" ;font-family:Arial, Verdana, sans-serif;"&gt;&lt;span style=" line-height: 14px; font-family:Arial, sans-serif;"&gt;Are these a good set of directions? (from where I live to where I work, in San Francisco):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4101/4940749338_cbbdf8d40c_o.png" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It might help if I had a map:&lt;/div&gt;&lt;div&gt;&lt;img height="212" src="http://farm5.static.flickr.com/4099/4940866502_9b682e73a1_o.png" width="320" /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;On the map, the directions look pretty sensible, but what if there was a traffic jam on some streets and not others? How about a map that included traffic jams (i.e. bottlenecks)?&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;Whether the turn-by-turn directions are good or bad requires a map (i.e. visual information). So how do we get a map of for an SQL query? Let's start with the terrain. We can describe the terrain by laying out the tables in the query graphically and drawing connectors for every join, or routes through the diagram. A diagram could look like this:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img height="254" src="http://farm5.static.flickr.com/4117/4943100206_a2182a2783_o.png" width="400" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;Now we have a map of the terrain. Seeing the terrain allows us to pick out an optimal explain plan. To pick an optimal explain plan, find tables that have the most selective filter and start the execution there. In the above case there is only one table with a filter. This filter is denoted by the F icon on the table BROKER. Start at BROKER and then look for joins that keep the running row set size to a minimum. The running row set size is the number of rows we carry from the previous node to the next node in the VST. We have to visit all the nodes, but the fewer rows we have to carry with us from one node to the next, the faster we’re going to arrive at our destination.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt; Whether you draw out the VST by hand or use a tool, a best practice is to draw the child table above the parent table. This layout encourages us to navigate the VST join down to keep our running row set the same size vs. joining up which will generally increase the row set size:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4138/4943967078_77fe5f7877_o.png" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;Thus, the idea is to start at the most selective filter and join down before joining up. In our example there is only one filter on BROKER, so we start there, we join down to OFFICE_LOCATION, then finish off with CLIENT_TRANSACTION, and end at CLIENT.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;But what if we have more than one filter and we have to choose? In that case we have to calculate the filter percentage. The filter percentage is simply the number of filter rows divided by total rows in the table. Filter rows are the number of rows returned after applying the filter criteria on that table from the query.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;In the diagram below, BROKER is the most selective filter at .05% so we start at BROKER and follow the same path as we just discussed:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img height="254" src="http://farm5.static.flickr.com/4097/4943025659_85120a6e93_o.png" width="400" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;But what if we don’t have access to any information identifying the parent-child relationships (such as PK/FK constraints, unique indexes or unique constraints)? In those cases, we may be looking at many-to-many relationships.  With many-to-many relationships, it's unclear how to navigate the VST. We no longer know whether to join up or down. To solve this impasse, we can add the two table join row sizes to help us navigate. Below, we’ve drawn the two table join sizes on the join lines:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4085/4945562383_6aa7fa574b_b.jpg" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;T&lt;span style=" ;font-family:Arial, sans-serif;"&gt;o navigate the VST above, we again start at BROKER with the most selective filter, then look for the smallest two table join size which is OFFICE_LOCATION with a join size of 3. Then we join to CLIENT_TRANSACTION and finally CLIENT.&lt;/span&gt;&lt;/div&gt;&lt;p style="margin-bottom: 0.0001pt; line-height: normal; "&gt;&lt;span style=" ;font-family:Arial, sans-serif;"&gt;As you can see, VST diagrams act like the map for the terrain that an SQL query has to navigate. When a simple map is not enough, we can add statistics such as filter percentages and two table join sizes to complete the map. VST diagrams can be drawn on paper, with tools such as Visio or with database products that draw them automatically using the SQL query, schema definitions and table statistics. &lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;For more perspective on the visual approach to tuning SQL and drawing VST diagrams see&lt;/div&gt;&lt;div&gt;&lt;u&gt;SQL Tuning&lt;/u&gt; by Dan Tow&lt;/div&gt;&lt;div&gt;&lt;u&gt;Refactoring SQL Applications&lt;/u&gt; by Stephan Faroult , chapter 5&lt;/div&gt;&lt;div&gt;&lt;div&gt;"Designing Efficient SQL: A Visual Approach" by Jonathan Lewis&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=" color: rgb(51, 51, 51); line-height: 16px; font-family:Verdana, Arial, sans-serif;"&gt;      &lt;a href="http://www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach/" rel="nofollow" style="color: rgb(51, 102, 153); outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-1873462310558634494?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/1873462310558634494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/sql-tuning-best-practice-visualizing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1873462310558634494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1873462310558634494'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/sql-tuning-best-practice-visualizing.html' title='SQL Tuning Best Practice – Visualizing the Query'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4085/4945562383_6aa7fa574b_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3015831107010148341</id><published>2010-09-09T16:04:00.000-07:00</published><updated>2010-09-09T16:13:58.435-07:00</updated><title type='text'>Oracle Closed World 2010</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Get ready for &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amiando.com/ocw.html?page=434167"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Oracle Closed World 2010&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; !&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Mon, Tue, Wed 1pm-4pm at the Thirsty Bear during Oracle Open World.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;OCW is bigger and better this year. That means more beer, more technical goodness, chicken wings and 3+ keynotes. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4112/4975442320_538c993160.jpg" /&gt;&lt;img src="http://farm5.static.flickr.com/4146/4975442290_ef70ce0b2d.jpg" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3015831107010148341?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3015831107010148341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-2010.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3015831107010148341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3015831107010148341'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/oracle-closed-world-2010.html' title='Oracle Closed World 2010'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4112/4975442320_538c993160_t.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-2389080320823626432</id><published>2010-09-09T15:08:00.001-07:00</published><updated>2010-09-09T21:38:36.513-07:00</updated><title type='text'>Data visualization weak in the BI industry</title><content type='html'>&lt;span class="Apple-style-span"   style="  color: rgb(102, 102, 102); font-family:Verdana, sans-serif;font-size:7px;"&gt;&lt;i&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;i&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;em&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;From Stephen Few's blog &lt;a href="http://www.perceptualedge.com/blog/?p=820"&gt;http://www.perceptualedge.com/blog/?p=820&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;/i&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;The industry that has claimed responsibility for helping organizations get real value from information goes by the name “&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;business intelligence&lt;/span&gt;&lt;/b&gt;.” This term was originally coined by Hans Peter Luhn, an IBM researcher, way back in &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;1958&lt;/span&gt;&lt;/b&gt;. Luhn defined business intelligence as “&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;t&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;he ability to apprehend the interrelationships of presented facts in such a way as to guide action towards a desired goal&lt;/span&gt;&lt;/b&gt;.”&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span class="apple-converted-space"&gt;&lt;i&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;The term&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span class="apple-converted-space"&gt;&lt;i&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;didn’t catch on, however, until sometime after&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt; Howard Dresner, best known for his work at Gartner, used it again to breathe new life into to the data warehousing industry. Dresner defined the term as&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span class="apple-converted-space"&gt;&lt;i&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;“&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;concepts and methods to improve business decision making using fact-based support systems.&lt;/span&gt;&lt;/b&gt;”&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;i&gt;&lt;p class="MsoNormal" style="display: inline !important; "&gt;&lt;em&gt;&lt;span style="color: rgb(102, 102, 102); "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;Contained in these early definitions was the seed of an inspiring vision that caused people like me to imagine a better world, but the business intelligence industry has done little to help us achieve the vision of the people who coined the term. When Thornton May was interviewing people for his book “The New Know”, he asked a prominent venture capitalist known for his 360-degree &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;view of the technology industry &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;what he thought of when he heard the phrase &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;business intelligence&lt;/span&gt;&lt;/b&gt;. His response was “&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;big software, little analysis.&lt;/span&gt;&lt;/b&gt;” Sadly, his response rings true.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;/i&gt;&lt;/i&gt;&lt;i&gt;&lt;p&gt;&lt;/p&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-2389080320823626432?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/2389080320823626432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/data-visualization-weak-in-bi-industry.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2389080320823626432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2389080320823626432'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/data-visualization-weak-in-bi-industry.html' title='Data visualization weak in the BI industry'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5702876936855540787</id><published>2010-09-08T13:13:00.000-07:00</published><updated>2010-10-13T09:19:51.052-07:00</updated><title type='text'>DB Optimizer 2.5.1 Released</title><content type='html'>&lt;div&gt;&lt;div&gt;I’m excited to announce the release of DB Optimizer 2.5.1 which has some big new features for a point release along with the regular minor bug fixes. Many thanks to the DBO team for another awesome release.&lt;/div&gt;&lt;div&gt;Download available at:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;a href="https://downloads.embarcadero.com/free/db_optimizer"&gt;https://downloads.embarcadero.com/free/db_optimizer&lt;/a&gt;&lt;/div&gt;&lt;div&gt;or&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;a href="http://www.perfvision.com/ftp/DBO251/dbo_251_300810_ion.exe"&gt;http://www.perfvision.com/ftp/DBO251/dbo_251_300810_ion.exe&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;And DBO 2.5.1 is included in Embarcadero's All Access 1.8.&lt;/div&gt;&lt;div&gt;The new features are&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visual SQL Tuning (VST) diagram can be saved to file – previously it had to be regenerated every time a saved TUN session was reopened.&lt;/li&gt;&lt;li&gt;VST has new notations&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-align: left;margin-left: 1in; text-indent: -0.25in; "&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Sub-queries are encapsulated as well as nested sub-queries&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-align: left;margin-left: 1in; text-indent: -0.25in; "&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Exists/In and Not Exist/Not In are indicated on the diagram&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-align: left;margin-left: 1in; text-indent: -0.25in; "&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;; mso-fareast-Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Outer Joins are denoted on the diagram&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-align: left;margin-left: 1in; text-indent: -0.25in; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;I've made 3  “.tun” files available here&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/ftp/DBO251/example_tun/"&gt;http://www.perfvision.com/ftp/DBO251/example_tun/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;that showcase some of these new features. For example, just drag and drop “bigstmt2.tun” into DB Optimizer 2.5.1 from windows explorer and then click on the analysis tab. The analysis tab immediately shows the VST diagram where you can the double click on “BIG_STATEMENT2”  table on the right and you can, without being connected to a database, drill into all the sub-queries and views. Impressive and great for “oohs and aahs” in demos:&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4105/4974533473_6cbf50ae72_o.png" /&gt;&lt;/div&gt;&lt;div&gt;Now expanded&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4089/4975146918_da44b7cbde_z.jpg" /&gt;&lt;/div&gt;&lt;div&gt;The only “gotcha” is that the 14 day trial version is a limited functionality trial license. With the limited trial license you can only tune 5 SQL statements and when you profile, you see the load but not the SQL text for the queries it find. You can get around this by getting a temporary retail license from a sales person, or I can  try and get you one for you.Let me know if you download DB Optimizer and how it goes and if I can help.&lt;/div&gt;&lt;div&gt;Other examples:&lt;/div&gt;&lt;div&gt;Query from Jonathan Lewis webinar on visual approach to SQL tuning&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4148/4974596791_05d1f9a021_z.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Example of outer joins from q2_251outer.tun&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4142/4927374199_5398256b2b_z.jpg" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5702876936855540787?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5702876936855540787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/db-optimizer-251-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5702876936855540787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5702876936855540787'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/09/db-optimizer-251-released.html' title='DB Optimizer 2.5.1 Released'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4089/4975146918_da44b7cbde_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-4959684658824521128</id><published>2010-08-27T21:12:00.000-07:00</published><updated>2010-09-09T09:55:54.360-07:00</updated><title type='text'>The illustrated guide to a Ph.D.</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(51, 51, 51); font-family:Georgia;"&gt;A nice graphical story of the PhD and perspective from &lt;a href="http://matt.might.net/articles/phd-school-in-pictures/"&gt;http://matt.might.net/articles/phd-school-in-pictures/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(51, 51, 51); font-family:Georgia;"&gt;&lt;p style="position: relative; z-index: 1; "&gt;&lt;a href="http://matt.might.net/articles/phd-school-in-pictures/"&gt;&lt;/a&gt;here is the article (click on above link to get original)&lt;/p&gt;&lt;/span&gt;&lt;hr /&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); font-family:Georgia;font-size:medium;"&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="position: relative; z-index: 1; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.001.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;By the time you finish elementary school, you know a little:Imagine a circle that contains all of human knowledge:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.002.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;By the time you finish high school, you know a bit more:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.003.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;With a bachelor's degree, you gain a specialty:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.004.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;A master's degree deepens that specialty:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.005.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;Reading research papers takes you to the edge of human knowledge:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.006.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;Once you're at the boundary, you focus:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.007.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;You push at the boundary for a few years:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.008.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;Until one day, the boundary gives way:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.009.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;And, that dent you've made is called a Ph.D.:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.010.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;Of course, the world looks different to you now:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.011.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;So, don't forget the bigger picture:&lt;/p&gt;&lt;div class="graphic" style="position: relative; z-index: 1; text-align: center; margin-top: 15px; margin-bottom: 15px; "&gt;&lt;img src="http://208.109.218.43/matt.might.net/articles/phd-school-in-pictures/images/PhDKnowledge.012.jpg" width="440" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; position: relative; z-index: 1; " /&gt;&lt;/div&gt;&lt;p style="position: relative; z-index: 1; "&gt;Keep pushing.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-4959684658824521128?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/4959684658824521128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/illustrated-guide-to-phd.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4959684658824521128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4959684658824521128'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/illustrated-guide-to-phd.html' title='The illustrated guide to a Ph.D.'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-1896456335335752639</id><published>2010-08-16T15:59:00.001-07:00</published><updated>2010-08-16T16:14:25.917-07:00</updated><title type='text'>Refactoring SQL Applications</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;"The application design is the most important factor in performance"&lt;/blockquote&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fA5yrPv5jII/TGnC3tmM73I/AAAAAAAAQP0/LlAVGUd4QT4/s1600/lrg.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://2.bp.blogspot.com/_fA5yrPv5jII/TGnC3tmM73I/AAAAAAAAQP0/LlAVGUd4QT4/s400/lrg.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5506146281825562482" /&gt;&lt;/a&gt; I've heard the phrase so many times, it doesn't even register on me. Sure the application design is the most important factor in performance, but what do I do about it? Well, "Refactoring SQL Applications" (RSA)  is the book I've been waiting for.  RSA lays out examples of how application coders tend to think either procedurally or object oriented and how this thinking can completely miss the boat when it comes to writing SQL and interacting with the database.&lt;div&gt;In RSA, Stephane Faroult, lays out examples of Java code, user defined functions and views and how a coders notions of modular procedural programing and/or object instantiation can run undermine database performance from cookie cutter reuse of code to table joins written in Java. If you've ever seen Tom Kyte's "Developer Super Session - The Best Way", then you know the best way is not to do it and his example is of a coders doing "count(*)" to find out how many loops to do or how big an array to layout. Tom explains the disasters this can create and how the best way is just to not do the count(*) and how this works by letting the database do the work. Letting the database do the work is explained clearly and with many examples from different perspectives in "Refactoring SQL Applications".&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-1896456335335752639?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/1896456335335752639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/refactoring-sql-applications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1896456335335752639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1896456335335752639'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/refactoring-sql-applications.html' title='Refactoring SQL Applications'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fA5yrPv5jII/TGnC3tmM73I/AAAAAAAAQP0/LlAVGUd4QT4/s72-c/lrg.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5081081508670055824</id><published>2010-08-14T20:06:00.000-07:00</published><updated>2010-08-14T20:16:33.325-07:00</updated><title type='text'>Stock Market Patterns: High Frequency Trade 'Crop Circle'</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, sans-serif; font-size: 13px; line-height: 17px; "&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; "&gt;You'd think I 'd find this on "Information is Beautiful" but got the link from a friend on Facebook. The images below visually display the patterns of "High Frequency Trading" (HTF), which can consist of high frequency trades to manipulate the markets.&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; "&gt; See &lt;a href="http://www.zerohedge.com/article/its-not-market-its-hft-crop-circle-crime-scene-further-evidence-quote-stuffing-manipulation-"&gt; original article&lt;/a&gt;  (&lt;a href="http://www.zerohedge.com/article/algorithmic-crop-circles-redux-rise-stock-market-machines-part-2"&gt;article part 2&lt;/a&gt;) (&lt;a href="http://www.nanex.net/20100506/FlashCrashAnalysis_Part1-1.html"&gt;flash crash article&lt;/a&gt;)&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; "&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;"&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Aside from the fact that it is illegal to indicate a quote &lt;strong&gt;without &lt;/strong&gt;a trade intent, this form of quote stuffing is in fact manipulative when conducted by HFT repeaters in specific "shapes" as it actually moves the NBBO actively higher or lower, in cases pushing the bid/offer range up to 10% higher &lt;span style="text-decoration: underline; "&gt;&lt;strong&gt;without even one trade ever having occurred&lt;/strong&gt;&lt;/span&gt;, simply by masking a big block order which other algos interpret as bid interest and pull all offers progressively or step function higher (or vice versa, although we have rarely if ever seen the walking &lt;em&gt;down &lt;/em&gt;of a stock over the past 18 months)."&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; "&gt;&lt;strong&gt;BATS "Flag Repeater". 15,000 quotes in 11 seconds, dropping the ASK price 1 penny each quote from $9.36 to $8.58 and back up again.&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; text-align: center; "&gt;&lt;a href="http://www.zerohedge.com/sites/default/files/images/user5/imageroot/trichet/1%201%20Nanex.png" style="text-decoration: none; color: rgb(30, 67, 154); "&gt;&lt;img src="http://www.zerohedge.com/sites/default/files/images/user5/imageroot/trichet/1%201%20Nanex_0.png" width="500" height="246" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; text-align: center; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; "&gt;&lt;strong&gt;07-29-10&lt;br /&gt;"The Crown". While not a large number of quotes, this NASDAQ/BATS Bidsize sequence was just too unusual to bypass.&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; text-align: center; "&gt;&lt;a href="http://www.zerohedge.com/sites/default/files/images/user5/imageroot/trichet/1%202%20nanex.png" style="text-decoration: none; color: rgb(30, 67, 154); "&gt;&lt;img src="http://www.zerohedge.com/sites/default/files/images/user5/imageroot/trichet/1%202%20nanex_0.png" width="500" height="247" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;strong&gt;07-27-10&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; "&gt;&lt;strong&gt;NASDAQ "Blotter". One of the more unusual repeating Asksize cycles.&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; text-align: center; "&gt;&lt;a href="http://www.zerohedge.com/sites/default/files/images/user5/imageroot/trichet/1%204%20nanex.png" style="text-decoration: none; color: rgb(30, 67, 154); "&gt;&lt;img src="http://www.zerohedge.com/sites/default/files/images/user5/imageroot/trichet/1%204%20nanex_0.png" width="500" height="246" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0.25em; margin-bottom: 0.75em; text-align: center; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5081081508670055824?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5081081508670055824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/stock-market-patterns-high-frequency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5081081508670055824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5081081508670055824'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/stock-market-patterns-high-frequency.html' title='Stock Market Patterns: High Frequency Trade &apos;Crop Circle&apos;'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5317115167857550104</id><published>2010-08-05T13:46:00.000-07:00</published><updated>2010-08-05T13:49:38.283-07:00</updated><title type='text'>Looks simple but ...</title><content type='html'>&lt;div&gt;(open images in a new window to see full size)&lt;/div&gt;&lt;div&gt;I'm really enjoying DB Optimizers simple drill down into SQL statements that hide complexity, for example this query looks pretty simple:&lt;/div&gt;&lt;img src="http://www.perfvision.com/blog/looks_simple/collapsed.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="647" height="176" /&gt;&lt;div&gt;but a simple double click into "BIG_STATEMENT2" shows me what's really going on:&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/blog/looks_simple/expanded.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="419" height="292" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5317115167857550104?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5317115167857550104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/looks-simple-but.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5317115167857550104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5317115167857550104'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/looks-simple-but.html' title='Looks simple but ...'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-2620935070943029368</id><published>2010-08-04T16:52:00.000-07:00</published><updated>2010-08-04T17:29:09.726-07:00</updated><title type='text'>Michigan OakTable Symposium</title><content type='html'>&lt;div&gt;I'm excited  to be speaking  about Visual SQL Tuning at Michigan OakTable Symposium.  The symposium sounds awesome with many of my favorite Oracle experts. Looks to be the mid-year northern version of HOTSOS.&lt;/div&gt;&lt;div&gt;&lt;a href="http://michiganoaktable.intuitwebsites.com/"&gt;http://michiganoaktable.intuitwebsites.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;"The Michigan OakTable Symposium will take place September 16-17th, 2010, in Ann Arbor, Michigan.  The Michigan OakTable Symposium brings together a world-class list of speakers on a variety of Oracle database subjects, with a focus on DBA and development subjects.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Due to the size of the conference hall, this event is strictly limited to 300 attendees!  This provides a unique opportunity for easy access to all speakers, with plenty of opportunities for one-on-one interaction, discussion, and networking, with the leading experts in Oracle database administration and development.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;A few of the confirmed speakers are:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;ACE Directors - Doug Burns, Alex Gorbachev, Jonathan Lewis, Cary Millsap, Mogens Norgaard, Tanel Poder&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;ACE's - Randolph Geist, Tim Gorman, Marco Gralike, Joze Senegacnik, Riyaj Shamsudeen, Chen Shapira"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-2620935070943029368?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/2620935070943029368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/michigan-oaktable-symposium.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2620935070943029368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2620935070943029368'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/michigan-oaktable-symposium.html' title='Michigan OakTable Symposium'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7627158829220428180</id><published>2010-08-03T20:45:00.000-07:00</published><updated>2010-08-31T13:51:46.789-07:00</updated><title type='text'>Oracle acquisitions</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From: &lt;a href="http://www.softwareadvice.com/distribution/"&gt;SoftwareAdvice.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;In this graphic of the size, type and timeline of &lt;a href="http://www.softwareadvice.com/articles/enterprise/oracle-mergers-acquisitions-whos-next-1080310/"&gt;Oracle acquisitions&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://www.softwareadvice.com/articles/wp-content/uploads/2010/08/SWA-050-oracleChart-100802.jpg" alt="" title="SWA-050-oracleChart-100802" width="500" height="892" class="aligncenter size-full wp-image-5143" /&gt;&lt;div&gt;Follow-up:&lt;/div&gt;&lt;div&gt;I played with the data a little myself. Unfortunately not as long as I would like since I was using Tableau and my Tableau license runs out today. Tableau was a fun way to play with the data, though I didn't find all the knobs and dials I wanted, but here is what I had so far:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(full size at &lt;a href="http://www.flickr.com/photos/kylehailey/4946414476/sizes/o/in/photostream/"&gt;http://www.flickr.com/photos/kylehailey/4946414476/sizes/o/in/photostream/ &lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4134/4946414476_6d7bf8198d_z.jpg" /&gt;&lt;/div&gt;&lt;div&gt;(full size at &lt;a href="http://www.flickr.com/photos/kylehailey/4946414510/sizes/o/in/photostream/"&gt;http://www.flickr.com/photos/kylehailey/4946414510/sizes/o/in/photostream/&lt;/a&gt; )&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm5.static.flickr.com/4147/4946414510_7a3a577b07_z.jpg" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7627158829220428180?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7627158829220428180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/oracle-acquisitions.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7627158829220428180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7627158829220428180'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/08/oracle-acquisitions.html' title='Oracle acquisitions'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4134/4946414476_6d7bf8198d_t.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6453618954026147929</id><published>2010-08-03T12:04:00.000-07:00</published><updated>2010-08-03T12:14:41.931-07:00</updated><title type='text'>Product Design : VST</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Arial, Verdana, sans-serif;font-size:13px;"&gt;&lt;p&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I think the VST diagrams are powerful on their  own but my original goal was to show the execution path on top of the diagram in order to look at to execution plans side by side and quickly see the differences which isn’t possible with textual explain plans. Here is an example of two explain plans in text and then graphically&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img src="http://3306767292640475449-a-1802744773732722657-s-sites.googlegroups.com/site/embtdbo/sql-tuning-1/q1b_filters_short_subquery_compare_text.PNG?attachauth=ANoY7cr_djjO_b49tcc5Wf_IqsOgwHctNJSqJHo0ZnLcM5JQURYw-xbKMY6lVGmeOFY2squwzojN_0C5YtG1DNZAfsFdROBBVfzPKp4AypN5A2s0o_ang8qoMuz3glXhPDXJVzZ9fP748eLLeeWrqYkcFEnFiLv1Y-WMXnf7sKnM9kPbh3TuVSUR20XhrZyxfNSVIYZY--DZ9bBSv46FwuqcccGv8wZ2m-zMceaoG_vJ9sDvEaUL5n7IV_VUnOgwvZpCHgD9RMkN&amp;amp;attredirects=1" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="632" height="421" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img src="http://www.perfvision.com/dbo/screenshots/q1_path_compare.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="655" height="239" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;This graphic was one of my attempts to show executions on top of the VST diagram, and I’ve been working with how best to show the order. Because the diagram layout stays the same, and the order is overlaid on top, it’s easy to compare them side by side. I can also see why original execution plan, on the left, was wrong. The original execution started at E which joins to C producing 198201422 rows (as seen on the join line), yet the query only returns 44,000 rows (not shown). Also table E has no filtering, really, since 99% of it's rows are returned after applying the filtering condition. The filtering is represented in blue to the bottom right of the table as a percentage of rows returned from the table. The query should start at A where there is 2% filter ratio. After starting at A we should join to C or B (which is a subquery) because the result set sizes are the smallest 85K and 642K respectively.    Making this change &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=" color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(via hints)  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=" color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;took this query from running over 24 hours to 5 minutes) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style=" color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Designing VST diagrams has been fun exciting and challenging.  I wonder if you can imagine this: Have you ever been rock climbing ? and I’m not talking about the gym, but out on real cliffs? If so you probably know that 99% of the time people use a route map that shows exactly where to go and that indeed there is a way to climb up and off the cliff and so you won’t get stuck halfway up with nowhere to go.  Climbing these routes is super scary and exciting, but the amazing thing is someone climbed them without a map, not knowing if they would get up 1000 feet and find that  there is no way to finish, and somehow have to get down, which might not even be possible given the gear . Seriously  life threatening.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;That’s what I think about writing a completely new way of tuning SQL.  Of course it’s not mortally life threatening &lt;/span&gt;&lt;/span&gt;&lt;span style=" color: rgb(31, 73, 125); font-family:Wingdings;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, but years of my life and my job are on the line. I have no idea where the end is, or what all the road blocks will be. I certainly didn’t when I started but I’m far enough along  to see that the diagrams  provide powerful information rapidly to the user in an easy to understand graphic way. Graphics can be misused even abused resulting worse information instead of better, but when graphics are used well they are much more powerful than the textual quantitative data.  The graphical diagrams are a great way to understand the relationships in the query faster than reading the query text. It’s sort of like looking at the Google map and seeing the route drawn verses having to read the directions. Both are important but I can understand  the route on map much faster than the directions, though I might want to read the directions after reading the map. The map with the route though is often all I need.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="color:#1F497D;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);   font-family:Georgia, serif;"&gt;&lt;a href="http://4.bp.blogspot.com/_fA5yrPv5jII/TFDMBphnq4I/AAAAAAAAQPo/D0ZFj_-q4dw/s1600/google_maps_n_directions.PNG"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img src="http://4.bp.blogspot.com/_fA5yrPv5jII/TFDMBphnq4I/AAAAAAAAQPo/D0ZFj_-q4dw/s400/google_maps_n_directions.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5499119473718176642" style="cursor: pointer; width: 400px; height: 333px; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I’m not able to store vast amounts of information and see all the permutations like some Oracle experts can. This can be a curse and a blessing. It’s a blessing because it makes me look for ways where I can understand the problem space with out having to buffer tons of information and such solutions are valuable to the general public. On the other hand its scary in that I don’t see all the possible problems, but that can be a blessing as well because I try to just concentrate on the solutions that have the biggest return, the biggest bang for the buck , the issues that can be most easily solved, instead of getting distracted the overwhelming possibilities and issues.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;In some ways the SQL optimization space seems overwhelming and in others ways it seems really small. I think that VST diagrams will help make the problem space seem much smaller, manageable and understandable as the VST diagrams mature.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6453618954026147929?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6453618954026147929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/product-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6453618954026147929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6453618954026147929'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/product-design.html' title='Product Design : VST'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fA5yrPv5jII/TFDMBphnq4I/AAAAAAAAQPo/D0ZFj_-q4dw/s72-c/google_maps_n_directions.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3711341282777832674</id><published>2010-07-30T13:10:00.000-07:00</published><updated>2010-07-30T14:17:14.463-07:00</updated><title type='text'>14 Minute video overview of DB Optimizer</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;There are a lot of powerful features in DB Optimizer so I put together a quick 14 minute video to go over them:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:Arial, Verdana, sans-serif;"&gt;&lt;ol style="list-style-type: decimal; "&gt;&lt;li style="display: block; text-align: left; padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; "&gt; &lt;a href="http://sites.google.com/site/embtdbo/startup-screen---getting-started/profiler.PNG?attredirects=0" imageanchor="1" style="color: rgb(78, 125, 191); outline-style: none; outline-width: initial; outline-color: initial; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; border-bottom-style: none; border-bottom-width: initial; border-bottom-color: initial; text-decoration: none; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;img border="0" src="http://sites.google.com/site/embtdbo/_/rsrc/1234482257314/startup-screen---getting-started/profiler.PNG" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; border-style: initial; border-color: initial; " /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://sites.google.com/site/embtdbo/profiler" style="color: rgb(85, 26, 139); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Profiler&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; - view database load, find top SQL and send SQL to SQL Tuner for tuning&lt;/span&gt;&lt;/li&gt;&lt;li style="display: block; text-align: left; padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; "&gt; &lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;img border="0" src="http://sites.google.com/site/embtdbo/_/rsrc/1234482241331/startup-screen---getting-started/editor.PNG" /&gt;  &lt;/span&gt;&lt;a href="http://sites.google.com/site/embtdbo/tuner" style="color: rgb(85, 26, 139); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Tuner&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; - supply a SQL statement and have DB Optimizer's SQL Tuner automatically tune the query&lt;/span&gt;&lt;/li&gt;&lt;li style="display: block; text-align: left; padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; "&gt; &lt;a href="http://sites.google.com/site/embtdbo/startup-screen---getting-started/tuner.PNG?attredirects=0" imageanchor="1" style="color: rgb(78, 125, 191); outline-style: none; outline-width: initial; outline-color: initial; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; border-bottom-style: none; border-bottom-width: initial; border-bottom-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;img border="0" src="http://sites.google.com/site/embtdbo/_/rsrc/1234482278252/startup-screen---getting-started/tuner.PNG" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;a href="http://sites.google.com/site/embtdbo/editor" style="color: rgb(85, 26, 139); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Editor &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;-  write and debug SQL code with code assistance and quick fixes           &lt;/span&gt;&lt;/li&gt;&lt;li style="display: block; text-align: left; padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; "&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;a href="http://sites.google.com/site/embtdbo/Home/load_editor_small.PNG?attredirects=0" imageanchor="1" style="color: rgb(78, 125, 191); outline-style: none; outline-width: initial; outline-color: initial; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; border-bottom-style: none; border-bottom-width: initial; border-bottom-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;img border="0" src="http://sites.google.com/site/embtdbo/_/rsrc/1243465417176/Home/load_editor_small.PNG" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;span style="font-family:arial, sans-serif;"&gt;&lt;span&gt;&lt;a href="http://sites.google.com/site/embtdbo/load-editor" style="color: rgb(85, 26, 139); outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Load Editor&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; - test SQL code with multiple concurrent users &lt;/span&gt;&lt;span style="font-family:Arial, Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13678043&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13678043&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/13678043"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DB Optimizer XE product demo&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; from &lt;/span&gt;&lt;a href="http://vimeo.com/user4049336"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Kyle Hailey&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; on &lt;/span&gt;&lt;a href="http://vimeo.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Vimeo&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3711341282777832674?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3711341282777832674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/14-minute-video-overview-of-db.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3711341282777832674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3711341282777832674'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/14-minute-video-overview-of-db.html' title='14 Minute video overview of DB Optimizer'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3641786427528014107</id><published>2010-07-27T13:26:00.000-07:00</published><updated>2010-07-27T14:08:01.290-07:00</updated><title type='text'>An iPad for your thoughts?</title><content type='html'>&lt;div&gt;Embarcadero s conducting a brief survey to learn more about database professionals what challenges do they face this year and day to day for that matter?What technologies and tools are they using, and which do they wish they had? Where is the database world headed? If you're a database professional or deal with databases for your organization, please take 5 minutes to complete this &lt;a href="http://app.en25.com/e/er.aspx?s=608&amp;amp;lid=3455&amp;amp;elq=0ed69b4509774729bcfd0b868d5c744d"&gt;survey&lt;/a&gt;. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Embarcadero knows your time is valuable. To thank you for your participation, Embarcadero are offering a chance to win an iPad. All results and comments will be kept anonymous.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3641786427528014107?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3641786427528014107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/ipad-for-your-thoughts.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3641786427528014107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3641786427528014107'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/ipad-for-your-thoughts.html' title='An iPad for your thoughts?'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3186764576172062226</id><published>2010-07-26T16:42:00.000-07:00</published><updated>2010-07-26T16:52:25.903-07:00</updated><title type='text'>Oracle 10053 SQL Trace Viewer</title><content type='html'>The infamous 10053 trace is probably the most extensive trace for understanding why the Oracle optimizer chose a query's execution path (also see event 10132 at level 1). The 10053 trace can been large, cumbersome and tedious to read. Finally help is on the way. See Jonathan Lewis' blog at&lt;div&gt;&lt;a href="http://jonathanlewis.wordpress.com/2010/04/30/10053-viewer/"&gt;http://jonathanlewis.wordpress.com/2010/04/30/10053-viewer/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://jonathanlewis.files.wordpress.com/2010/04/picture2.png?w=696&amp;amp;h=517" class="aligncenter size-full wp-image-3579" title="10053 viewer" alt="" width="696" height="517" /&gt;&lt;/div&gt;&lt;div&gt;download at &lt;a href="http://www.oaktable.net/sites/default/files/new_treeview.zip.doc"&gt;http://www.oaktable.net/sites/default/files/new_treeview.zip.doc&lt;/a&gt;&lt;/div&gt;&lt;div&gt;(rename and take the ".doc" extension off)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3186764576172062226?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3186764576172062226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracle-10053-sql-trace-viewer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3186764576172062226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3186764576172062226'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracle-10053-sql-trace-viewer.html' title='Oracle 10053 SQL Trace Viewer'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6703124396193018566</id><published>2010-07-25T21:29:00.000-07:00</published><updated>2010-08-01T21:44:07.887-07:00</updated><title type='text'>New VST graphics coming in DB Optimizer 2.5.1</title><content type='html'>&lt;div&gt;I'm excited about the upcoming minor release of DB Optimizer in a few weeks, 2.5.1. Version 2.5.1 will have graphics for outer joins, in/exists, and not it/not exists as well as diagramming the embedded nature of the subqueries:&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_fA5yrPv5jII/TE0PU_TwQPI/AAAAAAAAQPY/MeW5LeiRMbA/s1600/sq4.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_fA5yrPv5jII/TE0PU_TwQPI/AAAAAAAAQPY/MeW5LeiRMbA/s400/sq4.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5498067573355331826" style="cursor: pointer; width: 400px; height: 248px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Subqueries are expandable and collapsible in the VST diagram by right clicking on them and choosing "expand" or "collapse".&lt;/div&gt;&lt;div&gt;The diagram will also have a new optional legend to explain the parts:&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fA5yrPv5jII/TE0PaiNt3LI/AAAAAAAAQPg/zeSnUNPSRow/s1600/sq2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://3.bp.blogspot.com/_fA5yrPv5jII/TE0PaiNt3LI/AAAAAAAAQPg/zeSnUNPSRow/s400/sq2.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5498067668624596146" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fA5yrPv5jII/TE0PaiNt3LI/AAAAAAAAQPg/zeSnUNPSRow/s1600/sq2.PNG"&gt;&lt;/a&gt;and as always the text and the graphics will be interactive and correlated as we can see by the text of the subquery being highlighted after the subquery had been clicked on in the diagram.&lt;br /&gt;Can't wait for version 3.0 where we plan to visual show the flow of the execution path on top of the diagram as well as visually diagramming remote tables (for example at dblinks) and partitions (partitions are already show under table statistics).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;see blog post&lt;/div&gt;&lt;div&gt;&lt;a href="http://db-optimizer.blogspot.com/2010/06/more-vst-notation.html"&gt;http://db-optimizer.blogspot.com/2010/06/more-vst-notation.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;for the sql text&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6703124396193018566?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6703124396193018566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/new-vst-graphics-coming-in-db-optimizer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6703124396193018566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6703124396193018566'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/new-vst-graphics-coming-in-db-optimizer.html' title='New VST graphics coming in DB Optimizer 2.5.1'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fA5yrPv5jII/TE0PU_TwQPI/AAAAAAAAQPY/MeW5LeiRMbA/s72-c/sq4.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-469232099542829632</id><published>2010-07-23T12:05:00.000-07:00</published><updated>2010-07-23T12:07:42.544-07:00</updated><title type='text'>Speaking at the InSync10 event in Melbourne</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(80, 80, 80); line-height: 18px; "&gt;&lt;h1 class="post-title" style="display: inline; color: rgb(242, 101, 34); font-size: 14pt; text-decoration: none; font-weight: normal; "&gt;&lt;a href="http://database-administration.net/kyle-hailey-to-speak-at-the-insync10-event-in-melbourne" rel="bookmark" title="Permanent Link to Kyle Hailey To Speak at the InSync10 event in Melbourne" style="color: rgb(80, 80, 80); text-decoration: none; "&gt;I'll be speaking at the &lt;/a&gt;&lt;a href="http://database-administration.net/kyle-hailey-to-speak-at-the-insync10-event-in-melbourne"&gt;InSync10&lt;/a&gt;&lt;a href="http://database-administration.net/kyle-hailey-to-speak-at-the-insync10-event-in-melbourne" rel="bookmark" title="Permanent Link to Kyle Hailey To Speak at the InSync10 event in Melbourne" style="color: rgb(80, 80, 80); text-decoration: none; "&gt; event in Melbourne&lt;/a&gt;&lt;/h1&gt;&lt;div class="story-content"&gt;&lt;p&gt;about Database Performance Made Easy at the InSync10 event in Melbourne, Australia 16 Aug, 3:30pm, &lt;a href="http://bit.ly/bi5xLj" style="color: rgb(242, 101, 34); text-decoration: none; "&gt;http://bit.ly/bi5xLj&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.insync-conference.com.au/index.php?p=1_43" style="color: rgb(242, 101, 34); text-decoration: none; "&gt;&lt;img border="0" align="right" src="http://www.insync-conference.com.au/images/GoingToInsync10_large.png" style="margin-top: 20px; margin-right: 5px; margin-bottom: 0px; margin-left: 30px; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;InSync10 provides the most complete conference program developed by Oracle customers for Oracle customers&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.insync-conference.com.au/web_documents/insync10programme.pdf" style="color: rgb(242, 101, 34); text-decoration: none; "&gt;&lt;u&gt;See full two day program of high calibre speakers&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;This year’s conference theme is "Innovate, Interact, Educate and Maximise the Use of Your Oracle Software". InSync10 promises the most comprehensive Oracle applications and database agenda outside the US with the largest number of Oracle customers in one place.&lt;/p&gt;&lt;p&gt;Streams include Database, Middleware and Applications. This foremost event will showcase over 100 speakers from around Australia, New Zealand and further afield, with updates, presentations and reports from senior Oracle staff as well as an array of presentations from Oracle users.&lt;/p&gt;&lt;p&gt;You can’t afford to miss this opportunity to get "insync" with other Oracle users to share ideas and expand your knowledge. How do you get more value from your Oracle solutions? Come to InSync10 and find out. Join like-minded peers and share ideas, innovation and solutions.&lt;br /&gt;Add yourself to our &lt;a href="mailto:info@insync-conference.com.au?subject=InSync10%20Mailing%20List" style="color: rgb(242, 101, 34); text-decoration: none; "&gt;email list&lt;/a&gt; and hear the latest. &lt;a href="http://www.insync-conference.com.au/index.php?p=1_9" style="color: rgb(242, 101, 34); text-decoration: none; "&gt;Registration now open.&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" hspace="15" vspace="5" align="left" src="http://www.insync-conference.com.au/images/k_hailey_headshot.gif" /&gt;&lt;b&gt;Kyle Hailey&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Program Manager, Database Performance and Optimization Products, Embarcadero Technologies&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Kyle Hailey joined Embarcadero with a goal of producing the easiest, most powerful tools for database performance tuning in the industry. Prior to Embarcadero, Kyle worked on a complete redesign of the Oracle Enterprise Manager 10g performance pages. His input shifted the screens away from confusing clutter to simple-yet-powerful graphics based on session load and wait bottlenecks, and this design continues to be the foundation of OEM 11g. Kyle has a long and distinguished career in the database world, having also worked for Oracle, Quest and other organizations on database performance tuning and optimization. He has designed tools to improve high-end performance monitoring, such as direct memory attach to bypass SQL and interactive graphic displays of performance data. Kyle presents regularly at industry conferences and teaches database performance tuning classes around the world.&lt;/p&gt;&lt;/div&gt;&lt;div class="metawrap"&gt;&lt;p&gt;posted in &lt;a href="http://database-administration.net/category/database-tools" title="View all posts in database tools" rel="category tag" style="color: rgb(242, 101, 34); text-decoration: none; "&gt;database tools&lt;/a&gt; by admin&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-469232099542829632?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/469232099542829632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/speaking-at-insync10-event-in-melbourne.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/469232099542829632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/469232099542829632'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/speaking-at-insync10-event-in-melbourne.html' title='Speaking at the InSync10 event in Melbourne'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7399526811966171011</id><published>2010-07-22T06:59:00.001-07:00</published><updated>2010-08-03T16:15:41.109-07:00</updated><title type='text'>"If I can't picture it, I can't understand it." - Albert Einstein</title><content type='html'>&lt;span class="Apple-style-span"   style="  color: rgb(28, 91, 167); line-height: 20px; font-family:'Big Caslon', 'Book Antiqua', Garamond, 'Times New Roman', Times, serif;font-size:14px;"&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;New book recommendation:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;  Refactoring SQL Applications by Stephan Faroult&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;I found the book easy to read, well thought out and covers efficiently designing code to access the database, efficiently designing SQL and how to refactor existing applications and testing the results for accuracy and performance. Excellent book. What's that have to do with pictures and visualization? Stephan Faroult includes some new and innovative ways to visually represent SQL statements in such a way as to see patterns and problems. Look to see these methods in a future version of DB Optimizer! In discussion DB Optimizer with Stephan, he mention a quote that rings so true for me:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;"If I can't picture it, I can't understand it."  - Albert Einstein:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Along the same lines&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;"It is impossible to even think without a mental picture." - Aristotle:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;"Man's mind cannot understand thoughts without images of them." -  Thomas Aqunias:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;"The evolution of images is a kind of intermediate between that of the perceptions and that of the intelligence."  - Jean Piaget:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Mathematics is cognitive process-thinking-that requires the dual coding of imagery and language. Imagery is fundamental to the process of thinking with numbers. Albert Einstein, whose theories of relativity helped explain our universe, used imagery as the base for his mental processing and problem solving. Perhaps he summarized the importance of imagery best when he said, "If I can't picture it, I can't understand it." - NANCI BELL AND KIMBERLY TULEY&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;One of my favorite examples of the power of graphics to easily, quickly and powerful display quantitative information is Anscombe's Quartet. From &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal; line-height: 19px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Anscombe's_quartet"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;http://en.wikipedia.org/wiki/Anscombe's_quartet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal; line-height: 19px; "&gt;&lt;table class="wikitable" border="1" style="background-color: rgb(249, 249, 249); margin-top: 1em; margin-right: auto; margin-bottom: 1em; margin-left: auto; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-collapse: collapse; text-align: center; "&gt;&lt;caption style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Anscombe's Quartet&lt;/span&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th colspan="2" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;I&lt;/span&gt;&lt;/th&gt;&lt;th colspan="2" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;II&lt;/span&gt;&lt;/th&gt;&lt;th colspan="2" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;III&lt;/span&gt;&lt;/th&gt;&lt;th colspan="2" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;IV&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;x&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;y&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;x&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;y&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;x&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;y&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;x&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;y&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.04&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.14&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;10.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.46&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.58&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.95&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.14&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.77&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.76&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;13.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.58&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;13.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.74&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;13.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12.74&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.71&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.81&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.77&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.11&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.84&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;11.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.33&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;11.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.26&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;11.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.81&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.47&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;14.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.96&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;14.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.10&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;14.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.84&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.04&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.24&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.13&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.08&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.25&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4.26&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3.10&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.39&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;19.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12.50&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;10.84&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;9.13&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;12.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.15&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.56&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4.82&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.26&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.42&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;7.91&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.68&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;4.74&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;5.73&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;8.0&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;6.89&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="text-align: center;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Anscombe%27s_quartet_3.svg/425px-Anscombe%27s_quartet_3.svg.png" alt="" width="425" height="309" class="thumbimage" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Edward Tufte uses this example from Anscombe to show 4 datasets of x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;and y that have the same mean, standard deviation, and regression&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;line, but which are qualitatively different. -  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://matplotlib.sourceforge.net/examples/pylab_examples/anscombe.html"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;http://matplotlib.sourceforge.net/examples/pylab_examples/anscombe.html&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/dt&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7399526811966171011?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7399526811966171011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/if-i-cant-picture-it-i-cant-understand.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7399526811966171011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7399526811966171011'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/if-i-cant-picture-it-i-cant-understand.html' title='&quot;If I can&apos;t picture it, I can&apos;t understand it.&quot; - Albert Einstein'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-1483146550576854267</id><published>2010-07-06T13:18:00.000-07:00</published><updated>2010-07-06T15:48:56.734-07:00</updated><title type='text'>Oracle's SQL Tuning Pack - part 3</title><content type='html'>How does the STA work in 11gR2 with the query from "Oracle's SQL Tuning Pack - part 2" ?&lt;div&gt;&lt;br /&gt;Here is the view on the Top Activity Page:&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/STA_part3/sql_tuning_advisor_load_oem3.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="670" height="398" /&gt;&lt;/div&gt;&lt;div&gt;The first spike is when I ran the query.  I pass the gray window over the spike and selected the first query and submitted it to the tuner. The rest of the load, the next 30 minutes is the STA running trying to find a better plan. After 30 minutes the STA times out saying not better plan found.&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/STA_part3/sql_tuning_advisor_11g_error.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="670" height="400" /&gt;&lt;/div&gt;&lt;div&gt;On 10gR2 the STA finishes in less than 2 minutes and finds a profile though the profile puts a higher load on the database for this query. On 11gR2, the STA runs for 30 and times out without finding any suggestions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Here is a video on Vimeo of the tuning with DB Optimizer which takes less than 60 seconds to find a faster plan:&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12629768&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=12629768&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-1483146550576854267?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/1483146550576854267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1483146550576854267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1483146550576854267'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-3.html' title='Oracle&apos;s SQL Tuning Pack - part 3'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5503327565612910834</id><published>2010-07-06T11:17:00.000-07:00</published><updated>2010-07-22T19:41:04.624-07:00</updated><title type='text'>Oracle's SQL Tuning Pack, part 2</title><content type='html'>&lt;img src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor2/dbo2a_def_sta_dbo_annotated.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="694" height="208" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Above its the load produced by the same load. Its a query being run by 10 users 20 times with a sleep of random interval between 1-2 seconds.&lt;br /&gt;The graph measures the load on the database. Green is CPU, blue is IO and the redish brown is concurrency.&lt;/div&gt;&lt;div&gt;First, on the left is the load of the original default execution plan. &lt;/div&gt;&lt;div&gt;Second, in the middle is the load  after applying a profile from the SQL Tuning Advisor (STA).&lt;/div&gt;&lt;div&gt;Third, on the right is the load after having been tuned by DB Optimizer.&lt;/div&gt;&lt;div&gt;All this goes to show that the STA's profile can be sub-optimal even when a better plan exists.&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor2/oem2a_def_sta_dbo.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="695" height="364" /&gt;&lt;/div&gt;&lt;div&gt;Here is the view of the same load from the "Statistics" tab of the SQL Details in OEM 10g.&lt;/div&gt;&lt;div&gt;First, dark blue, is load from the default path.&lt;/div&gt;&lt;div&gt;Second, light blue is the load from the STA suggested profile.&lt;/div&gt;&lt;div&gt;Third is the load after tuning the query with DB Optimizer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the query, actually a Peoplesoft query, &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;SELECT&lt;br /&gt;A.COMPANY,&lt;br /&gt;A.PAYGROUP,&lt;br /&gt;E.OFF_CYCLE,&lt;br /&gt;E.SEPCHK_FLAG,&lt;br /&gt;E.TAX_METHOD,&lt;br /&gt;E.TAX_PERIODS,&lt;br /&gt;C.RETROPAY_ERNCD,&lt;br /&gt;SUM (C.AMOUNT_DIFF) SUM_AMOUNT&lt;br /&gt;FROM&lt;br /&gt;PS_PAY_CALENDAR A,&lt;br /&gt;WB_JOB B,&lt;br /&gt;WB_RETROPAY_EARNS C,&lt;br /&gt;PS_RETROPAY_RQST D,&lt;br /&gt;PS_RETROPAYPGM_TBL E&lt;br /&gt;WHERE&lt;br /&gt;A.RUN_ID = 'PD2' AND&lt;br /&gt;A.PAY_CONFIRM_RUN = 'N' AND&lt;br /&gt;B.COMPANY = A.COMPANY AND&lt;br /&gt;B.PAYGROUP = A.PAYGROUP AND&lt;br /&gt;E.OFF_CYCLE = A.PAY_OFF_CYCLE_CAL AND&lt;br /&gt;B.EFFDT = (SELECT MAX (F.EFFDT)&lt;br /&gt;FROM WB_JOB F&lt;br /&gt;WHERE&lt;br /&gt;  F.EMPLID = B.EMPLID AND&lt;br /&gt;  F.EMPL_RCD# = B.EMPL_RCD# AND&lt;br /&gt;  F.EFFDT &lt; = A.PAY_END_DT) AND&lt;/pre&gt;&lt;pre&gt;       B.EFFSEQ = (SELECT MAX (G.EFFSEQ)&lt;br /&gt;FROM WB_JOB G&lt;br /&gt;WHERE&lt;br /&gt;    G.EMPLID = B.EMPLID AND&lt;br /&gt;    G.EMPL_RCD# = B.EMPL_RCD# AND&lt;br /&gt;    G.EFFDT = B.EFFDT) AND&lt;br /&gt;C.EMPLID = B.EMPLID AND&lt;br /&gt;C.EMPL_RCD# = B.EMPL_RCD# AND&lt;br /&gt;C.RETROPAY_PRCS_FLAG = 'C' AND&lt;br /&gt;C.RETROPAY_LOAD_SW = 'Y' AND&lt;br /&gt;D.RETROPAY_SEQ_NO = C.RETROPAY_SEQ_NO AND&lt;br /&gt;E.RETROPAY_PGM_ID = D.RETROPAY_PGM_ID&lt;br /&gt;GROUP BY&lt;br /&gt;A.COMPANY,&lt;br /&gt;A.PAYGROUP,&lt;br /&gt;E.OFF_CYCLE,&lt;br /&gt;E.SEPCHK_FLAG,&lt;br /&gt;E.TAX_METHOD,&lt;br /&gt;E.TAX_PERIODS,&lt;br /&gt;C.RETROPAY_ERNCD; &lt;/pre&gt;&lt;br /&gt;For the courageous or bored with idle time, the dmp and SQL are available at&lt;div&gt;&lt;a href="http://www.perfvision.com/ftp/tcf/TC1.zip"&gt;http://www.perfvision.com/ftp/tcf/TC1.zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and for kicks, the query's VST diagram&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor2/query_vst.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="597" height="308" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Couple of thoughts questions in my mind. &lt;/div&gt;&lt;div&gt;First if the reason for picking sub-optimal path in the first place is due to a bug, then  it would make some sense that the the STA would still have the same bug and make the same mistakes. &lt;/div&gt;&lt;div&gt;Second, I wonder if the STA is really trying to find better plans, or if it is trying to pull the statistics used by the optimizer more in line with the actual statistics that would happen when running the query along the lines of TCF or tuning by cardinality feedback. When I look at the hints in profile the are of the nature of skewing stats one way or another:&lt;/div&gt;&lt;pre&gt;OPT_ESTIMATE(@"SEL$485D066A", TABLE, "C"@"SEL$1", SCALE_ROWS=4.412144743)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", INDEX_SKIP_SCAN, "C"@"SEL$1", WBBRETROPAY_EARNS, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", JOIN, ("B"@"SEL$1", "A"@"SEL$1"), SCALE_ROWS=12.28434396)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", JOIN, ("B"@"SEL$1", "VW_SQ_2"@"SEL$09936D23"), SCALE_ROWS=3.049755426)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", INDEX_SKIP_SCAN, "C"@"SEL$1", WB_RETROPAY_EARNS_IDX1, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", INDEX_FILTER, "C"@"SEL$1", WB_RETROPAY_EARNS_IDX1, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", JOIN, ("C"@"SEL$1", "B"@"SEL$1", "A"@"SEL$1", "VW_SQ_2"@"SEL$09936D23"), SCALE_ROWS=15.63082791)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", JOIN, ("C"@"SEL$1", "B"@"SEL$1", "A"@"SEL$1"), SCALE_ROWS=5.133606627)&lt;br /&gt;OPT_ESTIMATE(@"SEL$485D066A", JOIN, ("B"@"SEL$1", "A"@"SEL$1", "VW_SQ_2"@"SEL$09936D23"), SCALE_ROWS=37.50606343)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", TABLE, "C"@"SEL$1", SCALE_ROWS=4.412144743)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", INDEX_SKIP_SCAN, "C"@"SEL$1", WBBRETROPAY_EARNS, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", JOIN, ("B"@"SEL$1", "A"@"SEL$1"), SCALE_ROWS=9.626410845)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", INDEX_SKIP_SCAN, "C"@"SEL$1", WB_RETROPAY_EARNS_IDX1, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", JOIN, ("E"@"SEL$1", "D"@"SEL$1", "C"@"SEL$1", "B"@"SEL$1", "A"@"SEL$1"), SCALE_ROWS=3.896066538)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", INDEX_FILTER, "C"@"SEL$1", WB_RETROPAY_EARNS_IDX1, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$B186933D", JOIN, ("E"@"SEL$1", "B"@"SEL$1", "A"@"SEL$1"), SCALE_ROWS=9.626410845)&lt;br /&gt;OPT_ESTIMATE(@"SEL$6E19F182", TABLE, "C"@"SEL$1", SCALE_ROWS=4.412144743)&lt;br /&gt;OPT_ESTIMATE(@"SEL$6E19F182", INDEX_FILTER, "C"@"SEL$1", WB_RETROPAY_EARNS_IDX1, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$6E19F182", INDEX_SKIP_SCAN, "C"@"SEL$1", WBBRETROPAY_EARNS, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;OPT_ESTIMATE(@"SEL$6E19F182", INDEX_SKIP_SCAN, "C"@"SEL$1", WB_RETROPAY_EARNS_IDX1, SCALE_ROWS=3.642257471e-005)&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;The above profile "hints" are mostly concerning scaling the expected rows.&lt;/div&gt;&lt;div&gt;Speaking of TCF it's interesting to not that in DB Optimizer the TCF values of estimate verses actual come out closer in the optimize query verses the original.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Below are the explain plans for the default plan, plan with profile and the DB Optimizer tuned plan. Notice the "Orders of Magnitude" column. This column shows the orders of magnitude that the estimated rows  differed from the actual rows per line in the execution plan. The larger the difference the bigger the discrepancy between what the optimizer expected and what actually happened&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Default Plan and TCF&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/STA_part3/tcf_default.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="597" height="352" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Profile Explain and TCF&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/STA_part3/tcf_profile.PNG" width="597" height="282" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;DB Optimized Plan and TCF&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.perfvision.com/dbo/STA_part3/tcf_tuned.PNG" style="-webkit-user-select: none; cursor: -webkit-zoom-in; " width="596" height="289" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ironically the plan using the profile has the worst TCF discrepancies &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5503327565612910834?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5503327565612910834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5503327565612910834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5503327565612910834'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-part-2.html' title='Oracle&apos;s SQL Tuning Pack, part 2'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-434427246560078918</id><published>2010-07-01T16:52:00.000-07:00</published><updated>2010-07-01T17:52:47.094-07:00</updated><title type='text'>Oracle's SQL Tuning Pack - how well does it work?</title><content type='html'>Have you used Oracle's SQL Tuning Pack? What were your experiences like?&lt;br /&gt;At my last consulting gig 2 out 3 statements I "tuned" with the SQL tuning pack  actually ran significantly more slowly after applying the profiles recommended. I thought it was just my bad karma and luck of the draw until recently. Recently I've started asking other DBAs what their experiences were and generally finding less than enthusiastic responses. In the classes on Oracle 10g and OEM, I've always cautioned that profiles should not be blindly trusted and give an example using a Swingbench query where the SQL runs more slowly after the profile.If applying the profile, I recommend to jump immediately to the SQL performance page and to verify the effect of the profile on the load of the query.&lt;br /&gt;&lt;a href="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/impliment1.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/impliment1.PNG" border="0" alt="" style="cursor: pointer; width: 650px; height: 280px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Above is a page from OEM after the SQL Tuning Advisor has been run, a profile is suggested, and now I can implement the profile.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/verify2.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/verify2.PNG" border="0" alt="" style="cursor: pointer; width: 650px; height: 280px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After the profile has been implemented, I'd recommend clicking on the SQL_ID to see go to the SQL details page and see what the new execution plan looks like on the load chart&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/load3.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 400px;" src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/load3.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the above SQL details we can see the new execution plan hash 467377872 and that it's load is now higher. The number of executions by the application, swingbench remained the same, but the load by the SQL statement with the new profile is higher.&lt;br /&gt;At this point I'd click on "Tuning Information" and back out the profile.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/backout4.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 650px; height: 400px;" src="http://www.perfvision.com/dbo/blog_sql_tuning_advisor/backout4.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I thought the above example was a fluke along with the couple of bad experiences I had at a customer site but after asking a number of other DBAs who have used the SQL Tuning Advisor and who have responded less than enthusiastically, I'm now curious to poll a wider audience.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A couple of thoughts: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One, I think the reason the STA's profile created more load is because the application, swingbench, actually only uses one row from the query result set and ignores the rest of the result set. I'm guessing that the STA tuned the query for the entire result set.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Two, it seems to be a serious flaw that the STA doesn't actually run the query with the new profile to compare the before and after. At least this should be offered as an option.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It seems that Oracle 11 will address some of this issues in a round about way with SQL baselines and the evolve. See &lt;a href="http://www.oracle.com/technology/oramag/oracle/09-mar/o29spm.html"&gt;http://www.oracle.com/technology/oramag/oracle/09-mar/o29spm.html&lt;/a&gt; &lt;/div&gt;&lt;div&gt;From the above link, for example&lt;/div&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;                     Baseline Plan       Test Plan   Improv. Ratio&lt;br /&gt;                     --------------      ---------   -------------&lt;br /&gt;Execution Status:          COMPLETE       COMPLETE&lt;br /&gt;Rows Processed:                   0              0&lt;br /&gt;Elapsed Time(ms):              5036           1033         4.88&lt;br /&gt;CPU Time(ms):                   254            700          .36&lt;br /&gt;Buffer Gets:                   1728          43945          .04&lt;br /&gt;Disk Reads:                     254             22        11.55&lt;br /&gt;Direct Writes:                    0              0&lt;br /&gt;Fetches:                         49             22         2.23&lt;br /&gt;Executions:                       1              1&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;Though I haven't investigated how the SQL Baselines and the evolve option are incorporated in OEM 11g.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-434427246560078918?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/434427246560078918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-how-well-does.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/434427246560078918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/434427246560078918'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/07/oracles-sql-tuning-pack-how-well-does.html' title='Oracle&apos;s SQL Tuning Pack - how well does it work?'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5323294154861664526</id><published>2010-06-22T17:16:00.000-07:00</published><updated>2010-06-22T17:20:40.316-07:00</updated><title type='text'>DB Optimizer Demo Webinar June 22 @ 9am PST</title><content type='html'>We had almost 2000 people sign up for the webinar on SQL tuning with Jonathan Lewis and I. After the webinar many people had questions on how to harness DB Optimizer for performance tuning on their database whether DB2, SQL Server, Oracle or Sybase so&lt;br /&gt;tomorrow, June 22 at 9am PST I'll be giving a live demo of the different parts of DB Optimizer and how to use them.&lt;br /&gt;To view this webinar sign up at&lt;br /&gt;&lt;a href="http://forms.embarcadero.com/forms/AMUSCA1006DBOpti25Web-ZandyKrisher"&gt;http://forms.embarcadero.com/forms/AMUSCA1006DBOpti25Web-ZandyKrisher&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5323294154861664526?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5323294154861664526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/db-optimizer-demo-webinar-june-22-9am.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5323294154861664526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5323294154861664526'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/db-optimizer-demo-webinar-june-22-9am.html' title='DB Optimizer Demo Webinar June 22 @ 9am PST'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-459893841693711512</id><published>2010-06-16T10:46:00.000-07:00</published><updated>2010-06-16T11:28:57.231-07:00</updated><title type='text'>Data Structures: Knuth Got It Wrong</title><content type='html'>&lt;div&gt;(Via Slashdot &lt;a href="http://developers.slashdot.org/story/10/06/14/2225251/Knuth-Got-It-Wrong"&gt;http://developers.slashdot.org/story/10/06/14/2225251/Knuth-Got-It-Wrong&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Full article at &lt;a href="http://queue.acm.org/detail.cfm?id=1814327"&gt;http://queue.acm.org/detail.cfm?id=1814327&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Data structures and how data is grouped, stored and manipulated seems to be a lost art in computer programming yet it's the cornerstone to programming.&lt;/div&gt;&lt;div&gt;&lt;div&gt;Poul-Henning Kamp's article is a refreshingly clear perspective on performance and datastructures, check it out.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reminds me somewhat of the Oracle notion of how deep is your index&lt;/div&gt;&lt;div&gt;   &lt;a href="http://4.bp.blogspot.com/_fA5yrPv5jII/TBkP6XY_mpI/AAAAAAAAQN4/vMaK-YgTulc/s1600/kamp5.png"&gt;&lt;img src="http://4.bp.blogspot.com/_fA5yrPv5jII/TBkP6XY_mpI/AAAAAAAAQN4/vMaK-YgTulc/s400/kamp5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5483431516685965970" style="cursor: pointer; width: 200px; height: 110px; " /&gt;&lt;/a&gt;   &lt;a href="http://2.bp.blogspot.com/_fA5yrPv5jII/TBkU2WuNYwI/AAAAAAAAQOA/A28CT9NsC9M/s1600/kamp6.png"&gt;&lt;img src="http://2.bp.blogspot.com/_fA5yrPv5jII/TBkU2WuNYwI/AAAAAAAAQOA/A28CT9NsC9M/s400/kamp6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5483436945345176322" style="cursor: pointer; width: 200px; height: 110px; " /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;div&gt;&lt;a href="http://queue.acm.org/detail.cfm?id=1814327"&gt;&lt;/a&gt;As you can see the traditional binary heap, on left,  is deeper than the new structure, the "b-heap", on the right. The "b-heap" is slightly computationally more expensive but if less pages are visited avoiding visiting any paged out pages, the "b-heap" will perform much better.&lt;/div&gt;&lt;div&gt;The article goes into detail quite normal situations where the new structure performs an order of magnitude better than the traditional binary heap.&lt;br /&gt;&lt;div&gt;(thanks to Mark Bobak for sharing this link with me)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-459893841693711512?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/459893841693711512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/data-structures-knuth-got-it-wrong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/459893841693711512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/459893841693711512'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/data-structures-knuth-got-it-wrong.html' title='Data Structures: Knuth Got It Wrong'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fA5yrPv5jII/TBkP6XY_mpI/AAAAAAAAQN4/vMaK-YgTulc/s72-c/kamp5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-410856047617980290</id><published>2010-06-14T14:10:00.001-07:00</published><updated>2010-06-15T13:32:47.178-07:00</updated><title type='text'>Jonathan Lewis / Kyle Hailey  Webinar Replay</title><content type='html'>Thanks to everyone who joined for the webinar with Jonathan Lewis last Thursday. I've been getting a number of inquiries asking if the webinar was recorded. The webinar was recorded and you can view it at&lt;br /&gt;&lt;a href="http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey"&gt;http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey&lt;/a&gt;&lt;br /&gt;Here is a snippet from my part using DB Optimizer&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EoDnR02S2WA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/EoDnR02S2WA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;It's a bit fuzzy on youtube. The real presentation is high quality.&lt;br /&gt;Here is a clear image from DB Optimizer:&lt;br /&gt;&lt;a href="http://www.perfvision.com/dbo/screenshots/dbo_jl_diagram.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/screenshots/dbo_jl_diagram.PNG" border="0" alt="" style="cursor: pointer; width: 485px; height: 244px; " /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-410856047617980290?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/410856047617980290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/jonathan-lewis-webinar-replay.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/410856047617980290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/410856047617980290'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/jonathan-lewis-webinar-replay.html' title='Jonathan Lewis / Kyle Hailey  Webinar Replay'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5981992750501394981</id><published>2010-06-08T13:01:00.000-07:00</published><updated>2010-06-28T10:27:17.921-07:00</updated><title type='text'>Cursor_sharing : a picture is worth a 1000 words</title><content type='html'>Anyone who has been around Oracle performance over the years knows the grief that hard parsing SQL queries can cause on highly concurrent applications. The number one reason for hard parsing has been applications that don't use bind variables. Without bind variables queries that would otherwise be shared get recompiled because their text is different and Oracle treats them as different queries. Oracle addressed this issue with a parameter called cursor_sharing. The parameter cursor_sharing has three values&lt;br /&gt;exact - the default&lt;br /&gt;similar - replace literals with bind variables, if a histogram keep literal in place&lt;br /&gt;force - replace literals with bind variables and use existing plan if it exists&lt;br /&gt;Here is what the load looks like going from the default, exact, to the value force on a load of the same query but a query that doesn't use bind variables:&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/dbo/screenshots/exact_force_annotate.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/screenshots/exact_force_annotate.PNG" border="0" alt="" style="cursor: pointer; width: 560px; height: 418px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;looks like a significant load savings - impressive!&lt;/div&gt;&lt;div&gt;Now many people tell me that they think there are bugs with "force" and that you should use "similar". The value similar does a similar thing but if there are histograms on the column, then Oracle will attempt, in certain cases, to have different plans based on different values. Sounds cool huh? Well their are bugs. Here is the same load with similar:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/dbo/screenshots/exact_force_similar_annotate2.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/screenshots/exact_force_similar_annotate2.PNG" border="0" alt="" style="cursor: pointer; width: 570px; height: 520px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;If we look at the different child cursors for this statement we find that Oracle, instead of sharing the children creates a different one for each execution:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/dbo/screenshots/children.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/screenshots/children.PNG" border="0" alt="" style="cursor: pointer; width: 439px; height: 241px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;This bug still seems to exist on 11gR2 :&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.perfvision.com/dbo/screenshots/exact_force_similar_11g.PNG"&gt;&lt;img src="http://www.perfvision.com/dbo/screenshots/exact_force_similar_11g.PNG" border="0" alt="" style="cursor: pointer; width: 570px; height: 515px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Here is the code for the examples I (run by 8 users on 10g and 12 users on 11g)&lt;/div&gt;&lt;div&gt;&lt;pre&gt;--alter session set cursor_sharing=exact;&lt;br /&gt;--alter session set cursor_sharing=force;&lt;br /&gt;--alter session set cursor_sharing=similar;&lt;br /&gt;declare&lt;br /&gt; l_cursor integer default 0;&lt;br /&gt; stmt varchar2(400);&lt;br /&gt; ret number;&lt;br /&gt;BEGIN&lt;br /&gt; select hparse.nextval into ret  from dual;&lt;br /&gt; dbms_random.seed(ret);&lt;br /&gt; FOR i IN 1..1000  LOOP&lt;br /&gt;   l_cursor:=dbms_sql.open_cursor;&lt;br /&gt;   stmt:='SELECT  count(*) FROM t1 where c1  &lt; '|| &lt;br /&gt;     dbms_random.value()||' and c2  &lt; '||dbms_random.value();&lt;br /&gt;   execute immediate stmt into ret;&lt;br /&gt;   dbms_sql.close_cursor(l_cursor);&lt;br /&gt; END LOOP;&lt;br /&gt;END;&lt;br /&gt;/&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Table t1 has no histograms. In the case above it had one row, but results were similar with no rows:&lt;/div&gt;&lt;div&gt;create table t1 (c1 number, c2 number);&lt;/div&gt;&lt;div&gt;insert into t1 values (0,0);&lt;/div&gt;&lt;div&gt;commit;&lt;/div&gt;&lt;div&gt;The issue should be addressed in 11g with a combination of cursor_sharing and adaptive cursor sharing&lt;/div&gt;&lt;div&gt;&lt;a href="http://optimizermagic.blogspot.com/2010/03/explain-adaptive-cursor-sharing.html"&gt;http://optimizermagic.blogspot.com/2010/03/explain-adaptive-cursor-sharing.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5981992750501394981?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5981992750501394981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/cursorsharing-picture-is-worth-1000.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5981992750501394981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5981992750501394981'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/cursorsharing-picture-is-worth-1000.html' title='Cursor_sharing : a picture is worth a 1000 words'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-61880770919423024</id><published>2010-06-08T11:26:00.000-07:00</published><updated>2010-06-08T11:37:15.176-07:00</updated><title type='text'>More VST Notation</title><content type='html'>&lt;div&gt;Just got DB Optimizer 2.5 out the door two weeks ago and now work is going fast on 2.5.1 slated for beginning of August. Already added EXISTS and NOT EXISTS notation into the diagrams:&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.perfvision.com/dbo/screenshots/2_5_1_exists_notexists.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 552px; height: 406px;" src="http://www.perfvision.com/dbo/screenshots/2_5_1_exists_notexists.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;pre&gt;SELECT&lt;br /&gt;  cs.customerid,&lt;br /&gt;  cs.firstname,&lt;br /&gt;  cs.lastname,&lt;br /&gt;  mr.rentalid,&lt;br /&gt;  mr.duedate,&lt;br /&gt;  mr.totalcharge,&lt;br /&gt;  ri.itemnumber&lt;br /&gt;FROM&lt;br /&gt;  MOVIES.customer cs,&lt;br /&gt;  MOVIES.movierental mr,&lt;br /&gt;  MOVIES.rentalitem ri&lt;br /&gt;WHERE&lt;br /&gt;  LENGTH (cs.lastname) = 5 AND&lt;br /&gt;  cs.zip &gt; 75062 AND&lt;br /&gt;  1 &lt; cs.customerid + 2 AND&lt;br /&gt;  cs.phone BETWEEN 9625569900 AND 9999569900 AND&lt;br /&gt;  ROUND (ri.rentalid) &gt; 10 AND&lt;br /&gt;  TRUNC (ri.itemnumber) &gt; 1 AND&lt;br /&gt;  mr.totalcharge &gt; (SELECT AVG (totalcharge)&lt;br /&gt;      FROM MOVIES.movierental) AND&lt;br /&gt;  ri.moviecopyid NOT IN (SELECT mc.moviecopyid&lt;br /&gt;         FROM MOVIES.moviecopy mc&lt;br /&gt;         WHERE&lt;br /&gt;         mc.copyformat = 'vhs' AND&lt;br /&gt;         mc.copycondition = 'old' AND&lt;br /&gt;         mc.movieid IN (SELECT mt.movieid&lt;br /&gt;            FROM MOVIES.movietitle mt&lt;br /&gt;            WHERE&lt;br /&gt;              mt.year &lt; 1990 AND&lt;br /&gt;              mt.rating IN ('pg', 'r') AND&lt;br /&gt;              mt.categoryid IN (SELECT mc.categoryid&lt;br /&gt;                  FROM MOVIES.moviecategory mc&lt;br /&gt;                  WHERE mc.rentalprice = (SELECT MAX (rentalprice)&lt;br /&gt;                        FROM MOVIES.moviecategory&lt;br /&gt;                        WHERE categoryid = mc.categoryid)))) AND&lt;br /&gt;  mr.CUSTOMERID = cs.CUSTOMERID AND&lt;br /&gt;  ri.RENTALID = mr.RENTALID&lt;br /&gt;&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-61880770919423024?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/61880770919423024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/more-vst-notation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/61880770919423024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/61880770919423024'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/06/more-vst-notation.html' title='More VST Notation'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-2333555142138461243</id><published>2010-05-30T08:30:00.000-07:00</published><updated>2010-05-30T09:02:48.725-07:00</updated><title type='text'>Identifying Execution Plan Problems</title><content type='html'>(original at &lt;a href="http://sites.google.com/site/embtdbo/tuner/oracle-tcf-query-and-lios-per-row"&gt;http://sites.google.com/site/embtdbo/tuner/oracle-tcf-query-and-lios-per-row&lt;/a&gt;)&lt;br /&gt;Based on  the idea by Wolfgang Breitling that we can identify cost and cardinality errors of Oracle's optimizer by looking at the discrepancies between the ESTIMATED rows and the ACTUAL rows in each line of the execution plan.&lt;br /&gt;I also added in a calculation to see how many IOs we were doing per row returned.&lt;br /&gt;In order to get much out of this script you have to have run the query with the hint&lt;br /&gt;&lt;br /&gt;/*+ gather_plan_statistics  */&lt;br /&gt;or &lt;br /&gt;set statistics_level=all&lt;br /&gt;or&lt;br /&gt;sql_trace=true (only way on 9i other than an underscore parameter)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;col cn format 99&lt;br /&gt;col ratio format 99&lt;br /&gt;col ratio1 format A6&lt;br /&gt;--set pagesize 1000&lt;br /&gt;set linesize 140&lt;br /&gt;break on sql_id on cn&lt;br /&gt;col lio_rw format 999&lt;br /&gt;col "operation" format a60&lt;br /&gt;col a_rows for 999,999,999&lt;br /&gt;col e_rows for 999,999,999&lt;br /&gt;col elapsed for 999,999,999&lt;br /&gt;&lt;br /&gt;Def v_sql_id=&amp;SQL_ID&lt;br /&gt;&lt;br /&gt;select&lt;br /&gt;       -- sql_id,&lt;br /&gt;       --hv,&lt;br /&gt;       childn                                         cn,&lt;br /&gt;       --ptime, stime,&lt;br /&gt;       case when stime - nvl(ptime ,0) &gt; 0 then&lt;br /&gt;          stime - nvl(ptime ,0) &lt;br /&gt;        else 0 end as  elapsed,&lt;br /&gt;       nvl(trunc((lio-nvl(plio,0))/nullif(a_rows,0)),0) lio_rw,&lt;br /&gt;       --id,&lt;br /&gt;       --parent_id,&lt;br /&gt;       --starts,&lt;br /&gt;       --nvl(ratio,0)                                    ratio,&lt;br /&gt;       ' '||case when ratio &gt; 0 then&lt;br /&gt;   rpad('-',ratio,'-') &lt;br /&gt;       else &lt;br /&gt;   rpad('+',ratio*-1 ,'+') &lt;br /&gt;       end as                                           ratio1,&lt;br /&gt;       starts*cardinality                              e_rows,&lt;br /&gt;                                                       a_rows,&lt;br /&gt;       --nvl(lio,0) lio, nvl(plio,0)                      parent_lio,&lt;br /&gt;                                                         "operation"&lt;br /&gt;from (&lt;br /&gt;  SELECT&lt;br /&gt;      stats.LAST_ELAPSED_TIME                             stime,&lt;br /&gt;      p.elapsed                                  ptime,&lt;br /&gt;      stats.sql_id                                        sql_id&lt;br /&gt;    , stats.HASH_VALUE                                    hv&lt;br /&gt;    , stats.CHILD_NUMBER                                  childn&lt;br /&gt;    , to_char(stats.id,'990')&lt;br /&gt;      ||decode(stats.access_predicates,null,null,'A')&lt;br /&gt;      ||decode(stats.filter_predicates,null,null,'F')     id&lt;br /&gt;    , stats.parent_id&lt;br /&gt;    , stats.CARDINALITY                                    cardinality&lt;br /&gt;    , LPAD(' ',depth)||stats.OPERATION||' '||&lt;br /&gt;      stats.OPTIONS||' '||&lt;br /&gt;      stats.OBJECT_NAME||&lt;br /&gt;      DECODE(stats.PARTITION_START,NULL,' ',':')||&lt;br /&gt;      TRANSLATE(stats.PARTITION_START,'(NRUMBE','(NR')||&lt;br /&gt;      DECODE(stats.PARTITION_STOP,NULL,' ','-')||&lt;br /&gt;      TRANSLATE(stats.PARTITION_STOP,'(NRUMBE','(NR')      "operation",&lt;br /&gt;      stats.last_starts                                     starts,&lt;br /&gt;      stats.last_output_rows                                a_rows,&lt;br /&gt;      (stats.last_cu_buffer_gets+stats.last_cr_buffer_gets) lio,&lt;br /&gt;      p.lio                                                 plio,&lt;br /&gt;      trunc(log(10,nullif&lt;br /&gt;         (stats.last_starts*stats.cardinality/&lt;br /&gt;          nullif(stats.last_output_rows,0),0)))             ratio&lt;br /&gt;  FROM&lt;br /&gt;       v$sql_plan_statistics_all stats&lt;br /&gt;       , (select sum(last_cu_buffer_gets + last_cr_buffer_gets) lio,&lt;br /&gt;                 sum(LAST_ELAPSED_TIME) elapsed,&lt;br /&gt;          child_number, &lt;br /&gt;  parent_id,&lt;br /&gt;                 sql_id   &lt;br /&gt;         from v$sql_plan_statistics_all   &lt;br /&gt;         group by child_number,sql_id, parent_id) p&lt;br /&gt;  WHERE&lt;br /&gt;    stats.sql_id='&amp;v_sql_id'  and&lt;br /&gt;    p.sql_id(+) = stats.sql_id and&lt;br /&gt;    p.child_number(+) = stats.child_number and &lt;br /&gt;    p.parent_id(+)=stats.id&lt;br /&gt;) &lt;br /&gt;order by sql_id, childn , id&lt;br /&gt;/&lt;br /&gt;clear breaks&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;output like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Enter value for sql_id: g2w9n4gksyys6&lt;br /&gt;old  59:     stats.sql_id='&amp;v_sql_id'  and&lt;br /&gt;new  59:     stats.sql_id='g2w9n4gksyys6'  and&lt;br /&gt;&lt;br /&gt;  ELAPSED LIO_RW RATIO1  E_ROWS A_ROWS operation&lt;br /&gt;---------- ------ ------ ------- ------ ---------------------------------&lt;br /&gt;         0      0                     1 SELECT STATEMENT&lt;br /&gt; 5,720,456      0              1      1  HASH GROUP BY&lt;br /&gt;    29,711      0                 1,909   NESTED LOOPS&lt;br /&gt;         0      0  +++         1  1,909    NESTED LOOPS&lt;br /&gt; 1,969,304      0  +++         1  1,909     NESTED LOOPS&lt;br /&gt;         0      0  +++         1  2,027      NESTED LOOPS&lt;br /&gt; 7,939,649      0  +++         1  1,656       NESTED LOOPS&lt;br /&gt;   716,054      0  +++         1  1,657        NESTED LOOPS&lt;br /&gt;   270,201      0  ++         39 23,171         HASH JOIN&lt;br /&gt;        23      0              5      1          JOIN FILTER CREATE :BF00&lt;br /&gt;        31      1              5      1           TABLE ACCESS BY INDEX R&lt;br /&gt;        14      2              5      1            INDEX RANGE SCAN PS0PA&lt;br /&gt;   141,467      0         18,503 23,171          VIEW  VW_SQ_1&lt;br /&gt; 3,032,120      0         18,503 23,171           HASH GROUP BY&lt;br /&gt;   152,564      0        163,420 33,020            JOIN FILTER USE :BF000&lt;br /&gt;   407,746      0        163,420 33,020             MERGE JOIN&lt;br /&gt;        55      0              5      1              SORT JOIN&lt;br /&gt;        12      2              5      1               INDEX RANGE SCAN PS&lt;br /&gt;    79,435      0         40,000 33,020              SORT JOIN&lt;br /&gt;   119,852      0         40,000 40,000               INDEX FAST FULL SCA&lt;br /&gt; 2,959,031     13  -      23,171  1,657         TABLE ACCESS BY INDEX ROW&lt;br /&gt;   944,887      1         23,171 23,174          INDEX RANGE SCAN WB_JOB&lt;br /&gt;   102,650      0          1,657  1,656        VIEW PUSHED PREDICATE  VW_&lt;br /&gt;    73,769      0          1,657  1,657         SORT AGGREGATE&lt;br /&gt;    25,617      0          1,657  1,657          FIRST ROW&lt;br /&gt;   225,497      1          1,657  1,657           INDEX RANGE SCAN (MIN/M&lt;br /&gt;   357,872      0          3,312  2,027       TABLE ACCESS BY INDEX ROWID&lt;br /&gt; 3,655,774      1          3,312  2,027        INDEX RANGE SCAN WB_RETROP&lt;br /&gt;   199,884      0          2,027  1,909      TABLE ACCESS BY INDEX ROWID &lt;br /&gt;   317,793      1          2,027  1,909       INDEX RANGE SCAN PS_RETROPA&lt;br /&gt;    71,534      0          1,909  1,909     INDEX RANGE SCAN PS#RETROPAYP&lt;br /&gt;    18,396      0          1,909  1,909    TABLE ACCESS BY INDEX ROWID PS&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I can see that are 5 lines where the optimizer only expect 1 row and the actual results were over 1000, ie 3 orders of magnitude difference.&lt;br /&gt;These are the three lines with&lt;br /&gt;+++&lt;br /&gt;There is one line with&lt;br /&gt;-&lt;br /&gt;where actual was an order of magnitude smaller. On that same line wee see it's one of the slower lines almost 3 seconds and that the were 13 lio's per row returned, which is sign of inefficiency.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-2333555142138461243?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/2333555142138461243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/identifying-execution-plan-problems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2333555142138461243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/2333555142138461243'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/identifying-execution-plan-problems.html' title='Identifying Execution Plan Problems'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-635665716362018537</id><published>2010-05-30T08:15:00.000-07:00</published><updated>2010-05-31T12:48:46.095-07:00</updated><title type='text'>Oracle Video Demos</title><content type='html'>Just found this one&lt;div&gt;&lt;a href="http://www.oracle.com/technology/obe/demos/admin/demos.html"&gt;http://www.oracle.com/technology/obe/demos/admin/demos.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;video demos of Oracle features - pretty cool. For example one on managed baseline metrics in OEM:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.oracle.com/technology/obe/demos/10gr2/metric_baselines.viewlet/metric_baselines_viewlet_swf.html"&gt;http://www.oracle.com/technology/obe/demos/10gr2/metric_baselines.viewlet/metric_baselines_viewlet_swf.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;On the subject of OEM 10g and adaptive thresholds, Doug Burn's blog has by far the best explanation of setting up an using them, see here:&lt;/div&gt;&lt;div&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/plugin/tag/adaptive+thresholds"&gt;http://oracledoug.com/serendipity/index.php?/plugin/tag/adaptive+thresholds&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I never worked on the specifics of adaptive baselines, that was JB's specialtiy, but i did work on some UI mockups:&lt;/div&gt;&lt;div&gt;&lt;a href="http://243938102299405837-a-1802744773732722657-s-sites.googlegroups.com/site/youvisualize/base-lines/deviation.PNG?attachauth=ANoY7cp_1Vty2RXVWddUkQrwcyw8aMnKLrfrfx6BdKXbBv8T467spC85HBAOz7vYk9xX3O-lBO0RUhnltDn4cCRRIFKpGBOcxODCf8cSCesWlPwCm5wE0qcEG-6bCa8_9GG2yhprdQzpVa2Pd86J0vvFgiLBveLDTIp-p8suf4sCtrEC6WtJKcPssrJrInKbAtplSm8Wzo-W7ODSaL7DMV04PwLxWx2bXw%3D%3D&amp;amp;attredirects=0"&gt;&lt;img src="http://243938102299405837-a-1802744773732722657-s-sites.googlegroups.com/site/youvisualize/base-lines/deviation.PNG?attachauth=ANoY7cp_1Vty2RXVWddUkQrwcyw8aMnKLrfrfx6BdKXbBv8T467spC85HBAOz7vYk9xX3O-lBO0RUhnltDn4cCRRIFKpGBOcxODCf8cSCesWlPwCm5wE0qcEG-6bCa8_9GG2yhprdQzpVa2Pd86J0vvFgiLBveLDTIp-p8suf4sCtrEC6WtJKcPssrJrInKbAtplSm8Wzo-W7ODSaL7DMV04PwLxWx2bXw%3D%3D&amp;amp;attredirects=0" border="0" alt="" style="cursor: pointer; width: 630px; height: 220px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Here's what it actually looks like in OEM 10g:&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_fA5yrPv5jII/TAQSZvE_odI/AAAAAAAAQNg/_VJ2p-r-pro/s1600/adaptives_thresholds.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_fA5yrPv5jII/TAQSZvE_odI/AAAAAAAAQNg/_VJ2p-r-pro/s400/adaptives_thresholds.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5477523280132809170" style="cursor: pointer; width: 400px; height: 222px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-635665716362018537?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/635665716362018537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/oracle-video-demos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/635665716362018537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/635665716362018537'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/oracle-video-demos.html' title='Oracle Video Demos'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fA5yrPv5jII/TAQSZvE_odI/AAAAAAAAQNg/_VJ2p-r-pro/s72-c/adaptives_thresholds.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7977288041272912830</id><published>2010-05-30T08:07:00.000-07:00</published><updated>2010-06-02T10:23:00.727-07:00</updated><title type='text'>SQLPLUS -prelim</title><content type='html'>&lt;div&gt;There is a way to connect to Oracle even when sessions are maxed out or there is a hang etc:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I knew about this a while back but its just one of those things that's important to remember when it's needed!  Thus, so I can always know where to find it , I'm reposting:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://oraclue.com/2008/09/25/sqlplus-preliminary-connection/"&gt;http://oraclue.com/2008/09/25/sqlplus-preliminary-connection/&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;&lt;p style="line-height: 19px; margin-top: 15px; margin-right: 15px; margin-bottom: 2px; margin-left: 15px; font: normal normal normal 11px/normal 'Lucida Sans Unicode', 'Trebuchet MS', Verdana, monospace; "&gt;1)  sqlplus  &lt;strong&gt;-prelim&lt;/strong&gt; / as sysdba&lt;/p&gt;&lt;p style="line-height: 19px; margin-top: 15px; margin-right: 15px; margin-bottom: 2px; margin-left: 15px; font: normal normal normal 11px/normal 'Lucida Sans Unicode', 'Trebuchet MS', Verdana, monospace; "&gt;2)  sqlplus /nolog&lt;br /&gt;  set &lt;strong&gt;_prelim on&lt;/strong&gt;&lt;br /&gt;  conn / as sysdba&lt;/p&gt;&lt;p style="line-height: 19px; margin-top: 15px; margin-right: 15px; margin-bottom: 2px; margin-left: 15px; font: normal normal normal 11px/normal 'Lucida Sans Unicode', 'Trebuchet MS', Verdana, monospace; "&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;see more from Tanel Poder &lt;/div&gt;&lt;div&gt;&lt;a href="http://tech.e2sn.com/oracle/troubleshooting/hang/how-to-log-on-even-when-sysdba-can-t-do-so"&gt;http://tech.e2sn.com/oracle/troubleshooting/hang/how-to-log-on-even-when-sysdba-can-t-do-so&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7977288041272912830?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7977288041272912830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/sqlplus-prelim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7977288041272912830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7977288041272912830'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/sqlplus-prelim.html' title='SQLPLUS -prelim'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3040327919671589377</id><published>2010-05-26T22:45:00.000-07:00</published><updated>2010-05-26T22:49:47.674-07:00</updated><title type='text'>Visual SQL Tuning Webinar with Jonathan Lewis June 10, 2010</title><content type='html'>&lt;div&gt;Register for the live webinar on June 10th here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey"&gt;http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fA5yrPv5jII/S_4HO_oCcwI/AAAAAAAAQNY/uE3haqCNzkM/s1600/Lewis_Hailey_blue_728x90.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 468px; height: 60px;" src="http://2.bp.blogspot.com/_fA5yrPv5jII/S_4HO_oCcwI/AAAAAAAAQNY/uE3haqCNzkM/s400/Lewis_Hailey_blue_728x90.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5475822151108031234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table class="contentpaneopen"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="contentheading" width="100%"&gt;Tune in for the Ultimate SQL Tune-off  &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table class="content_artical"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top"&gt; &lt;p&gt;According to Jonathan Lewis, there is a basic strategy to writing efficient  SQL, but it requires knowledge of the data, the metadata, and the intent of the  query.&lt;/p&gt; &lt;p&gt;Jonathan will start with the basic principles of efficient data access and  then show different ways of analyzing the data. He'll then describe a graphical  approach to finding the most efficient access path for a query and then apply  the method to a problem he recently saw with one of his clients.&lt;/p&gt; &lt;p&gt;But wait... is there more than one way to skin a cat? Kyle Hailey thinks so,  and he's not afraid to let Jonathan know it!&lt;br /&gt;&lt;br /&gt;Kyle's fancy footwork will  include his own approach to Visual SQL Tuning (VST) with some ring side support  from DB Optimizer XE. Hitting below the belt? You be the judge.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Live! June 10, 2010 at 11AM Pacific&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3040327919671589377?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3040327919671589377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/visual-sql-tuning-webinar-with-jonathan_26.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3040327919671589377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3040327919671589377'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/visual-sql-tuning-webinar-with-jonathan_26.html' title='Visual SQL Tuning Webinar with Jonathan Lewis June 10, 2010'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fA5yrPv5jII/S_4HO_oCcwI/AAAAAAAAQNY/uE3haqCNzkM/s72-c/Lewis_Hailey_blue_728x90.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7675360494703154729</id><published>2010-05-26T00:33:00.001-07:00</published><updated>2010-05-26T07:06:54.719-07:00</updated><title type='text'>Why graphics get a bad rap</title><content type='html'>&lt;div&gt;Can you figure out what this chart is trying to say? I have a hard time of it:&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_fA5yrPv5jII/S-H7azNc-FI/AAAAAAAAQMg/586tCMyR1cc/s1600/oracle-graph.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_fA5yrPv5jII/S-H7azNc-FI/AAAAAAAAQMg/586tCMyR1cc/s400/oracle-graph.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5467927860446296146" style="cursor: pointer; width: 400px; height: 334px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_fA5yrPv5jII/S-H7azNc-FI/AAAAAAAAQMg/586tCMyR1cc/s1600/oracle-graph.jpg"&gt;&lt;/a&gt;Here is the data laid out &lt;span class="Apple-style-span"  style="color: rgb(48, 48, 48); line-height: 14px; font-family:Verdana, Helvetica, Tahoma, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;in a more compelling manner:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_fA5yrPv5jII/S_0ql1rMkKI/AAAAAAAAQNI/ntJabHuGFRQ/s1600/oracle_relayout2.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_fA5yrPv5jII/S_0ql1rMkKI/AAAAAAAAQNI/ntJabHuGFRQ/s400/oracle_relayout2.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5475579551504175266" style="cursor: pointer; width: 400px; height: 127px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;I can easily see the data correlations.&lt;/div&gt;&lt;div&gt;Central region, the first line, earned the most revenue, increased the most over last year and earned better than forecast.&lt;/div&gt;&lt;div&gt;Eastern earned the second highest but lost the most over last year and earned under forecast.&lt;/div&gt;&lt;div&gt;My ideas for the new layout came from &lt;span class="Apple-style-span"  style="color: rgb(48, 48, 48); line-height: 14px; font-family:Verdana, Helvetica, Tahoma, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://www.openbi.info/" rel="external nofollow" style="text-decoration: underline; background-color: inherit; color: rgb(102, 102, 102); "&gt;Lars Schubert&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Helvetica, Tahoma, Arial, sans-serif;color:#303030;"&gt;&lt;span class="Apple-style-span" style="line-height: 14px; "&gt;See for example &lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0); line-height: normal; font-family:Georgia, serif;"&gt;&lt;a href="http://cuboo.files.wordpress.com/2010/05/oracle_success.png"&gt;http://cuboo.files.wordpress.com/2010/05/oracle_success.png&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Helvetica, Tahoma, Arial, sans-serif;color:#303030;"&gt;&lt;span class="Apple-style-span" style="line-height: 14px;"&gt;Lars' excel spread sheet with data and variations &lt;a href="http://bit.ly/aeK6PA"&gt;http://bit.ly/aeK6PA&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Helvetica, Tahoma, Arial, sans-serif;color:#303030;"&gt;&lt;span class="Apple-style-span" style="line-height: 14px; "&gt;More info on &lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0); line-height: normal; font-family:Georgia, serif;"&gt;&lt;a href="http://www.perceptualedge.com/blog/?p=784"&gt;http://www.perceptualedge.com/blog/?p=784&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7675360494703154729?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7675360494703154729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/why-graphics-get-bad-rap_26.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7675360494703154729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7675360494703154729'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/why-graphics-get-bad-rap_26.html' title='Why graphics get a bad rap'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fA5yrPv5jII/S-H7azNc-FI/AAAAAAAAQMg/586tCMyR1cc/s72-c/oracle-graph.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6092286521724039671</id><published>2010-05-23T08:20:00.000-07:00</published><updated>2010-06-07T15:18:10.602-07:00</updated><title type='text'>Visual SQL Tuning Webinar with Jonathan Lewis June 10, 2010</title><content type='html'>UPDATE: register for webinar at&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;a href="http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey" style="color: rgb(51, 102, 153); "&gt;http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;a href="http://www.embarcadero.com/master-sql-tuners-oracle-lewis-hailey" style="color: rgb(51, 102, 153); "&gt;&lt;/a&gt;&lt;/span&gt;Stay tuned for a live free webinar on Visual SQL Tuning with Jonathan Lewis and Kyle Hailey on June 10th brought to you by Embarcadero Technologies.&lt;div&gt;DB Optimizer's Visual SQL Tuning diagram:&lt;br /&gt;&lt;div&gt;&lt;a href="http://farm5.static.flickr.com/4046/4631805975_87526159ae_o.png"&gt;&lt;img src="http://farm5.static.flickr.com/4046/4631805975_87526159ae_o.png" width="500/" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Visual SQL Tuning article by Jonathan Lewis&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach/"&gt;http://www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.simple-talk.com/iwritefor/articlefiles/957-JL2.JPG" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6092286521724039671?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6092286521724039671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/visual-sql-tuning-webinar-with-jonathan.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6092286521724039671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6092286521724039671'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/visual-sql-tuning-webinar-with-jonathan.html' title='Visual SQL Tuning Webinar with Jonathan Lewis June 10, 2010'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-9031012468953952662</id><published>2010-05-05T15:40:00.000-07:00</published><updated>2010-05-05T15:44:12.092-07:00</updated><title type='text'>Jonathan Lewis and Visual SQL Tuning</title><content type='html'>&lt;div style="mso-element:para-border-div;border:solid silver 1.0pt;mso-border-alt: solid silver .75pt;padding:8.0pt 8.0pt 8.0pt 8.0pt;margin-left:60.0pt; margin-right:0in"&gt;  &lt;p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; line-height:normal;border:none;mso-border-alt:solid silver .75pt;padding:0in; mso-padding-alt:8.0pt 8.0pt 8.0pt 8.0pt"&gt;&lt;span style=" font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-fareast-Times New Roman&amp;quot;; font-family:&amp;quot;;font-size:9.0pt;color:#333333;"&gt;Sometimes, it is a great idea to push away the keyboard when tackling the problems of an ill-performing, complex, query, and take up pencil and paper instead. By drawing a diagram to show off all the tables involved, the joins, the volume of data involved, and  the indexes, you'll see more easily the relative efficiency of the possible paths that your query could take through the tables.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;-- Jonathan Lewis&lt;/div&gt;&lt;div&gt;Check out Jonathan's insightful article on the power of graphically representing a SQL statement to help identify efficiencies and inefficiencies in a SQL query:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach/"&gt;http://www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://www.simple-talk.com/iwritefor/articlefiles/957-JL2.JPG" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-9031012468953952662?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/9031012468953952662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/jonathan-lewis-and-visual-sql-tuning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/9031012468953952662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/9031012468953952662'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/05/jonathan-lewis-and-visual-sql-tuning.html' title='Jonathan Lewis and Visual SQL Tuning'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-85815826793568560</id><published>2010-04-23T21:30:00.000-07:00</published><updated>2010-04-23T21:31:10.000-07:00</updated><title type='text'>Oaktable Website</title><content type='html'>Thanks to the valient work of James Morle there is a awesome new website aggregating the work and postings of the members of the Oaktable network. Check it out:&lt;div&gt;&lt;a href="http://www.oaktable.net/"&gt;http://www.oaktable.net/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-85815826793568560?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/85815826793568560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/04/oaktable-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/85815826793568560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/85815826793568560'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/04/oaktable-website.html' title='Oaktable Website'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-9195447316893268267</id><published>2010-04-23T07:59:00.000-07:00</published><updated>2010-04-23T08:02:29.297-07:00</updated><title type='text'>Types of Data Visualization</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fA5yrPv5jII/S9G2e2noepI/AAAAAAAAQMQ/g9JG3P7THXI/s1600/periodic_chart.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 202px;" src="http://3.bp.blogspot.com/_fA5yrPv5jII/S9G2e2noepI/AAAAAAAAQMQ/g9JG3P7THXI/s400/periodic_chart.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5463348464151198354" /&gt;&lt;/a&gt;&lt;br /&gt;I'm fascinated by data visualization and here is a fun little widget - the periodic chart of visualization methods. Make sure and pass your mouse over each cell to see the example graphic popup.&lt;div&gt;&lt;a href="http://www.visual-literacy.org/periodic_table/periodic_table.html"&gt;http://www.visual-literacy.org/periodic_table/periodic_table.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-9195447316893268267?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/9195447316893268267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/04/types-of-data-visualization.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/9195447316893268267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/9195447316893268267'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/04/types-of-data-visualization.html' title='Types of Data Visualization'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fA5yrPv5jII/S9G2e2noepI/AAAAAAAAQMQ/g9JG3P7THXI/s72-c/periodic_chart.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6346653062434466838</id><published>2010-03-31T15:07:00.000-07:00</published><updated>2010-03-31T15:09:19.996-07:00</updated><title type='text'>calculating  the SQL_ID hash from the SQL_TEXT</title><content type='html'>This really cool:&lt;div&gt;&lt;a href="http://www.slaviks-blog.com/2010/03/30/oracle-sql_id-and-hash-value/"&gt;http://www.slaviks-blog.com/2010/03/30/oracle-sql_id-and-hash-value/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;he explains a how to calculate the sql_id from the SQL_TEXT. The SQL_ID is just a hash of the text.&lt;/div&gt;&lt;div&gt;(saw on Tanels blog at &lt;a href="http://blog.tanelpoder.com/2010/03/31/calculate-sql_id-and-sql_hash_value-from-sql-text/"&gt;http://blog.tanelpoder.com/2010/03/31/calculate-sql_id-and-sql_hash_value-from-sql-text/&lt;/a&gt; ) calculating  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6346653062434466838?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6346653062434466838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/calculating-sqlid-hash-from-sqltext.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6346653062434466838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6346653062434466838'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/calculating-sqlid-hash-from-sqltext.html' title='calculating  the SQL_ID hash from the SQL_TEXT'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7217331067834918869</id><published>2010-03-26T15:34:00.000-07:00</published><updated>2010-03-26T15:46:47.299-07:00</updated><title type='text'>VST - complete for DB Optimizer 2.5 !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.perfvision.com/ftp/dbo_25_VST.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 822px; height: 636px;" src="http://www.perfvision.com/ftp/dbo_25_VST.PNG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The last step is finished before we functioinal freeze on the VST diagrams in DB Optimizer 2.5. We have now added Filter Ratios to the diagram ! Functional freeze is next week and production date is targeted for May 3.&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;blue numbers are the percent of the table returned after the predicate filters have been applied&lt;/li&gt;&lt;li&gt;red numbers are the two table join sizes &lt;/li&gt;&lt;li&gt;green numbers are the table sizes&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The idea is to start at the most selective filter and then join into keep the running row set to the smallest size.&lt;/div&gt;&lt;div&gt;Start at A, the most selective filter &lt;/div&gt;&lt;div&gt;Join to C, the smallest running row set size&lt;/div&gt;&lt;div&gt;Join to G, the smallest row set size&lt;/div&gt;&lt;div&gt;Join last to D&lt;/div&gt;&lt;div&gt;This path was almost 3x as fast as the default path chosen by the optimizer. I just looked at the diagram , order the tables in that fashion and used the /*+ ORDERED */ hint&lt;/div&gt;&lt;div&gt;Interesting items in the diagram &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;only fields used in the where clause are shown by default&lt;/li&gt;&lt;li&gt;clicking on a link shows the fields used in the join (above I've clicked on two links higlight two joins)&lt;/li&gt;&lt;li&gt;Fields with an "F" have a filter on them&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;There many other interactive features in the diagram.&lt;/div&gt;&lt;div&gt;The text for this query was&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;select distinct * from foo.a, foo.c, foo.d, foo.g&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; WHERE a.planted_date = to_date('02/10/2008','dd/mm/yyyy')&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.pears = 'D'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.green_beans = '1'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.planted_date = c.planted_date&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.pears = c.pears&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.zuchinis = c.zuchinis&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.brocoli = c.brocoli&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.planted_date = d.planted_date&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.pears = d.pears&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.harvest_size = d.harvest_size&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND c.oranges = d.oranges&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND c.apples = d.apples&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND (d.lemons = 0 OR d.lemons IS NULL)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.planted_date = g.planted_date&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.pears = g.pears&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND a.harvest_size = g.harvest_size&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND c.oranges = g.oranges&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND c.apples = g.apples&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  AND (g.lemons = 0 OR g.lemons IS NULL)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;  and a.zuchinis='0236'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ORDER BY a.zuchinis, a.brocoli;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7217331067834918869?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7217331067834918869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/vst-complete-for-db-optimizer-25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7217331067834918869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7217331067834918869'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/vst-complete-for-db-optimizer-25.html' title='VST - complete for DB Optimizer 2.5 !'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-4906036587700732477</id><published>2010-03-19T12:31:00.000-07:00</published><updated>2010-03-19T16:59:09.800-07:00</updated><title type='text'>VST - Visual SQL Tuning , the next generation</title><content type='html'>If you saw &lt;a href="http://www.perfvision.com/ftp/12a_sqltuning_vst.ppt"&gt;my presentation at HOTSOS 2010&lt;/a&gt; or attended one of my recent Oracle 10g Performance Tuning course, you know I'm excited about Visual SQL Tuning or VST diagrams.&lt;div&gt;Now, I'm even more excited because we are adding statistics to the diagram! For example:&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fA5yrPv5jII/S6PbsC8UzuI/AAAAAAAAQKU/TiitoR4Vy4Y/s1600-h/vst_25.PNG"&gt;&lt;img src="http://2.bp.blogspot.com/_fA5yrPv5jII/S6PbsC8UzuI/AAAAAAAAQKU/TiitoR4Vy4Y/s400/vst_25.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5450441523799052002" style="cursor: pointer; width: 282px; height: 178px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;In the above diagram the #s in red are the two table join set sizes and the numbers in green are the table sizes. I can see immediately that the query should return 0 rows because the join (rentalitem,movierental) returns 0 rows. I can also see that the join (mr,movierental)  is a horribly inefficient join it returns over 1 million rows for a join between 2018 rows and 2018 rows.&lt;/div&gt;&lt;div&gt;The VST diagram tells me immediately what's happening in the query and now with the statistics I can immediately see where there are efficient joins and inefficient joins.&lt;/div&gt;&lt;div&gt;The text for this query, which has none of this information is:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SELECT&lt;/div&gt;&lt;div&gt;    cs.customerid,&lt;/div&gt;&lt;div&gt;    cs.firstname,&lt;/div&gt;&lt;div&gt;    cs.lastname,&lt;/div&gt;&lt;div&gt;    mr.rentalid,&lt;/div&gt;&lt;div&gt;    mr.duedate,&lt;/div&gt;&lt;div&gt;    mr.totalcharge,&lt;/div&gt;&lt;div&gt;    ri.itemnumber&lt;/div&gt;&lt;div&gt;FROM&lt;/div&gt;&lt;div&gt;    MOVIES.customer cs,&lt;/div&gt;&lt;div&gt;    MOVIES.movierental mr,&lt;/div&gt;&lt;div&gt;    MOVIES.rentalitem ri&lt;/div&gt;&lt;div&gt;WHERE&lt;/div&gt;&lt;div&gt;    LENGTH (cs.lastname) = 5 AND&lt;/div&gt;&lt;div&gt;    cs.zip &gt; 75062 AND&lt;/div&gt;&lt;div&gt;    1 &lt;&gt;&lt;div&gt;    cs.phone BETWEEN 9625569900 AND 9999569900 AND&lt;/div&gt;&lt;div&gt;    ROUND (ri.rentalid) &gt; 10 AND&lt;/div&gt;&lt;div&gt;    TRUNC (ri.itemnumber) &gt; 1 AND&lt;/div&gt;&lt;div&gt;    mr.totalcharge &gt; (SELECT AVG (totalcharge)&lt;/div&gt;&lt;div&gt;                      FROM MOVIES.movierental) AND&lt;/div&gt;&lt;div&gt;    mr.CUSTOMERID = cs.CUSTOMERID AND&lt;/div&gt;&lt;div&gt;    ri.RENTALID = mr.RENTALID&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Stay tuned because next week we will be adding filter ratios to the diagram. A filter ratio is the ratio of rows returned after a predicate filter has been applied to a table. In the above diagram CUSTOMER and RENTALITEM both have predicate filters as denoted by the "F" in green.&lt;/div&gt;&lt;div&gt;In DB Optimizer the diagram is context sensitve so if I click on a table in the diagram the text will be highlighted&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fA5yrPv5jII/S6Pe9eURKkI/AAAAAAAAQKc/M_11x11nfpA/s1600-h/vst_25_details.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_fA5yrPv5jII/S6Pe9eURKkI/AAAAAAAAQKc/M_11x11nfpA/s400/vst_25_details.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5450445121739893314" style="cursor: pointer; width: 400px; height: 385px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;VST diagrams are available now in DB Optimizer 2.0 but in May  we are scheduled to release VST diagrams with displayed statistics in with DB Optimizer 2.5 !&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Big thanks to DB Optimizer's development team for this awesome work. Special kudo's to Stan who's recuperating and itching to even start working again even from his bed!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-4906036587700732477?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/4906036587700732477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/vst-visual-sql-tuning-next-generation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4906036587700732477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4906036587700732477'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/vst-visual-sql-tuning-next-generation.html' title='VST - Visual SQL Tuning , the next generation'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fA5yrPv5jII/S6PbsC8UzuI/AAAAAAAAQKU/TiitoR4Vy4Y/s72-c/vst_25.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-3115238426840749619</id><published>2010-03-17T07:21:00.000-07:00</published><updated>2010-03-17T07:27:38.561-07:00</updated><title type='text'>managing statistics on partitions</title><content type='html'>The best methods for managing statistics in general on Oracle is an area that has yet to well ironed out but when it comes to partitions is all the more challenging. Doug Burns is putting together a set of blog post attempting to iron  out some of the issue :&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 13px; line-height: 21px; "&gt;&lt;ul&gt;&lt;li style="font-size: 1em; line-height: 1.65em; "&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1562-Statistics-on-Partitioned-Tables-Part-1.html"&gt;Part 1&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; – In which we see a simple example and do a default stats collection&lt;/li&gt;&lt;li style="font-size: 1em; line-height: 1.65em; "&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1563-Statistics-on-Partitioned-Tables-Part-2.html"&gt;Part 2&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; – In which we consider Global Stats&lt;/li&gt;&lt;li style="font-size: 1em; line-height: 1.65em; "&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1565-Statistics-on-Partitioned-Tables-Part-3.html"&gt;Part 3&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1565-Statistics-on-Partitioned-Tables-Part-3.html"&gt; &lt;/a&gt;– In which subpartitions and aggregation cause problems&lt;/li&gt;&lt;li style="font-size: 1em; line-height: 1.65em; "&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1568-Statistics-on-Partitioned-Tables-Part-4.html"&gt;Part 4&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1568-Statistics-on-Partitioned-Tables-Part-4.html"&gt; &lt;/a&gt;– In which our hero fights his way through stats aggregation woes&lt;/li&gt;&lt;li style="font-size: 1em; line-height: 1.65em; "&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://oracledoug.com/serendipity/index.php?/archives/1570-Statistics-on-Partitioned-Tables-Part-5.html"&gt;Part 5&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;&lt;em&gt; -&lt;/em&gt; &lt;/strong&gt;In which we encounter a partition exchange&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Nice aggregated listing via &lt;a href="http://jonathanlewis.wordpress.com/2010/03/17/partition-stats"&gt;Jonathan Lewis&lt;/a&gt; &lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-3115238426840749619?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/3115238426840749619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/managing-statistics-on-partitions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3115238426840749619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/3115238426840749619'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/managing-statistics-on-partitions.html' title='managing statistics on partitions'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-7665069523020412630</id><published>2010-03-16T22:15:00.000-07:00</published><updated>2010-03-16T22:19:36.691-07:00</updated><title type='text'>Trending with Statspack</title><content type='html'>Anjo use to do statspack analysis at oraperf.com which has been out of order every time I've looked over the past few years.&lt;div&gt;Tim Gorman published scripts years ago to output trending reports on statspack which AFAIK are still  a valid resource today.&lt;/div&gt;&lt;div&gt;But now I see there is a web site to upload zips of statspack reports and output graphical trending reports. Looks interesting:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ondatafine.com/"&gt;http://www.ondatafine.com/&lt;/a&gt;&lt;img src="http://www.ondatafine.com/printimg.php?img=h1.jpg" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-7665069523020412630?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/7665069523020412630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/trending-with-statspack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7665069523020412630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/7665069523020412630'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/trending-with-statspack.html' title='Trending with Statspack'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-4584692394212419084</id><published>2010-03-16T15:01:00.001-07:00</published><updated>2010-03-16T15:02:42.473-07:00</updated><title type='text'>Monitoring SQL run on MySQL</title><content type='html'>Nice example of using Wireshark to monitor what's getting run on MySQL.&lt;div&gt;&lt;a href="http://feedblog.org/2008/07/29/debugging-mysql-applications-with-wireshark/"&gt;http://feedblog.org/2008/07/29/debugging-mysql-applications-with-wireshark/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I played around with something similar for Oracle didn't get to far. It's an interesting idea for monitoring,auditing and/or creating replay scripts.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-4584692394212419084?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/4584692394212419084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/monitoring-sql-run-on-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4584692394212419084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/4584692394212419084'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/monitoring-sql-run-on-mysql.html' title='Monitoring SQL run on MySQL'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-5725770015025336642</id><published>2010-03-16T14:46:00.000-07:00</published><updated>2010-03-16T14:54:41.854-07:00</updated><title type='text'>Bug or Feature</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I love this little cartoon&lt;/div&gt;&lt;img src="http://www.oraclealchemist.com/wp-content/uploads/2008/07/bug-feature.jpg" style="-webkit-user-select: none; " width="500" height="375" /&gt;&lt;div&gt;comes from &lt;a href="http://www.oraclealchemist.com/oracle/this-bug-brought-to-you-by-the-letter-u/"&gt;http://www.oraclealchemist.com/oracle/this-bug-brought-to-you-by-the-letter-u/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;which is a funny story about why OEM DB Control wouldn't start up because the hostname started with a "U" believe it or not (read the blog post for more info!).  It's yet another reason why I have issues with OEM. When OEM fails to work it can be exasperating. Just last week I was watching a presentation one OEM where OEM wouldn't start for 20 minutes  - provide for quick thinking on the presenters part to fill in that 20 minute hole. I was tempted to run up to the presenter and give them a DVD with instant on DB Optimizer which require no agents and no install. Just put the DVD in (also available via free &lt;a href="https://downloads.embarcadero.com/free/aa_client"&gt;download&lt;/a&gt;) and click on the executable and point it at any database (SQL Server, Sybase, DB2 or Oracle ) and voila you get a load chart of average active sessions and a breakdown on where the load is coming from immediately.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-5725770015025336642?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/5725770015025336642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/bug-or-feature.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5725770015025336642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/5725770015025336642'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/bug-or-feature.html' title='Bug or Feature'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-8066284611239439813</id><published>2010-03-16T14:06:00.000-07:00</published><updated>2010-03-18T21:23:30.298-07:00</updated><title type='text'>What Bind Variable values were used in my Query</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Check out this query by &lt;a href="http://kerryosborne.oracle-guy.com/"&gt;Kerry Osborne&lt;/a&gt; via &lt;a href="http://www.jaredstill.com/content/maillist.html"&gt;Oracle-L&lt;/a&gt; (archives at &lt;a href="http://www.freelists.org/archive/oracle-l"&gt;Oracle-l Archives&lt;/a&gt;) for getting the &lt;b&gt;peeked bind variabl&lt;/b&gt;e values from v$sql_plan.  These values are in  a raw format so the following query requires a function to decode the values. See the function code listing at the end&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;col bind_name for a20&lt;/div&gt;&lt;div&gt;col bind_type for a20&lt;/div&gt;&lt;div&gt;col value for a40&lt;/div&gt;&lt;div&gt;select&lt;/div&gt;&lt;div&gt;bind_name, &lt;/div&gt;&lt;div&gt;decode(bind_type,1,'VARCHAR2',&lt;wbr&gt;2,'NUMBER',bind_type) bind_type, &lt;/div&gt;&lt;div&gt;decode(bind_type,1,display_&lt;wbr&gt;raw(bind_data,'VARCHAR2'),2,&lt;wbr&gt;display_raw(bind_data,'NUMBER'&lt;wbr&gt;),bind_data) value&lt;/div&gt;&lt;div&gt;from (&lt;/div&gt;&lt;div&gt;select&lt;/div&gt;&lt;div&gt;extractvalue(value(d), '/bind/@nam') as bind_name,&lt;/div&gt;&lt;div&gt;extractvalue(value(d), '/bind/@dty') as bind_type,&lt;/div&gt;&lt;div&gt;extractvalue(value(d), '/bind') as bind_data&lt;/div&gt;&lt;div&gt;from&lt;/div&gt;&lt;div&gt;xmltable('/*/*/bind'&lt;/div&gt;&lt;div&gt;passing (&lt;/div&gt;&lt;div&gt;select&lt;/div&gt;&lt;div&gt;xmltype(other_xml) as xmlval&lt;/div&gt;&lt;div&gt;from&lt;/div&gt;&lt;div&gt;v$sql_plan&lt;/div&gt;&lt;div&gt;where&lt;/div&gt;&lt;div&gt;sql_id like nvl('&amp;amp;sql_id',sql_id)&lt;/div&gt;&lt;div&gt;and child_number = '&amp;amp;child_no'&lt;/div&gt;&lt;div&gt;and other_xml is not null&lt;/div&gt;&lt;div&gt;)&lt;/div&gt;&lt;div&gt;) d&lt;/div&gt;&lt;div&gt;)&lt;/div&gt;&lt;div&gt;;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;create or replace function display_raw (rawval raw, type varchar2)&lt;/div&gt;&lt;div&gt;return varchar2&lt;/div&gt;&lt;div&gt;is&lt;/div&gt;&lt;div&gt;   cn     number;&lt;/div&gt;&lt;div&gt;   cv     varchar2(32);&lt;/div&gt;&lt;div&gt;   cd     date;&lt;/div&gt;&lt;div&gt;   cnv    nvarchar2(32);&lt;/div&gt;&lt;div&gt;   cr     rowid;&lt;/div&gt;&lt;div&gt;   cc     char(32);&lt;/div&gt;&lt;div&gt;begin&lt;/div&gt;&lt;div&gt;   if (type = 'NUMBER') then&lt;/div&gt;&lt;div&gt;      dbms_stats.convert_raw_value(&lt;wbr&gt;rawval, cn);&lt;/div&gt;&lt;div&gt;      return to_char(cn);&lt;/div&gt;&lt;div&gt;   elsif (type = 'VARCHAR2') then&lt;/div&gt;&lt;div&gt;      dbms_stats.convert_raw_value(&lt;wbr&gt;rawval, cv);&lt;/div&gt;&lt;div&gt;      return to_char(cv);&lt;/div&gt;&lt;div&gt;   elsif (type = 'DATE') then&lt;/div&gt;&lt;div&gt;      dbms_stats.convert_raw_value(&lt;wbr&gt;rawval, cd);&lt;/div&gt;&lt;div&gt;      return to_char(cd,'dd-mon-yyyy');&lt;/div&gt;&lt;div&gt;   elsif (type = 'NVARCHAR2') then&lt;/div&gt;&lt;div&gt;      dbms_stats.convert_raw_value(&lt;wbr&gt;rawval, cnv);&lt;/div&gt;&lt;div&gt;      return to_char(cnv);&lt;/div&gt;&lt;div&gt;   elsif (type = 'ROWID') then&lt;/div&gt;&lt;div&gt;      dbms_stats.convert_raw_value(&lt;wbr&gt;rawval, cr);&lt;/div&gt;&lt;div&gt;      return to_char(cnv);&lt;/div&gt;&lt;div&gt;   elsif (type = 'CHAR') then&lt;/div&gt;&lt;div&gt;      dbms_stats.convert_raw_value(&lt;wbr&gt;rawval, cc);&lt;/div&gt;&lt;div&gt;      return to_char(cc);&lt;/div&gt;&lt;div&gt;   else&lt;/div&gt;&lt;div&gt;      return 'UNKNOWN DATATYPE';&lt;/div&gt;&lt;div&gt;   end if;&lt;/div&gt;&lt;div&gt;end;&lt;/div&gt;&lt;div class="im" style="color: rgb(80, 0, 80); "&gt;&lt;div&gt;/&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div class="im" style="color: rgb(80, 0, 80); "&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interesting to note that the &lt;span class="Apple-style-span"  style="border-collapse: separate; color: rgb(0, 0, 0);  line-height: 21px; font-family:Verdana, Tahoma, Arial, sans-serif;"&gt;&lt;strong&gt;&lt;em&gt;v$sql_bind_capture &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;has captured bind variables but not necessarily the ones that were peeked at optimization and these captured values can be recaptured without being used in the optimization of the query. From &lt;span class="Apple-style-span"  style=" line-height: normal; border-collapse: collapse; color: rgb(80, 0, 80); font-family:arial, sans-serif;"&gt;&lt;a href="http://jonathanlewis.wordpress.com/2008/07/24/bind-capture/"&gt;http://jonathanlewis.wordpress.com/2008/07/24/bind-capture/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="border-collapse: separate; color: rgb(0, 0, 0);  line-height: 21px; font-family:Verdana, Tahoma, Arial, sans-serif;"&gt;&lt;strong&gt;&lt;em&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;blockquote&gt;by using an &lt;em&gt;‘alter system’&lt;/em&gt;  call to change the &lt;em&gt;&lt;strong&gt;“_cursor_bind_capture_interval”&lt;/strong&gt;&lt;/em&gt; to a (performance-threatening) 10 seconds on a small test system, I found that the values in &lt;em&gt;&lt;strong&gt;v$sql_bind_capture&lt;/strong&gt;&lt;/em&gt; would change fairly regularly as I re-executed a given query with constantly changing input bind values.&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="border-collapse: separate; color: rgb(0, 0, 0);  line-height: 21px; font-family:Verdana, Tahoma, Arial, sans-serif;"&gt;&lt;strong&gt;&lt;em&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;further reading about bind vars from the errorstack by Tanel:&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="border-collapse: separate; color: rgb(0, 0, 0);  line-height: 21px; font-family:Verdana, Tahoma, Arial, sans-serif;"&gt;&lt;strong&gt;&lt;em&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"   style=" font-style: normal; line-height: normal;  border-collapse: collapse; color: rgb(31, 73, 125); font-family:arial, sans-serif;font-size:13px;"&gt;&lt;a href="http://tech.e2sn.com/oracle/troubleshooting/how-to-read-errorstack-output" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://tech.e2sn.com/oracle/&lt;wbr&gt;troubleshooting/how-to-read-&lt;wbr&gt;errorstack-output&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-8066284611239439813?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/8066284611239439813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/what-bind-variable-values-were-used-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/8066284611239439813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/8066284611239439813'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/what-bind-variable-values-were-used-in.html' title='What Bind Variable values were used in my Query'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-1806413069347482649</id><published>2010-03-05T16:02:00.000-08:00</published><updated>2010-03-05T16:03:08.870-08:00</updated><title type='text'>who opened that DB Link</title><content type='html'>very nice analysis of tracking down who has a dblink open on another database&lt;div&gt;&lt;a href="http://jkstill.blogspot.com/2010/03/whos-using-database-link.html"&gt;http://jkstill.blogspot.com/2010/03/whos-using-database-link.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-1806413069347482649?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/1806413069347482649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/who-opened-that-db-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1806413069347482649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/1806413069347482649'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/who-opened-that-db-link.html' title='who opened that DB Link'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-6740757926247380817</id><published>2010-03-05T13:55:00.000-08:00</published><updated>2010-03-05T16:52:09.410-08:00</updated><title type='text'>ORASRP: 10046 trace file formating</title><content type='html'>In case you have seen this free tool:&lt;div&gt;&lt;a href="http://www.oracledba.ru/orasrp/"&gt;http://www.oracledba.ru/orasrp/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;It's pretty cool. Takes 10046 trace files and analyzes and formats them.&lt;/div&gt;&lt;div&gt;Here is an example output: &lt;a href="http://www.oracledba.ru/orasrp/sample2.html"&gt;http://www.oracledba.ru/orasrp/sample2.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/755542794415995865-6740757926247380817?l=db-optimizer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://db-optimizer.blogspot.com/feeds/6740757926247380817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/orasrp-10046-trace-file-formating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6740757926247380817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/755542794415995865/posts/default/6740757926247380817'/><link rel='alternate' type='text/html' href='http://db-optimizer.blogspot.com/2010/03/orasrp-10046-trace-file-formating.html' title='ORASRP: 10046 trace file formating'/><author><name>Kyle Hailey</name><uri>http://www.blogger.com/profile/13586511268045480856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_fA5yrPv5jII/TCpw-9gGYnI/AAAAAAAAQOM/aZuTJ1JFXro/S220/kyle-hailey-bw-72.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-755542794415995865.post-2954083967536633095</id><published>2010-03-05T10:16:00.000-08:00</published><updated>2010-03-05T10:58:58.089-08:00</updated><title type='text'>stopping long running queries (UNIX vs Windows)</title><content type='html'>Here is an interesting discussion on stopping long running queries by Tanel Poder:&lt;div&gt;&lt;a href="http://blog.tanelpoder.com/2010/02/17/how-to-cancel-a-query-running-in-another-session/"&gt;http://blog.tanelpoder.com/2010/02/17/how-to-cancel-a-query-running-in-another-session/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;in summary,  it's relatively easy to stop a long running query on UNIX but not on windows. I've known this for years, but not know exactly why except that windows somehow sets up the connection differently than UNIX. Why this hasn't been address in all these years I don't know. If you've ever tried a  "cntrl-c" on windows sqlplus you know it doesn't do much except possibly kill your window but the query keeps running on the database. In the case where your client PC dies or the connection breaks, the query happily continues to run on the database. Sort of annoying. In this case I have to in general kill the Oracle session on the database with the kill session command or use "kill -9" on the UNIX shadow process for the session. If I want the session to keep running and just cancel the query I can use "kill -URG" on the shadow process on UNIX, but if my database is running on windows how could I do that?&lt;/div&gt;&lt;div&gt;Tanel's article points out that their might be solution using&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 11px; color: rgb(85, 85, 85); line-height: 15px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/em&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;You can set the consumer group for a session to CANCEL_SQL to cancel its current call:&lt;/em&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_SESS (&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;session_id IN NUMBER,&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;session_serial IN NUMBER,&lt;br /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;consumer_group&lt;/strong&gt; IN VARCHAR2);&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-style: normal; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; paddin
