Merry Christmas (Peace On Earth) December 23, 2009Posted by Richard Foote in Christmas, David Bowie, Richard's Musings.
Wow, yet another year almost behind us and what looks like being yet another busy year ahead. Can you believe that The Noughties are nearly all gone, I remember being all excited at the dawn of The Eighties !!
I must say I’m really looking forward to finally saying “Twenty Ten” rather than the more long-winded “Two Thousand and Nine”
I just want to wish everyone a very very Merry Christmas and a fantastic, fun-filled, index rebuild free, very very happy New Year in 2010.
Hopefully next year, Australia will win the Football World Cup, Crystal Palace will finally get promotion to the Premier League, England will be 4-0 down in The Ashes (again) with just one match to go, David Bowie will release a new album and the world will be just that little bit cooler and less polluted.
Here’s hoping anyways, as I’m sure are all the Polar Bears as well; certainly the Aussie, Crystal Palace supporting ones with good taste in music
As is my custom, no Christmas would be complete without a bit of David Bowie and Bing Crosby to bring some good cheer. This year, a lovely fully restored version of their classic performance for your viewing pleasure:
“Our finest gifts we bring, pa rum pum pum pum” indeed
Collaborate 2010: Penny Lane December 18, 2009Posted by Richard Foote in Collaborate 10, Richard's Musings.
Well, so much for my plans to not travel as much next year …
Found out earlier in the week I’ve now been selected to present at next year’s Collaborate 10 event in Las Vegas. I’ll be presenting a new version of my Indexing Tricks and Traps presentation on Monday, 19 April from 10:45am to 11:45am (Session 302).
I’ve been to Las Vegas a number of times but this will be my first Collaborate conference. Back in 1989, I even managed to leave Las Vegas with more money than when I arrived
So if you don’t get the chance to catch me at Hotsos Symposium 2010, perhaps I’ll see you at Collaborate 10 !!
Hotsos Symposium 2010 December 9, 2009Posted by Richard Foote in Hotsos Symposium, Richard's Musings.
1 comment so far
I’ve attended and presented at numerous Oracle conferences and events over the years but one conference I’ve never had the opportunity to attend is the Hotsos Symposium, held each year in Dallas, Texas, USA. It’s one of the premier Oracle events, especially for those of us DBAs with a special interest in performance tuning and management and so is a conference I’ve always wanted to attend one day.
Therefore, it’s with great pleasure and anticipation that I’ve been invited to present at next years event to be held on 7-11 March 2010. I’ll be presenting 2 presentations, Oracle Indexing Myths and Oracle Indexing Tips and Tricks.
As usual, the list of presenters next year reads like a who’s who of Oracle Performance Tuning experts from all around the world, with Tom Kyte being the Keynote Speaker and Tanel Poder conducting the optional (but highly recommended) training day. Don’t let the fact Tanel looks in the photo on the Hotsos Symposium website very much like Count von Count from Sesame Street put you off Having had the pleasure of attending his Advanced Oracle Troubleshooting Seminar, Tanel really knows his stuff.
I look forward to catching up with all of you lucky enough to attend the Hotsos Symposium next year.
Zurich and Paris: Nice Way To Spend A Week November 10, 2009Posted by Richard Foote in Richard's Musings, Travel.
I’ve just returned from a bit of whirlwind visit to Europe, teaching my Index Internals Seminar in two lovely cities, Zurich in Switzerland and Paris in France.
Coming from Australia, everything is relatively new with nearly anything over a 100 years old regarded as historically significant. I therefore love visiting European cities which are so rich in history and where you can walk past buildings regarded as “new” but actually built before Australia was even discovered by the Europeans.
I’ve been to Switzerland before but never to Zurich, so I was keen to spend my free day there doing what I enjoy doing best when visiting a city for the first time, just walking and exploring. I was really lucky in that the weather on my free day was next to perfect, clear and sunny, whereas it rained on all the other days I was in Switzerland.
I started my walk from the impressive “Zurich Hauptbahnhof” (Railway Station) which is actually a lovely old building in its own right. I then made my way down the picturesque Limmat, past wonderful buildings such as St. Peter’s Church with what is considered the largest clock face in Europe, Fraumunster Church which has some of the most beautiful stained glass windows I’ve ever seen, the huge 700-800 year old Grossmunster Cathedral and the elegant Opera House.
After walking around the shores of Zurich Lake for a while, I decided to take a cruise where I just sat on the top of the ferry-boat, soaking up the sun and all the amazing views, including the massive Alps looming on the horizon. Zurich Lake certainly puts Canberra’s own little Lake Burley Griffin to shame although I can cycle around Burley Griffin during my lunchtime, not sure I could do the same around Zurich Lake. I then just walked and walked throughout the “old town” district, exploring all the lovely old buildings with their bay windows and balconies and all the narrow alleyways, squares and little market places. I of course bought some Swiss chocolates for the folks back at home.
As it grew dark, Zurich lit up and all the lovely old buildings shone with a new brilliance. The only incident I had of note was on the train back to the hotel, when the train inspector upon checking my ticket gave me a shocked look, full of disdain as I was inadvertently sitting in the first class carriage !! I was led like a naughty boy to where I belonged with all the other second class citizens. The seminar on the following days went really well with an excellent class of folk (pun of course fully intended).
Later in the week, I went to Paris to present my second seminar. Paris is a city I had previously visited, many years ago as the first destination of my honeymoon. So I had to be careful not to have too good a time, else there might be a few problems awaiting me back at home Again I was really fortunately, having a perfect sunny day on my free day while it rained on every other day of my visit. I decided to basically walk from the Eiffel Tower to Notre-Dame Cathedral while crossing every single bridge on the Seine in between. Paris is absolutely one of my favourite cities in the world, it’s such a unique and special place. The walk was fantastic (I highly recommend it to anyone who hasn’t done it), with just so much to see and enjoy along the way. And boy are there a lot of bridges (I think I counted 14 bridges along the way), but none as impressive as the grand Pont Alexandre III.
Apart from seeing the Eiffel Tower at the start, I spent time at the charming Place de la Concorde, spent a few hours at the incredible d’Orsay Museum (incredible if you’re like me and love Impressionist Paintings by masters such as Van Gogh, Monet and Renoir), went past the one and only Louvre Museum and then onto Saint Louis Island and the stunning Notre Dame Cathedral where I spent some time just marvelling at the place.
I decided to walk all the way back, but this time exploring primarily the north bank with its shops, restaurants and sites such as Saint-Jacques Tower and Place Vendome. As it got dark, I finally made it up to the Avenue Des Champs Elysees and the famous Arc De Triomphe. To finish what was a fantastic day, I then walked all the way across back to where I had begun and the Eiffel Tower at night, so I could see it in all it’s lit-up glory and ambience, with its search beams circling the clear evening skies.
The only problem I had was being continually hassled again and again by people who kept saying I had just dropped a “golden ring” (I guess in the hope I would buy it as some sort of bargain). There must obviously be a good market for shower curtain rings in Paris …
The seminar was again great with a good crowd asking some really good questions. Everyone was very patient as I tried to not talk too fast for those whom English was a little rusty. For those that know me, talking slowly is not a skill that comes easily to me
I had a great time but thankfully, that’s all my travel over with for the forseeable future. Next year I will definitely reduce my travel commitments, spending much more time at home. Which of course also means perhaps spending more time on this blog as well
Rebuilding Indexes Every Sunday Afternoon !! October 28, 2009Posted by Richard Foote in Index Rebuild, Oracle Indexes, Richard's Musings.
I just had to share this amusing article on “Scheduling Oracle Index Rebuilding“.
Regular readers of this blog can no doubt pick the various inaccuracies and strawman arguments with this article. It’s was nice however to reminisce and take a stroll down memory lane back to the 80′s and 90′s when many DBAs indeed did spend every Sunday afternoon rebuilding indexes and the such during so-called maintainance windows.
However, if you’re like me and now work on sites where there is no such Sunday maintainance window because your users actually require and demand 24 x 7 access to their applications, because organisations still want to sell their products and services online during Sunday afternoons, because governments still want border control applications functioning on Sunday afternoons, because consumers still want access to their bank savings on Sunday afternoons, because police still need to access critical information about possible criminal activities on Sunday afternoons, because airlines still want to fly aircraft on Sunday afternoons, etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. ……..
then perhaps the article may not be that useful to you afterall.
Of course, maybe you do have a maintainance window of some description but then have that other really annoying problem associated with modern databases, of them being big, really really big and so more difficult to maintain. Back in the 80′s and 90′s, databases were relatively small by todays standards and it was conceivable for indexes to be rebuilt with little or no thought. There was generally little point, but at least you could get away with it. However, if you’re like me and you have databases with indexes that total in the many terabytes, it just isn’t feasible or practical to rebuild all such indexes, even if you wanted to.
No. If you do have a maintainance window, you may want to make sure the valuable time is spent well, on activities that actually make a difference.
Of course you may also look after databases like I do where the percentage of indexes that actually benefit from a rebuild is not around 30% as suggested by the article but significantly below 1%. Therefore rebuilding 99+% of indexes for no practical gain or purpose may not be considered a “wise” use of maintainance opportunities.
One thing this article did make me ponder though is the number of database sites out there where the DBAs demand and force their businesses and associated end-users into having forced downtimes, into having their applications and business processes impacted and made unavailable (say) every Sunday morning, not because it’s actually necessary or because there’s a business or technical benefit but just because their DBAs say or think they still need to follow the processes and maintainance activities of the 80′s and 90′s. Interesting question that …
One last point I would make with this article (which BTW will change and be modified in the future, I can guarantee that, just save a copy and see). Why would you bother with validating the structure of all indexes if you plan to rebuild them all anyways ? And who is the more inept ? Someone in the Netherlands who attempts to run a script that attempts to validate structure of all indexes or someone who writes a script to validate structure indexes with an ALTER INDEX command
Personally, I spend every Sunday afternoon relaxing and enjoying the weekend, playing sport, perhaps doing a bit of gardening and on a lovely sunny day, just sitting back with family and friends enjoying a barbecue and a few cold beers.
Meanwhile, all my database applications just run on happily along with no impact on business activities at all …
Oracle OpenWorld – Day 5 Hightlights October 16, 2009Posted by Richard Foote in Oracle OpenWorld, Richard's Musings.
Started the day desperate again for a coffee at the OTN lounge.
I was looking forward to catching Kevin Closson at the Unconference but unfortunately the session was cancelled at the last minute. So spent some time having a nice chat with Chris Muir and Tim Hall who I had the pleasure to meet when I attended the ODOUG conference in Monterey earlier in the year.
I then attended an excellent roundtable discussion forum with the Oracle folks who write and manage the Oracle Cost Based Optimizer. Some excellent questions (including mine on the use of AUTO with method_opt ;) ), although I wasn’t totally convinced with the answer given. However, I had to clap and clap rather loudly when they made special mention of not setting the OPTIMIZER_INDEX_COST_ADJ paramater and recommending rather strongly not to touch this parameter at all. Something I’ve been suggesting for quite some time. I also got some encouraging feedback on resolving a couple of key issues I have with statistics gathering:
1) A better way of collecting the clustering factor statistics for indexes so that Oracle can remember more than just the last block it visited
2) The ability to collected extended statistics that span more than one table
Both are being actively looked at. However, the highlight for me was the fact they were playing “The Best Of Bowie” album after the presentation, just for me !!
Also had the pleasure of meeting Christian Antognini in person who’s writings I greatly respect.
My final session of the day and of the conference was a round table discussion with the Oracle Real-World Performance folks, including Graham Wood who I had the pleasure to meet earlier in the conference and Greg Rahn who I also met today for the first time. Again, a very good session with some very good questions and answers, especially the question of when should one rebuild an index and the answer that one should only do so in special cases. The fact that these guys promote this best practice in a large public forum such as this (although I was picked out by the panel from the audience that perhaps I should be up there answering this question !!), can only help in getting the message out there.
And so it ends. I had a fantastic time here at Oracle OpenWorld, met some fantastic people and made still more Oracle friends, but I’m now really looking forward to getting home after over 3 weeks on the road.
Oracle Openworld – Day 4 Highlights October 16, 2009Posted by Richard Foote in Oracle OpenWorld, Richard's Musings.
add a comment
I set out to reduce my pace today with only limited success.
My first session was to attended Alex Gorbachev and Paul Vallee’s Unconference session on how to make DBAs highly available. Interesting discussion on some of the various challenges confronting DBAs, such as controlling the balance between the need for stability and availability vs. the need of some organisations for constant change requirements and the importance of delivering such change as quickly as possible. Also, whether the procedures and processes for managing and controlling change management, including industry and governmental governance requirements are a help and a good thing or a hindrance and a threat in just getting the job done. The answer IMHO is that it depends on how such guidelines are implement and policed. It’s somehow comforting to know that other DBAs face similar issues and concerns as your own.
I then attended an excellent presentation on the new features associated with Data Guard in 11g Release 2 (except for the section where an Apple customer described his experiences with Data Guard, during which I simply couldn’t understand a single word he said). This is certainly all of great interest for us at work with the ability of being able to configure a read-only database farm having obvious business potential. However, I was particularly impressed by the ability of Oracle when confronted with a block corruption to automatically fix the corruption by copying a healthy version of the block from a standby database (or indeed the Primary database if the corruption appears on the Standby side). The key word here is automatically and without a single error message being raised, except for a message written to the alert log. Impressive stuff.
The lunch today was simply superb, absolutely the nicest lunch I can ever enjoy having. Please note these comments are addressed specifically to Chris Muir who missed out on lunch and was hungry all afternoon as a result
Then spend some time in the OTN lounge, catching up with a number of folks, including Cary Millsap. Looks like I might very well be presenting at the Hostsos Symposium next year if I can get enough free time organised.
Watched Larry’s Keynote address from the OTN lounge. I had a press pass that enabled me to watch the keynote up close but the free beers on offer at the OTN lounge convinced me this is the place to be There wasn’t a lot new announced that I didn’t already know, although the 10 million dollar Exadata challenge to IBM is typical Ellison. However the highlight for me was the speech by Arnold Schwarzenegger during the keynote, very funny.
After missing out on all the prize draws yet again (I never, ever win these sorts of things, ever), I despondently made my way back to the hotel. Had a lovely dinner with my family who are over doing all the sightseeing things while I’m at the conference beforing making my way to the Oracle Appreciation Event on Treasure Island. Popped into the Aerosmith concert for 5 minutes, tick, seen them now and then over to see dear old Roger Daltrey who performed a really good set of mainly Who classics. Oracle certainly know how to put on an excellent show. However for me, the highlight was actually the coach ride to and from the event with the stunning views of the San Francisco lights as we crossed the Bay Bridge.
sadly, it all comes to an end tomorrow …
Oracle OpenWorld 2009 – Day 3 Highlights October 15, 2009Posted by Richard Foote in Oracle OpenWorld, Richard's Musings.
The first thing to note about day 3 is that it’s wet. I mean really really wet and really windy as well. Considering my home town of Canberra has been in drought now for many years with water restrictions in place, I haven’t seen this much rain for a very long time. That said, I believe it’s been raining quite a bit in Canberra since I’ve been traveling so perhaps things are beginning to change for the better at last.
Started the day by attending Dan Morgan’s Unconference session on 11g Rel 2 new features that don’t feature in the marketing material. Some good stuff is in there, with basic little things such as being able to now easily alter database links for example having the potential to make life a little easier.
I then presented my own Unconference Q & A session on Oracle indexes. The turn out was actually quite good and there were some really good discussions including Index Skip Scans, Locally Partitioned Indexes, dangers of Bitmap indexes, coalecing rather than rebuilding and how different it is to drop an index once it’s been created. Thank you to everyone who attended and for making the session a successful exercise, including Jonathan Lewis who started the ball rolling with the first question and some excellent comments and Tim Hall who managed to ask the first David Bowie related question
The heavy rain meant I didn’t have the patience or a strong enough umbrella to wander too far from the main Moscone complex, but I managed to catch a nice presentation by Karen Morton on how to effectively collect database statistics. She presented really well and I really it although perhaps didn’t highlight enough the perils of some of the auto statistics options, especially with regard to method_opt.
I then listened in to Dan Norris in the OTN lounge on the new Exadata V2 offering. Certainly the columnar compression capabilities sound interesting. Of course I also heard that everything runs so fast that you might not need indexes on such a powerful beast, so perhaps my days on covering indexes on this blog are numbered
I next had a look around at the other exhibition hall, practicing my golfing skills and picking up yet more t-shirts and yoyos that light up in funny ways. I’m a bit concerned that my luggage just won’t be able to hold all this stuff I’ve picked up !!
I have an interest in the Total Recall capabilities of 11g (and it’s lack of capabilities) and so attended a presentation on the improvements of Total Recall and flashback archive in 11g Rel 2. It looks like most of my issues with subsequent DDL changes on flashback archive enabled tables now being supported one way or the other. However, I still have concerns with the potential “corruptability” of the archived historical data and the subsequent recoverability implications. It would also be a nice improvement if “who” made a particular change was more readily available without having to purchase yet more expensive database options or have to modify the table structure.
The final presentation of the day was Tom Kyte’s Top 11 new 11g Release 2 New features. His top 11 was basically:
- Do It Yourself Parallelism (with new dbms_parallel_execute feature)
- Analytics Functions (new ones such as LISTAGG and NTH_VALUE)
- Execute on a directory (and the preprocessor capabilities)
- Recursive Subquery Factory (self referencing WITH clause capabilities)
- Improved Time Travel (Total Recall improvements as mentioned above)
- You’ve got mail (new file watchers capabilities that can automatically invoke some code when a file arrives in a directory)
- Deferred Segment Creation (only allocated storage when the first row is inserted, not when segment is created)
- Flash Cache (write blocks back to disk AND an SSD like device so that subsequent reads from the SSD are faster)
- Parallel Improvements (such as better control of parallel process executions and memory parallel execution capabilities)
and both number 10 and 11 best feature, the killer one …
- Edition Based Redefinition (ability to have different versions of the same stored code running at the same time within the database)
As usual, Tom covered this topics with nice examples, in a very clear and concise manner.
On the way back to the hotel, I popped into the Blogger get-together function and had a few drinks and had the opportunity to meet and chat with a number of fellow Oracle bloggers. Thanks to the Alex Gorbachev and Justin and the OTN team for putting the event together.
Aussie Oracle Bloggers, although one of us an Aussie no more
It’s been a looong day …
Oracle OpenWorld 2009 – Day 2 Highlights October 14, 2009Posted by Richard Foote in Oracle OpenWorld, Richard's Musings.
It’s been a busy day today.
The effects of drinking perhaps one too many margaritas at the Oracle ACE dinner last night meant I was in desperate need of my morning coffee to start the day. Thank goodness for the OTN lounge
There were a number of announcements today but perhaps the main one from my perspective is the announcement of Oracle’s Enterprise Application Documents offering, an issue we’ve been battling for a long time.
I attended the Jonathan Lewis Unconference presentation on how to be an Oracle expert. It was all really quite interesting and raised a number of points that made one ponder. He asked for example what was the Oracle release that introduced the most significant change. See if you can come up with the same answer he gave (which after thinking about it is probably correct).
Later attended a general presentation that covered both 11g Release 2 and the new OLTP Database Machine Version 2. Usual marketing hype, much of which was already covered during the launch presentations. Discussed features such as RAC One, tiered storage partitioning options and advanced compression which are all certainly on my list of things to investigate.
Caught up with Gareth Llewellyn who mentioned the new OJAM Red Room website that has lots of Oracle information and OpenWorld insights, with an Aussie / NZ emphasis.
After lunch, spent some time in the exhibition hall, stocking up on t-shirts, assorted pens and rubber ducks
Attended Jonathan Lewis’s other presentation on hints on hints. Again excellent, picking up a number of useful little tips, especially the full potential of the qb_name hint. I think he summarised things nicely when he recommended:
1) Don’t use them
2) If you ignore recommendation 1, then be very very careful and precise when using hints
He also explained very nicely the myth that hints can be “ignored” by the CBO when he asked a poor soul from the audience to take off a jacket which he wasn’t wearing. He obviously didn’t perform what was asked of him as it wasn’t possible but did he actually ignore the request …
Later had a nice chat with Jonathan in the OTN lounge, exchanging thoughts mutual acquaintances we unfortunately know and the beauty and magic of Oxford City.
Finally attended the Battle of the DBAs Version 2 presentation which attempted to demo the potential productivity improvements when using the new EM capabilities and features. I don’t think they quite pulled it off but certainly highlighted that EM has some very nice features.
My mission tomorrow is to find out why they’re serving at the conference Seattle’s finest coffee here in San Francisco
Oracle OpenWorld 2009 – So It Begins … October 12, 2009Posted by Richard Foote in Oracle OpenWorld, Richard's Musings.
add a comment
Wow, I’ve had one hell of a 2 week period !!
I’ve been travelling around the southern part of England with my son, as part of a school football tour, with 22 other teenage boys. It’s been a lot of fun but it’s also been extremely tiring, getting up early each morning, packing in as much as possible into each day, living in youth hostels with a room full of snorers, attempting to sleep on lumpy bunk beds, while making sure 20 odd teenagers don’t do what teenagers do naturally which is getting into trouble. On the whole we succeeded, losing just the one boy for just the one afternoon !!
Highlights included watching two English football matches (Tottenham vs. Burnley and the mighty Crystal Palace vs. Blackpool) and just walking around and enjoying the sights of wonderful places such as Oxford, Bath and London. Lowlight (other than losing that one boy for a while) was getting caught trying to sneak into a public toilet without paying the 50 pence fee only to be caught on CCTV and making the mistake of going into the ladies rather than the mens !!
Rather than go home and recover from the trip, I’ve now made my way across the Atlantic to enjoy Oracle OpenWorld here in foggy San Francisco.
Being a Sunday morning, it was a bit of a struggle and somewhat unnatural to get up early but Tom Kyte was doing the first keynote talk so I made the effort to attend. It was as usual with Tom an entertaining and interesting little discussion on what we as developers (and DBAs for that matter) still do oh so wrong. It covered topics such as how we often don’t know how to ask for help and ask questions properly anymore, how we try and make what should be simple as complex as possible (a real theme at my work at the moment), how we try to ignore and pretend mistakes never occur (don’t mention WHEN OTHERS SET NULL with Tom around), how we even fail to back things up properly and finished up on how best practices can often be abused and misinterpreted if we don’t fully understand the reasons and circumstances when something really is a best practice. All good stuff which is always worth reinforcing.
I had a little chat with Tom afterwards and found out to my joy that Tom is also a great fan of “Flight of the Concords”
I was then interviewed and filmed by Gareth Llewellyn and the gang from Australia Oracle Marketing on being at Openworld and the such and it all went rather well only to be told afterwards that they forgot to turn on the mike and would I mind being interviewed and asked the questions again !! I thought it was all so funny that I found it really hard not to giggle and laugh during take 2 of the interview. I’ll post the link once it gets uploaded to youtube or wherever. Here it is.
Later in the day I met up with a whole bunch of my Oracle mates, which of course is one of the main reasons for attending conferences such as this. One of them was Alex Gorbachev who also conducted a little interview with me I think it’s going to be one of those conferences.
Tonight, I’m off to attend the Oracle ACE dinner and catch up with more folk. If I don’t drink too much, I’ll try and answer some of the questions that have been slowly mounting while I’ve been away. Don’t like my chances though …
I’ll post a little list of highlights each day during the conference.
Unconference – Highlight of Oracle OpenWorld 2009 September 23, 2009Posted by Richard Foote in Richard's Musings.
1 comment so far
I’m about to embark on another overseas adventure, this one taking me right around the world. I’ll first visit the country of my birth, England, for a few weeks before making my way across the Atlantic Ocean to attend Oracle OpenWorld in San Francisco.
This will be my second Oracle OpenWorld. I already have a packed schedule with something planned each evening so it’s going to be a really busy period but hopefully a lot of fun as well. With 11g Release 2 and the new Sun OLTP Oracle Database Machine to investigate, I’ll try and target the more technical, less marketing hype presentations and discussion forums if I can.
However this year, I believe one of the real highlights of the whole conference will be the somewhat low key Oracle Unconference (note the photo in the link !!) that will be running for the 3rd time. Held on the 3rd floor of Moscone West, it’s basically a series of presentations that anyone interested in discussing or presenting a topic can just sign up and participate. It’s designed to be a far less “formal” or structured event than the usual conference presentations with more emphasis on discussions and interaction than Powerpoint slides and the such. That said, anyone can present on any topic in any manner they like and if it’s of interest will hopefully attract like interested folk.
With a whiteboard and laptop in hand, this year I’ll be presenting a Q & A session on Oracle Indexes on Tuesday 13 October at 10am where anyone can ask me whatever question relating to Oracle Indexes might be on their minds. If the Oracle questions run out, we can always discuss what David Bowie album is the most influential
This year, there is a truly excellent list of people who are also presenting at the Unconference including many Oracle ACE Directors and well renowned experts such as Cary Millsap, Greg Rahn, Alex Gorbachev, Kevin Closson, Chris Muir to name but a few, who will be covering a wealth of really interesting, technical based topics. It’s a fantastic opportunity to see these folks in a small, informal setting where you can actually ask questions and interact in discussions, rather than just be one of the crowd in a typical “big room” OOW presentation.
For those of you lucky enough to attend the conference, I would strongly recommended spending some of your precious time checking out the various presentations on offer at the Unconference.
Hope to meet some of you at Oracle OpenWorld in a couple of weeks !! If you see me wandering around or at the Unconference, please come or stop me and say hello.
Lanyon United Masters Div 3 Football Premiers 2009 (We Are The Champions) September 15, 2009Posted by Richard Foote in Richard's Musings.
On Sunday mornings, I play for the mighty Lanyon United Football Club, in the Canberra Masters Division 3 competition. You need to be over 35 to compete, meaning it’s a league specifically for those who are highly skilled, have years of previous experience but not handicapped with youthful exuberance
In the previous 2 years, we managed to get to the final series but lost out in the semi-finals. This year we managed to get to the Grand Final where we met our local rivals, the Brindabella Blues.
This was the first Grand Final I’ve ever played in so I was pretty excited, managing only a couple of hours of sleep the night before. I’ve been struggling with injuries for much of the season but a few sore leg muscles weren’t going to stop me from giving it my all. It was a perfect Canberra Spring morning and I just had a good feeling about the day. There was a decent crowd on hand to support us oldies in action when the whistle blew to start the game.
The first half was a pretty close affair with perhaps Brindabella having the better run of play. Within a few minutes of starting, my left calf was feeling pretty tight and sore and I had their speedster on the left wing to contend with (note that “speed” is a relative word in Masters Div 3). It was with some relief when half-time arrived with the game still tied at 0-0. The second half was equally close although we started to gain more control and have the better of the chances. With about 20 minutes to go, I just couldn’t get the final touch on a ball that slipped through the penalty box.
Then with 15 minutes to go, disaster struck. I was off chasing a ball down the wing when my legs just gave out, first tearing my right hamstring and then with the very next stride, tearing my left calf. Ouch !! Down I went like a sack of lumpy potatoes and off I slowly hobbled with the support of a few teammates. My contribution was over but with the game still locked at 0-0, the game was far from over.
Watching helpless from the sidelines, in a lot of pain wasn’t easy. We had a number of good chances to win late in the game but full-time arrived with still no score. So 10 minutes of extra-time each way it was with then. 5 minutes into the first period and the dead lock was finally broken when a break on the right resulted in a nice cross for Robin, our ever reliable striker, to brilliantly put the ball into the back of the net.
Wooohooo !! We were up 1-0. I was so excited that I forgot I was injured and hurt my legs some more as I jumped up off the chair. Time appeared to just drag for the rest of the game but our superb defence was just impenetrable and we managed to hold on for victory.
Lanyon United 1 Brindabella Blues 0. We had won the game and were Premiers for season 2009 !!
It was such a great feeling, all the hard work and pain was worth it. And a beer had never tasted so good.
Yes indeed, we’re one hell of a good looking team More photos here.
Thanks to all the guys and all our supporters for making it such a fun and rewarding year. I’m already looking forward to defending our title next season.
I visited the physio the next day who was really impressed that I managed to injure 2 different muscles in both legs simultaneously. I should thankfully be OK for my upcoming trips to England and then Oracle OpenWorld in the coming weeks.
Back to Oracle indexes and the CPU based CBO in the next couple of days …
Malaysia and Tall Buildings September 7, 2009Posted by Richard Foote in Richard's Musings, Travel.
Canberra is not only the capital of Australia, a fact not particularly well known outside our shores, but it’s also one of the most fabulous cities in the world in which to live. This last fact is not particularly well known within Australia either
It’s a beautiful, peaceful city that offers a wonderful standard of living, with generally lovely weather wrapped within four distinct seasons. Yes, the winters can be a little cool and the summers a touch warm, but having lived in Manchester, England for quite a number of years, the weather isn’t too far from perfect most of the year round.
Another “charm” with Canberra is that it isn’t a big city “Metropolis” with large crowds, big traffic problems and tall buildings. In fact, because of Canberra’s strict building restrictions, the tallest actual building in Canberra is the somewhat unimpressive Lovett Tower, at just 26 stories and 93 metres in height.
When I visit a “big” city, I therefore get easily impressed by tall buildings and usually walk around staring upwards, walking into passersby and lightposts on a continual basis. I love New York for example and can spend the whole day just walking the streets, staring up at all the fantastic tall buildings.
Last week, I had the pleasure of visiting Kuala Lumpur in Malaysia for the first time, presenting my Index Internals seminar. I only had a few days but I made sure I had time to walk around and have a good look at the very impressive and oh so tall Petronas Twin Towers. At an incredible 88 floors and at almost 453 metres, they’re the tallest twin towers in the world and were the tallest buildings until surpassed by the Taipei 101 in 2004.
What’s so spectacular though is the skybridge that connects the two buildings on the 41 and 42 floors. It just seems to hang there suspended in the middle, with what looks like a few fragile legs holding the bridge in place. Although impressive during the day, the buildings seem to sparkle to life in the evenings as the buildings light up in spectacular fashion, like a pair of huge exotic Christmas trees.
I resisted the temptation however to actually go up the towers. Having been up the World Trade Centre in New York, I still get a little nervous about such things.
Shopaholics would also I’m sure be impressed by the 6 levels of shopping available in the massive Suria Shopping Centre, at the bottom of the Petronas Twin Towers. Fortunately, I already had all the David Bowie albums on offer and resisted the temptation to spend too much I particularly loved this view of the towers from within the shopping centre:
I had a great time during my brief visit, ate some “interesting” food and met some lovely folks during the seminar. Kuala Lumpur is well worth a visit if you ever get the chance.
Demonizing Foreign Keys (“Helden”) August 25, 2009Posted by Richard Foote in Foreign Keys, Richard's Musings.
My mate Marcel Kratochvil, a fellow Canberran Oracle ACE Director and David Bowie fan, has recently published a paper finally called “Discussing Foreign Keys and their usage in the Database” in which (in his own words) he is “demonizing foreign keys”.
It’s a really good read, well worth the effort, in which covers various interesting topics but primarily questions the general usage of Foreign Keys in the relational (or object-relational) database, especially in the world of multimedia. He’s been arguing against the general use of Foreign Keys in the database for a long time and has finally put down his thoughts on the subject. I would highly recommend giving the paper a read and see if it might alter (or confirm) your own views on the subject.
Although I think Marcel makes many a good point and I agree with much of what he says, I however basically disagree with his general central notion and arguments against Foreign Keys. I guess I still consider myself a ”Foreign Key Dinosaur”
These are just some of the comments and feedback I gave Marcel when I was given an early look at the paper. I suggest you read Marcel’s paper before my comments so they make more sense and can be put into context and perspective.
“Let me say that I agree with much of what you say and you make many valid points. Certainly the world of multimedia is one which we at work are slowing moving into and it certainly has many challenges. Now, with respect to the specific issue of FKs in the database, I suspect we’re actually in some ways in agreement. I agree with you that there isn’t necessarily one correct answer for all situations. One of your closing statements:
“So by all means use Foreign Keys, but don’t blindly use them. Use them when it makes sense, when it solves a tuning issue or when maintaining a relationship between tables is crucial to the application running“
is actually pretty well what I think as well. However, I suspect our interpretation of what this actually means differs somewhat with my opinion being that it makes sense to use FKs far more widely and comprehensively than perhaps you suggest in your paper. So our likely differences of opinion lies mainly with the occurrences of when it makes sense to use FKs. However, your paper doesn’t alter my fundamental view that it almost always makes sense to use FKs in the database where possible.
Firstly, many of your comments suggest DBAs generally find FKs problematic, developers like to push them. As a DBA (and ex developer of nearly 10 years), I find FKs to be essential in many of my activities and find they generally assist, rather than impede my tasks. More on this later but the importance of FKs on DBAs activities and responsibilities is paramount.
I don’t think anyone seriously suggests that FKs (or other constraints) ensure data integrity in the general sense. Yes, someone can enter incorrect details or pick the incorrect menu option. However, constraints and FKs specifically are an important method of reducing the occurrence of data integrity related issues that if not implemented in the database, needs likely to be implemented less effectively elsewhere. More on this to come but whenever I mention data integrity later, I mean it only in the sense of having consistent data relationships that follow key business rules.
Examples are good because the strength of the example can often be telling. Take your deleting an account but keep the purchase order example. Tricky scenario but one which simply requires a correct physical model with FKs to support it to start with. If person accounts must be deleted, then either it doesn’t indeed make sense to use a FK in the purchase order table to point to the person account or the FK needs an “on delete set null” type logic or the FK needs to point to a entity details table that contains data that doesn’t have to be deleted, etc.. Will the tax audit really be happy to have purchase orders associated with unknown entities, how can you prove the purchase was legitimate and not a fraudulent tax reduction if the purchase order can reference entities that don’t exist. A entity number that references nothing is meaningless therefore it either needs to reference something else, perhaps sufficient person details to keep both privacy and auditing requirements satisfied, or it should be removed. A FK would be
critical in such an application but it needs to point to the correct entity and/or be maintained appropriately to ensure the business rules are followed.
The issue of “not trusting” developers is an interesting one. I fundamentally don’t trust developers to perform and code FK functionality outside the database for 4 key reasons:
1) Developers come in sorts of shapes and sizes, have all sorts of experiences and come in varying degrees of quality. There are good developers and not so good developers and as I have no control on their hiring and firing, can’t assume they’re necessarily “trustworthy” when it comes to ensuring their code will maintain necessary data relationship integrity. I’ll trust FKs in the database over developers in this respect any day as FKs in the database are far simpler to implement and control.
2) Even the best of the best, the most brilliant of developers is limited by being human. And no matter how good, humans make mistakes. They occasionally write code that might leave orphaned data, they write code that might not take into consideration a specific business rule, they change the business rule in the application but forget to change it correctly in a specific module. A FK in a database doesn’t make a mistake. If it’s there, it’s centralised and it’s enforced. Period.
3) Note the database itself, with all its clever internal code, must still lock tables when a parent record is deleted/updated/merged. Now Oracle internally can get around this if an index exists on the FK because it can in effect check the index structure to ensure no new associated FKs are inserted. This “trick” is only available to the Oracle code, a developer can’t effectively lock a row in an index that doesn’t exist. Therefore, if Oracle itself is forced to lock a table to ensure the relationship between tables remains consistent, a developer must likewise lock a table during any similar operation. The very best of trustworthy developers only really has the choice between locking tables or potentially allowing “dodgy” data in the system. Give me an indexed FK constraint any day as it will fundamentally be more efficient to implement.
4) Even the best developer, writing the most perfect of error proof code, can’t necessarily control how data is accessed and changed in the database. In highly complex environments (note some of our applications have 2,500+ tables), with these users that make mistakes, it’s virtually impossible for the application to cater for every possible data “cleanup” scenario. Therefore, DBAs (in particular) and other power users are frequently required to go in the database via the “backend” and clean things up. I
don’t know of any of our more complex applications, be they in-built or 3rd part apps, where this hasn’t been necessary. Business rules in the application, with FKs effectively managed in the application are of no use when data is not access via the application. And we can’t wait the 6 months it might take to change the application to prevent these scenarios from occurring or to make the application able to deal with the data spill or data “integrity” issue.
Expanding on this point a little, we have many many Oracle applications. These are “real-world”, modern applications. I can tell you without exception, that the most problematic, worst performing, data integrity error filled atrocities of applications we administer have a common characteristic. They don’t have FKs. I don’t have to imagine an application that has no FKs, we have a number of 3rd party apps, running in production right now that have no FKs, ranging from case management systems to CAD systems that I need to deal with every day. Guess what. They have various performance issues AND all manner of data integrity issues, directly as a result of not implementing FKs in the database. I’m sure these software companies trusted their developers … As a humble DBA, we have little control over the adoption of these various apps, although lessons are being learnt and things are slowly changing.
Not only are data integrity issues much more prevalent in these apps, I also don’t have to imagine the nightmare that is trying to resolve data related issues without FKs in the database. If I have to remove (say) an over classified document after its been incorrectly inserted a few weeks ago into the system and subsequently linked and referenced all over the place, it’s extremely difficult to safely remove it. We have no way of knowing the necessary dependencies, if you delete a row here or there, how to ensure there’s no orphaned data left behind as a result and measure the impact in other parts of the apps. Interestingly, even the software vendors themselves struggle and forever provide scripts that don’t clean data out correctly. Application upgrades invariably result in corrupted data relationships.
Our applications with FKs have far less issues and when we do need to clean things up, the FKs both protect us and clearly document what needs to be done. One can’t “accidentally” delete a parent row, leaving orphaned data behind, the enabled FKs won’t let us. We know the impact of changing this column definition or dropping this column, the FKs tell us all the related dependencies. We don’t go in blind, we don’t have to guess, we know. We know that by removing (say) this document from the system, it will impact all these related cases, that this person will no longer have these details recorded against him. And no, having some data integrity issues due to FKs being left out is not acceptable. The implications of having say orphaned data might mean a vital document containing critical intelligence information is inaccessible by the application, resulting in perhaps a fugitive being able to leave the country or conversely, sensitive data still being accessible. The implications here can potentially be life threatening. It doesn’t get any more real world than that and FKs are a vital component in ensuring the correct data is visible when it should be.
When the help desk forwards an ORA-02292 – child record found error or if we get one during a data spill cleanup, unlike some who grumble and complain, I just thank goodness for the FK. Because someone is attempting something that a business rule doesn’t allow and hasn’t thought through the implications. Without the FK in the database, the operation would have succeeded and caused a data integrity issue. No, the child records need to be removed as well or no, the parent record needs to be logically deleted instead or no, you simply can’t now perform that operation due to the live data in the system, etc. The FKs help to protect us from ourselves, be it at the
application level or indeed via any accesses to the database.
Without FKs, one is blind to the relationships and dependencies between objects within the database. The application is not a pretty place to search and neither is the documentation, assuming it exists and is up to date.
Not only is the DBA and others “blind” to these relationships if the FKs are not enabled in the database, but so is the CBO. A point you’ve missed a little in the paper is the performance implications of the CBO not being able to make important assumptions on the data relationships if FKs are missing. It’s not a good idea to hide information from the CBO, it reduces its options and limits its decision making processes. It can’t for example determine and ignore redundant join conditions, it can’t make use of query rewrite opportunities, it can’t assume it can use an existing index or use an efficient join method, etc. And the CBO gets cleverer and can make use of database constraint information more often with each new release. Without enabled FKs, the CBO can’t use this information and might make sub-optimal decisions as a result.
At the end of the day, I agree with your statement that we should use FKs when they “make sense”. It’s just IMHO, they make sense far far more often than you appear to suggest. I work with applications without FKs in the database, it isn’t pretty !!”
Marcel has started a Foreign Key Discussion website where you can find his paper and make comments on the various subject matters discussed. I’m sure Marcel would welcome any such comments and feedback.
Monterey and ODTUG Kaleidoscope 2009 Review June 30, 2009Posted by Richard Foote in Kaleidoscope, Oracle ACE Director, Richard's Musings, Travel.
I’ve just recently returned from a really enjoyable trip to the USA to attend an Oracle ACE Director briefing at Redwood Shores and the ODTUG Kaleidoscope Conference in Monterey, CA.
During the week, I had the opportunity to finally meet some of the other Oracle ACE Directors such as Tim Hall, Mark Rittman, Lucus Jellema, Lonneke Dikmans, Mike van Alst, Husnu Sensoy, Debra Lilley and Harshad Oak to name but a few. I also had a great time hanging out with fellow Aussies Chris Muir and Marcel Kratochvil, sharing many a beer and bottle of red wine. A highlight was sitting outside one balmy evening, drinking one of Marcel’s expensive reds with Chris and Tim Hall, whist discussing the bizzare topic of body hair !! During the week, it was announced Chris had been awarded the Oracle ACE Director of the Year, a much deserved honour and Marcel got the opportunity to spread his dislike of having Foreign Keys in the database to anyone who would (and would not) listen.
I also got to meet the infamous Stanley as well. Life can be strange at times …
The ACE Director briefing was a very long day. I can’t say too much until tomorrow’s big Oracle Fusion Middleware 11g Global Launch …
How many Oracle ACE Directors do you recognise (and can you spot me)
The ODTUG Kaleidoscope Conference was excellent, a really well run event, held in the lovely surroundings of the Hyatt Hotel complex in beautiful Monterey, California. As usual with these types of events, the quality of the presentations varied considerably. Some of the highlights included an excellent presentation by Bryn Llewellyn on “Doing SQL from PL/SQL: Best and Worst Practices” and some really interesting presentations by Toons Koppelaars on the importance of “Fat Databases: A layered Approach” and on “Semantic Query Optimization”. Lowlights included a truly awful, error riddled presentation by Burleson on so-called Oracle 11g SQL Tuning Secrets. I was warned beforehand, I should have known better and listened …
Also had time to explore Monterey and check out some of its attractions. It’s a really scenic part of the world and it was great to escape the Canberra winter for a couple of weeks. The Monterey Bay Aquarium is a must visit, one of the most impressive I’ve ever visited and I’ve seen quite a few around the world. The Kelp Forest display with its school of Sardines was just superb as were the jelly fish tanks.
Fisherman’s Wharf was worth checking out with it’s old wooden buildings as was Cannery Row, made famous by John Steinbeck. However, probably the highlight for me was the Whale watching cruise where I along with Chris, Marcel and Debra Lilley were all lucky enough to see two Humpback Whales. What an incredible experience, although I almost (but not quite) nearly saw my breakfast again in the choppy conditions. The smell of the Humpback whale’s plume (something akin to a mixture of rotting broccoli and rotting fish) had me gagging again but I managed to just hang on. If you ever get the chance, do it, but pick a mild calm day if possible.
Finally, I also had the very great pleasure in meeting members of the hard working OTN team responsible for administrating the Oracle ACE program (Justin Kestelyn : follow link for photos, Todd Trichler, Vikki Lira and Lillian Buziak). Thanks guys for all your wonderful work and support in organising such a wonderful event for all the Oracle ACEes.
Back to the CBO and indexes in the next few days.