September 18, 2010 (Updated September 18, 2010)
(Disclaimer: To satisfy the one person that might wonder if my account of this event should be “considered credible” I must admit up front that I had some involvement in the planning of the event.)
I will make a prediction that an event like this is unlikely to happen again any time in the next couple of years. The two to one ratio of attendees to OakTable members made it quite easy for me to talk to knowledgeable people from around the region, and around the world – both OakTable and non-OakTable members were quick to share their knowledge, experiences, and knowledge acquisition techniques. I even bumped into a couple of people who admitted to reading this blog.
Let’s first start with what I did not like about the event:
- The seat bottoms in the chairs in the conference rooms were a bit hard. It seems that I had the constant urge to get up and fix something, yet there was nothing to fix, and I would have risked missing something that was quite useful if I did look away for a moment.
- I identified three errors in the presentation slides. I was not able to pick out the errors until the presenter said something like, “Oh, by the way there is a typo in the second spelling of this parameter on the slide,” or “that should be REMOTE_LISTENER, not LOCAL_LISTENER,” or “that’s not supposed to happen.” It is refreshing to see that people at this level are able to point out mistakes, and then spin that mistake into a teachable moment.
- The food and beverages. Yes, there was an abundant supply of high quality food, and a wide variety of beverages (some only available after the sessions). But where was the Diet Cherry Coke? Pepsi products are OK unless you have to think clearly about performance problems (this is my excuse for being slow in spotting errors).
- While there were only three simultaneous presentations, without fail there were two sessions that I wanted/needed to see at the same time, and a third session that probably would have broadened my level of understanding into entirely new directions.
- Walking up and down the stairs rather than using the elevator – the hotel is not nearly tall enough to walk off all of the performance problems that could result from the third bullet point (I made sure to stop running the stairs to avoid compulsive tuning disorder).
As you can probably tell from the above list, it was hard to find things not to like about the event. Carol Dacko did a fantastic job keeping everyone on the planning committee for the MOTS event on task, pushing toward an educational experience for all attendees. All of the members of the MOTS committee contributed a substantial amount of time and effort (and travel miles) over the last seven to nine months.
Before I describe what I liked about the event, I will first list the presentations that I managed to attend (I highly recommend these to anyone who has the opportunity to see these again in the future):
- Moans the Magnificent by Mogens Nørgaard and Cary Millsap. An Oracle comedy routine similar to the Carnac series by Johnny Carson. A great way to begin the event, although I think that one or two of the jokes might not have made sense to most of the audience members until a couple of hours later.
- How to Write Efficient SQL by Jonathan Lewis. Using cutting the grass as an analogy, Jonathan explained why it was important to be familiar with the data to be queried, to ask if a better execution plan exists, and how to help the optimizer find the better execution plan.
- Battle Against Any Guess by Alex Gorbachev. Why know when you can guess? Not even educated guesses are good enough? Alex founded the BAAG party and wrote a chapter in the Expert Oracle Practices book on the same topic. Rumor is that there is a BAAD party around the corner if the NoSQL ACID-free movement gains momentum, roll-aids will be used rather than undo. But once again this is just a rumor.
- Back to Basics – Choosing the Starting Point of Performance Tuning and Troubleshooting Wisely by Tanel Poder. This is one of those sessions that I had hoped someone would put together. It seems every time I see a person on the OTN forums propose the use of AWR (or Statspack) to identify a problem found in a specific session, I want to reach out and say to that person, “a system with a loose screw is rarely fixed by putting the screw into a nail gun – use the right tool for the job, and avoid what does not work.” Tanel’s presentation covered that issue and many others. His slides had a great deal of detail, much more than could be discussed in the 50 minute time period. His slides made be downloaded from here.
- CBO Fundamentals: Understanding the Different Modes of System Statistics by Randolf Geist. Highlighting the evolution of the cost based optimizer from using the Oracle 8i OPTIMIZER_INDEX_COST_ADJ and OPTIMIZER_INDEX_CACHING parameters to reduce index costs, onto the use of system (CPU) statistics which effectively increase the cost of full table scans and consider the expected CPU utilization as a component of access path cost.
- Thinking Clearly About Performance by Cary Millsap (part I and II). It is hard to describe this two hour presentation, other than to say that it is one of the best presentations offered at the symposium. The whitepaper may be downloaded from here.
- SQL Baselines, Adaptive Cursor Sharing and Automatic Cardinality Feedback by Jože Senegačnik. The presentation described interesting features that affect Oracle’s optimizer’s ability to repeatedly use the same execution plan in 10g, 11g R1, and 11g R2.
- Everything a DBA Needs to Know about TCP/IP Networks by Chen Shapira. Chen stated up front that the presentation could not possibly contain everything that a DBA needs to know. Instead, she described four types of network-related problems that she encountered and the tools that are available to help with analysis. Her presentation ties into my seven part blog series on network monitoring.
- Interpreting Execution Plans by Christian Antognini. Christian effectively covers the information that should have appeared in the Oracle documentation about how to read execution plans. One hint from the presentation: the most indented line in the execution plan is not necessarily the starting point of the execution plan. A very detailed (better than any other resource) description of reading execution plans is found in Christian’s Troubleshooting Oracle Performance book.
- The Beginner’s Guide to Becoming an Expert by Jonathan Lewis. This was a presentation with a single slide, but the message was not in the slides, but instead in the scripts. Creating models of problems, recognizing (and investigating) unexpected results, and comparing the results between Oracle releases to understand how Oracle Database behaves when certain conditions are present. While I do not have 2,000 scripts, I would like to hope that the test cases found on this blog are constructed to serve the same purpose – to help myself (and others) understand why “A”, “B”, and “D” happen, while “C” only happens when “E” is introduced. It was definitely a bitmap smashingly good session. Does the method work? My personal experience says yes.
- Understanding LGWR, Log File Sync Waits, and Commit Performance by Tanel Poder. You might be curious about what happens when your CPUs are pushed toward 100% utilization. You might be curious why placing your redo logs on SSD drives may not help. You might be curious why SQL_IDs cannot be associated with the log file parallel write wait event, as was stated to be possible on page 322 of one of the books that I reviewed. If you missed this presentation, you are probably still curious.
- Why Isn’t Oracle Using My Index by Jonathan Lewis. Is clustering factor a factor (see the sample chapter from the “Cost-Based Oracle Fundamentals” book). Is ASSM a factor? Are incorrectly set parameters the problem? Are the recorded performance statistics about the server a factor? Are missing statistics for virtual columns the problem? Is a function applied to the indexed column (I don’t think that this was mentioned, but the time ran out before the presentation finished)? Interesting examples throughout.
What did I like about MOTS?
- Making a run to Kinkos (local photocopy center) at 12:45 AM to run off copies of the agenda for the next morning.
- Setting up a 13 drive RAID array using USB keys plugged into the laptop – the presentations had to be transferred onto the fancy real wood USB keys. The MOTSCopy.doc (manually build the text file from the contents) file contains the scripts that I used for the copy process which alternated in parallel the writing to the USB keys when the CopyAll script was executed. (See below)
- Having a chance to meet for the first time a large number of OakTable members. It is rather remarkable that the OakTable members traveled around the world on their own dime to offer this training in Michigan. I think that says something about the commitment of the OakTable members to learn Oracle Database details thoroughly, and then openly share that knowledge – just for the sake of helping others.
- There were no sloppy, or poorly assembled, or untested presentation topics.
- The speed with which OakTable members diagnose and resolve problems, for example posting videos and pictures (and more) from the event.
- And… the list goes on, and on, and on.
Any thoughts from other attendees?
Hopefully, more of the pictures from the event and more of the presentations will make their way to the Internet soon.
WordPress is currently refusing to deliver the Word documents and the double-extension attachments. The five script files that I used to transfer the presentations to 13 USB keys simultaneously follows (only need to execute the CopyAll.bat file):
CopyAll.bat File Contents: START copy1.bat START copy2.bat START copy3.bat START copy4.bat Copy1.bat File Contents: xcopy C:\MOTS\*.* e: xcopy C:\MOTS\*.* i: xcopy C:\MOTS\*.* m: xcopy C:\MOTS\*.* q: Copy2.bat File Contents: xcopy C:\MOTS\*.* f: xcopy C:\MOTS\*.* j: xcopy C:\MOTS\*.* n: Copy3.bat File Contents: xcopy C:\MOTS\*.* g: xcopy C:\MOTS\*.* k: xcopy C:\MOTS\*.* o: Copy4.bat File Contents: xcopy C:\MOTS\*.* h: xcopy C:\MOTS\*.* l: xcopy C:\MOTS\*.* p: