{"id":1382,"date":"2008-02-22T12:00:00","date_gmt":"2008-02-22T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=1382"},"modified":"2008-02-22T12:00:00","modified_gmt":"2008-02-22T12:00:00","slug":"how-useful-are-diagnosticoptimization-tools-another-view","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2008\/02\/22\/how-useful-are-diagnosticoptimization-tools-another-view\/","title":{"rendered":"&#8220;How useful are diagnostic\/optimization tools?&#8221; &#8211; Another View"},"content":{"rendered":"<p>There have been a couple of very interesting blog postings over the past few weeks from <a href=\"http:\/\/optimaldba.blogspot.com\/2008\/02\/how-useful-are-diagnosticoptimization.html\">Daniel Fink<\/a> and <a href=\"http:\/\/www.battleagainstanyguess.com\/2008\/02\/can-a-performance-tuning-tool-be-complete\/\">Alex Gorbachev<\/a>, prompted by a panel discussion at last week&#8217;s RMOUG conference. Well, I suspect the panel was prompted by an <a href=\"http:\/\/optimaldba.blogspot.com\/2007\/12\/how-useful-is-wait-interface.html\">earlier blog posting<\/a> and many late night conversations. I&#8217;ve just noticed that it looks like it&#8217;s spilled over into <a href=\"http:\/\/jonathanlewis.wordpress.com\/2008\/02\/22\/serious-analysis\/\">subsequent email conversations<\/a>, too. I&#8217;d bet they were interesting!<\/p>\n<p>The subject up for discussion is &#8216;How useful are diagnostic\/optimisation tools&#8217; (Sorry, Dan, I&#8217;ll revert to true English spelling for this one &#128521;) As Dan says,<\/p>\n<p>&#8220;<em>If you do not have a method you can explain to another person, that you can repeat multiple times and reach the same conclusion with the same data, that accurately identifies the root cause and recommends the correct plan of action &#8230; you really do not have a method &#8230; you have a bunch of guesses.<\/em>&#8220;<\/p>\n<p>I&#8217;d suggest that you have some assertions and a bunch of theories (or educated guesses) that can then be proved right or wrong, but I know where Dan (and Alex-BAAG-Gorby) are coming from. The fact of the matter is that regardless of the currently available tools that you use, there&#8217;s still a degree of individual skill required to analyse the results and even if you have those skills, you&#8217;ll still come up against problems that you&#8217;ve never seen before and your skills will grow.<\/p>\n<p>Dan goes on to discuss software as the implementation of a method or process in his next paragraph and concludes that if a tool can&#8217;t come up with a correct optimisation method, then it&#8217;s not a complete optimisation tool. He&#8217;s right, of course, complete optimisation tools for Oracle systems simply don&#8217;t exist yet. I&#8217;m in the midst of writing a course that discusses ADDM (among other things). Now it&#8217;s a clever tool and I think it helps reduce time to problem resolution (possibly even more so when you understand a lot about performance already!) but the fact is that it often gives utterly stupid recommendations. It has a desire to have you add memory to the SGA constantly, in the absence of any other solution to a sick application, and (so far) I&#8217;ve rarely seen it suggest that CPU is a bottleneck. That &#8220;CPU is not a bottleneck&#8221; at the end of every ADDM report I&#8217;ve seen so far is <em>enormously<\/em> reassuring &#128521;<\/p>\n<p>So if all of these tools are so flawed, what&#8217;s the point of them? Well, as Dan says in the last sentence of that paragraph &#8230;.<\/p>\n<p>&#8220;<em>It certainly provides invaluable data, but that data still needs interpretation<\/em>&#8220;<\/p>\n<p>Both parts of that sentence are true. Without wanting to come across as a pompous, be-suited, middle-aged, &#8220;<em>this stuff is really <strong>hard<\/strong>, Sonny<\/em>&#8221; consultant, the fact remains that the behaviour of entire systems is inherently complex or maybe a better way to say this is that applications are so varied and the parameters governing their behaviour are so wide and sometimes dynamic as to appear unique. Any automated tool or method for diagnosing performance would have to be extremely smart.<\/p>\n<p>As it happens, I&#8217;m a bit of an amateur AI fan. I&#8217;ve always had a lurking interest in it and have read a few academic and more populist texts on the subject. What strikes me is that developing software to automatically solve problems in even very simple domains has proved time consuming and fairly unsuccessful to date. That&#8217;s not to say we won&#8217;t get there, but it&#8217;s a long road ahead.<\/p>\n<p>I&#8217;m not suggesting that software doesn&#8217;t have it&#8217;s place here. Everyone who reads this blog is using a pretty intelligent automated method every time they use Oracle. The CBO is a piece of software that applies an optimisation method automatically and is largely successful, but the CBO can&#8217;t and could never tell you that the SQL statement that it&#8217;s analysing is part of a batch report that no-one ever reads. A tool can&#8217;t know whether what you&#8217;re doing is sensible &#8211; that question is too high-level and abstract. How can any number of lines of code understand that actually, nobody really gives a monkey&#8217;s about that stupid report that destroys system performance?<\/p>\n<p>That&#8217;s the problem with performance tuning &#8211; not only do you have to solve the narrow technical problem, you have to take a step back and look at human and business issues too. Humans are still much better at that &#128521;<\/p>\n<p>But let me take a step away from that ultra-wide (but crucial) view and look again at whether, for something such as a Statspack report or a bunch of trace files, a tool could analyse them for us. Well, Anjo Kolk has already demonstrated some attempts at this at oraperf.com a long time ago and they were pretty impressive. (I&#8217;d say &#8220;are&#8221;, but I just tried to post a link and I don&#8217;t think the site&#8217;s available any more.) ADDM is another impressive tool, as I&#8217;ve mentioned already and I&#8217;m more impressed by several of the recent Oracle-supplied tools every time I use them (which is a lot at the moment).<\/p>\n<p>So I&#8217;m not saying we shouldn&#8217;t discuss the problem and take steps towards a solution, but to expect a complete solution to come along any time soon is like expecting a car-driving robot around the corner. Actually, I think I&#8217;d rather not come across a car-driving robot around the corner! (Seriously &#8211; just think about it. It seems reasonable and I&#8217;ve seen cars park, accelerate and brake themselves. I&#8217;ve seen an automated BMW(?) tear around a track, but what on earth would it make of bikes, children, ice &#8230;.)<\/p>\n<p>People like Dan and Alex are gold-dust for the wider Oracle community, because these subjects need to be discussed so everyone can move forward and having a blog is gold-dust for me, because I can ramble away for ages when the mood takes me &#128521;<\/p>\n<p>I think the best we can hope for at the moment is :-<\/p>\n<p>1) Gather High Quality Information<br \/>2) Produce first-pass automatic recommendations.<br \/>3) Analyse those recommendations to see if they&#8217;re any good.<br \/>4) Analyse the available information for other causes and develop possible solutions (partly method-based, partly experience and intuition-based)<br \/>5) Test each of the theories developed at steps 3 and 4<\/p>\n<p>But, as I said, I&#8217;m probably just rambling &#8230;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There have been a couple of very interesting blog postings over the past few weeks from Daniel Fink and Alex Gorbachev, prompted by a panel discussion at last week&#8217;s RMOUG conference. Well, I suspect the panel was prompted by an earlier blog posting and many late night conversations. I&#8217;ve just noticed that it looks like&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2008\/02\/22\/how-useful-are-diagnosticoptimization-tools-another-view\/\">Continue reading <span class=\"screen-reader-text\">&#8220;How useful are diagnostic\/optimization tools?&#8221; &#8211; Another View<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1382","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1332,"url":"http:\/\/orcldoug.com\/blog\/2007\/10\/28\/script\/","url_meta":{"origin":1382,"position":0},"title":"Script","date":"October 28, 2007","format":false,"excerpt":"Well, as the which blog was deemed useful (although most commentors did already know about it), how about the script Unix command?It's very useful for keeping a record of an extended series of actions, like those a DBA will often encounter when implementing a complex change. It's also useful for\u2026","rel":"","context":"With 5 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1524,"url":"http:\/\/orcldoug.com\/blog\/2009\/10\/11\/oow-2009-begins\/","url_meta":{"origin":1382,"position":1},"title":"OOW 2009 Begins","date":"October 11, 2009","format":false,"excerpt":"That's my first couple of sessions done and dusted, both pretty good ones too although I'm going to have to admit defeat now and try to catch some sleep in the hope it will pay off over the rest of the week.First, though was a nostalgic trip to Lori's Diner\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":850,"url":"http:\/\/orcldoug.com\/blog\/2006\/03\/01\/i-just-drove-to-work-with-jonathan-lewis\/","url_meta":{"origin":1382,"position":2},"title":"I just drove to work with Jonathan Lewis","date":"March 1, 2006","format":false,"excerpt":"Prompted by Mark Rittman's blog, I downloaded the interview with Jonathan Lewis from DBAZine. I have an iPod-compatible hi-fi in the car. Once I'd got over the shock of DBAZine displaying in my car and stopped wondering where my life was going, it was a very interesting and forthright interview\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":898,"url":"http:\/\/orcldoug.com\/blog\/2005\/11\/28\/orion-numbers-and-other-bits-and-pieces\/","url_meta":{"origin":1382,"position":3},"title":"Orion Numbers and other bits and pieces","date":"November 28, 2005","format":false,"excerpt":"Prompted by Jeff Moss' blog, I've been trying out Orion on a couple of servers. I've blogged about it over on the ISP4400 blog. (Actually, I've only just realised that hosting the blog html myself probably means I can't use permalinks to individual blog entries. Hopefully the ISP4400 blog has\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1335,"url":"http:\/\/orcldoug.com\/blog\/2007\/11\/01\/rac-and-aix\/","url_meta":{"origin":1382,"position":4},"title":"RAC and AIX","date":"November 1, 2007","format":false,"excerpt":"One of the interesting aspects of working at my current site is that the DBAs don't install Oracle. Yes, I know, and I'm not going to elaborate on that statement other than to say it's a little frustrating and software management has become a much more interesting experience than I\u2026","rel":"","context":"With 2 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1267,"url":"http:\/\/orcldoug.com\/blog\/2007\/05\/18\/log-buffer-45\/","url_meta":{"origin":1382,"position":5},"title":"Log Buffer #45","date":"May 18, 2007","format":false,"excerpt":"It's my turn again and, looking back at Log Buffer #4, I was amazed to realise that we're up to number 45 already and that my previous attempt was last August. Good work from Dave Edwards, who bears the organisational burden every week. Sooner him than me!I'll kick off this\u2026","rel":"","context":"With 2 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/comments?post=1382"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1382\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=1382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=1382"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=1382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}