{"id":868,"date":"2006-02-05T12:00:00","date_gmt":"2006-02-05T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=868"},"modified":"2006-02-05T12:00:00","modified_gmt":"2006-02-05T12:00:00","slug":"we-never-learn-do-we","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2006\/02\/05\/we-never-learn-do-we\/","title":{"rendered":"We Never Learn, Do We?"},"content":{"rendered":"<p>I had an interesting day at work yesterday. We&#8217;ve run into major performance problems when upgrading a number of Production databases from 8i to 9i. How could that happen, when we&#8217;ve performed regression tests to ensure that the applications perform as well as or better than they did on 8i?<\/p>\n<p>Probably because we didn&#8217;t!<\/p>\n<p>In the technical world that most readers of this blog are likely to inhabit, that&#8217;s unforgiveable. In the business world that some of us also inhabit, there are many reasons why this might happen. Not why it <span style=\"font-weight: bold\">should<\/span> happen, just why it does. In this particular case, it seems that the only production-sized environment that we could have tested in and the only people who could have helped with the testing were both employed on the business&#8217; &#8216;hot&#8217; project (more important than live business systems &#8230;. sigh). So we took the risk. (Well, I say &#8216;we&#8217;, but I was unaware of this until I got dragged in when the doo-dah hit the fan)<\/p>\n<p>So now we were in trouble and what could we do? We started looking at query execution plans that used views, of views, of views &#8230; (you get the picture). Reading 100+ line execution plans under pressure isn&#8217;t enjoyable. We looked at session-modifiable parameters and login triggers. We discussed a downgrade but the problem with that was that the application suffering the problem was a monthly reporting extract from a critical production OLTP database into a lower-priority reporting database. (Although it was important enough that this was a big problem.) The critical OLTP stuff was running perfectly.<\/p>\n<p>In situations like this, you&#8217;re already compromised and desperate so you have to think of creative solutions. In the end, we created a copy of the database by mounting the BCV volumes (mirrors, effectively) on another server and opened it with optimizer_features_enable = 8.1.7<\/p>\n<p>In this case, it did the job.<\/p>\n<p>Now we have to work out why this job is running more slowly in 9i and fix it properly. You know, like you might do during a test phase &#128521; The whole situation is exasperated by the fact that we generate our System Statistics when the machine is deadly quiet. Result &#8211; no System Stats to speak of. Personally I think this might be key, but the only way to find out will be &#8230;<\/p>\n<p>TEST! TEST! TEST!<\/p>\n<p>Hopefully I&#8217;ve been clear that optimizer_features_enable wasn&#8217;t the best answer to this problem (did I mention pre-implementation testing?) but I was quite pleased we came up with a temporary fix for a very sticky problem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had an interesting day at work yesterday. We&#8217;ve run into major performance problems when upgrading a number of Production databases from 8i to 9i. How could that happen, when we&#8217;ve performed regression tests to ensure that the applications perform as well as or better than they did on 8i? Probably because we didn&#8217;t! In&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2006\/02\/05\/we-never-learn-do-we\/\">Continue reading <span class=\"screen-reader-text\">We Never Learn, Do We?<\/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-868","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1019,"url":"http:\/\/orcldoug.com\/blog\/2006\/07\/14\/alter-table-move-and-table-stats-part-ii\/","url_meta":{"origin":868,"position":0},"title":"alter table &#8230; move and table stats (part II)","date":"July 14, 2006","format":false,"excerpt":"Following up on another comment from Howard, I took the initrans change off the alter table ... move so that it was the most basic variation and then ran it on 8i, 9i and 10g. I've trimmed lots of the output this time, but I have the log files if\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":900,"url":"http:\/\/orcldoug.com\/blog\/2005\/11\/22\/amazon\/","url_meta":{"origin":868,"position":1},"title":"Amazon","date":"November 22, 2005","format":false,"excerpt":"I found out today why my review of the new Jonathan Lewis book hadn't appeared on Amazon. Apparently it violated their review guidelines and they didn't want to publish it. I've resubmitted a shorter review, removing everything I thought might be a problem, so I have my own ideas, but\u2026","rel":"","context":"With 10 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":903,"url":"http:\/\/orcldoug.com\/blog\/2005\/11\/12\/book-review-cost-based-oracle-fundamentals\/","url_meta":{"origin":868,"position":2},"title":"Book Review: Cost-Based Oracle &#8211; Fundamentals","date":"November 12, 2005","format":false,"excerpt":"Here's a review of Jonathan Lewis' new book that I've just posted on amazon.co.uk Here is your review the way it will appear: An Exceptional BookReviewer: Doug Burns from EDINBURGH, Lothians United KingdomIt's my favourite Oracle book of the many I've read (apologies to Tom Kyte) and I'm not expecting\u2026","rel":"","context":"With 7 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1361,"url":"http:\/\/orcldoug.com\/blog\/2007\/12\/03\/ukoug-begins\/","url_meta":{"origin":868,"position":3},"title":"UKOUG Begins","date":"December 3, 2007","format":false,"excerpt":"I have a feeling I might be blogging a little less than usual this week.Work has been busy and my laptop's power supply packed up late last week so that I didn't have a chance to get a replacement in time for my presentation. In the end, I gave in\u2026","rel":"","context":"With 3 comments","img":{"alt_text":"","src":"\/serendipity\/uploads\/toys.jpg","width":350,"height":200},"classes":[]},{"id":1570,"url":"http:\/\/orcldoug.com\/blog\/2010\/02\/28\/statistics-on-partitioned-tables-part-5\/","url_meta":{"origin":868,"position":4},"title":"Statistics on Partitioned Tables &#8211; Part 5","date":"February 28, 2010","format":false,"excerpt":"Actually, before looking at any recent features, let me introduce one more aspect of the existing aggregation approach used by Oracle. The examples used to date have been based on INSERTing new rows into subpartitions and, although that's the approach used for some of our tables and will suit some\u2026","rel":"","context":"With 18 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":965,"url":"http:\/\/orcldoug.com\/blog\/2005\/08\/03\/customer-driven-it\/","url_meta":{"origin":868,"position":5},"title":"Customer-driven IT","date":"August 3, 2005","format":false,"excerpt":"One of the most satisfying aspects of my job is helping people. My customers aren't necessarily IT literate so I get the satisfaction of helping them achieve something they otherwise wouldn't. For a long time I felt that IT consultants, developers, DBAs and the rest didn't show enough respect for\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/868","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=868"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/868\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=868"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}