April 30, 2009

What I learned from AOT by Tanel Poder

Guys who personally knows me, knows also that I am a very big fan of Tanel Poder and his work. I have been following him, since he started blogging in 2007 and after reading all his stuff, at UKOUG 2008 Conference I found chance to have his masterclass about Advanced Oracle Troubleshooting. When I saw how he uses the things he wrote on his blog, all my approach to troubleshooting oracle had changed, but something was still missing. Blog and masterclass session wasn’t enough for me, I wanted more and more everytime I read a post from him. God must have heard my wishes and sent him to Edinburgh for his Advance Oracle Troubleshooting seminar and gave me the chance to fill the missing part.

After nearly 8 Oracle trainings ( 3 of them were celebrity seminars), I can personally say, If you love Oracle, if you love performance tuning and troubleshooting, if you look for a method to troubleshoot, if you want to learn something systematic and also practical this is the best one you can attend to find what you are looking for. What makes this training unique is not just his methodology and knowledge, it is also his instructing skills. I don’t really enjoy sessions of the instructors who are strict about their agenda and who don’t allow questions before they finish the topic but Tanel was always open to questions and I think he is aware that off-topic questions can lead to cover an upcoming topic too, so he doesn’t say, “I will see it next chapters” (which might not be covered because of the time limit. ) he answers them all. I asked as many questions as I can and none of them were remained without an answer not just by talk also by proof. Maybe he couldn’t finish all the chapters totally, but he nearly covered all in the middle of other chapters, by allowing questions. To get more benefit from this training, I strongly recommend you to read all the posts on his blog and try them before you come. Believe me you will focus more and benefit as much as I did. One more confession is that this one was the only training I never lost concentration 🙂

After all this voluntarily marketing, let me tell you tiny bits about what I learned from this young (it was a big shock to hear his IT experience is nearly 18 years at my age I think thats why Jonathan Lewis said that he saw his youth on him 🙂 ), %100 geek and genius evangelist.

*If the session state is WAITING it means waiting, otherwise no matter what is written on state column of v$session it is on the CPU as simple as this. (sw script)

*On ideal world, if the session is running, session stats (snapper script) will show you some increasing stats

* For short intervals of snapping with snapper scripts DBTime and DB CPU might show non realistic values ideal is 5 and over I think, not less

*Oracle does not immediately put a line to an event trace, it does it when the call finishes.

* on solaris kill -STOP SPID suspends the process without killing it and you can resume it again by PRUN. check manual page for you operation system.

*To drink more by Working less , you should be practical and script the things you use most in addition to his scripts

*there is a tool called trcsess which can be used to bring tracefiles together.

* he also say it is pointless to check statspack for something still going on.
I personally used statspack/awr only 3 times and one was at a job interview. Some stupid guy before doing rman online backup to 7/24 system, tried to test me what is wrong with that statspack report. Was totally crap.
To be honest Purely or initially statspack oriented problem solving is something like gues from your .ss type problem solving. Thanks Tanel for this term 🙂 And his perfsheet tool makes statspack more useful to check what has happened last week type problems on a graphical interface. Having your own ASH if you don’t have Diagnostic Pack is far more better than getting lost on system wide reports.

* If you cant sleep on the plane, sleep enough before the flight and fly during office hours and work during the flight. systematic approach from a man who flys nearly 2 times a week.

* if you are googling an about oracle internal functions put .ch or .ru domains for some better results (yes you need google translate to understand the page)

*BEST ONE I asked him how do you learn all these interesting stuff. He gave me a perfect clue. Sign up for metalink headlines mailing list. Bugs docs they are all there after they are created. Perfect resource.

There are two things, I don’t agree with him, about his approach. First is , I want to see the sql first about a session I am troubleshooting. If I know the system this will give me a basic idea, it can also lead wrong way but still SQL is something worth to see before starting other steps.
Write one script run on all versions idea is another thing I am not very keen to follow. I prefer to have 3 different script home to benefit from new columns added to tables. The only thing I need to do is call the right home in a bat file before I connect.

These were just my tiny highlights, from a big training. If you need more just attend his class, you wont regret.

I heard that he will come to London for seminar possibly after UKOUG 2009. If I were you, I won’t miss it.

Thank you very much Tanel for sharing your knowledge with us. You are the rising sun over Oracle Performance World.

One special thanks is coming for Thomas C. Presslie from PISEC who was the organizator of this event. Venue, environment and all training package and his hospitality was wonderfull. I wish I could come for the upcoming ones 😦

Advertisements

Like this:

LikeLoading...

Related

I enjoyed delivering the seminar as well (and that’s again why I ran out of time in the end). If attendees are staying focused and “with me” I get additional energy out of it and try to give even more out on the topics people seem to be interested in the most.

Some context for any readers who haven’t seen mu work – you mentioned the spin_count autotuner. To avoid someone thinking that I spoke about it in a positive fashion, I mentioned it in a context that spin_count is usually misused & abused parameter. In 99.9% cases you don’t need to touch it, the root causes of your problems need to be fixed (like parsing,executing too often or too many logical IOs against same blocks due bad exec plan/physical design etc).

Regarding the 2 things you don’t agree with

1) The SQL text doesn’t need to be the FIRST thing to check in my approach. It’s all about narrowing down the things to look up the most efficient way. Running sw takes only a second or two and gives evidence about what the session is doing right now. Execution plan can give only remote clues at best about what’s the session doing/waiting on right now. But again, my approach comes from my experience – you use whatever order suits you best.

2) Regarding different versions of scripts to take advantage of new columns etc. First, if there’s a new column in a view in newer oracle version – it doesn’t automatically mean that this column is actually useful and should be displayed at all 🙂
It’s again about looking into minimum amount of RELEVANT data, not looking into all possible numbers you can see.
So, as my scripts are living ones, I frequently improve them, then in order to avoid the discrepancies between the same script in different directories I have single universal versions – which are dynamic based on the version you run on. For example both snapper and latchprofX scripts are dynamic, they show the columns/views which exist on 10g+ but the same scripts don’t show these columns in 9i. That way I can have a single script, avoid versioning problems/overhead and still have dynamic output where it matters.

Yep the blocking session column could be a time-saver… I think I’ll implement it into a future version of sw.sql… although I’ll still demo the low-level approach walking various lock structures in my coming seminars 🙂

[…] Class . I was in Edinburgh DBA SIG when I first watched this presentation and it was just after AOT by Tanel Poder, so I couldn’t not focus that much. This time I listened better and I plan to review […]

[…] to go on this course, I read the testimonials and there’s a great piece of advice from Tanel via Coskan Gundogar: I asked him how do you learn all these interesting stuff. He gave me a perfect clue. Sign up for […]

[…] remembered to mention this to anyone if people ask where to learn internals. But Dominic Brooks and Coskan Gundogar have recently written about this so I thought I should share this with my blog audience […]