Blogroll update…

January 26th, 2010
I just added Tony Hasler's blog to my blogroll. He has lots of useful and very practical stuff in his blog, so I recommend you to check it out. He has a serious amount of even more useful stuff in his head (I've had some very interesting discussions with him) so hopefully additional blog followers motivate him to write all of that stuff out! ;-) http://tonyhasler.wordpress.com/

Tanel Poder
Cool stuff, Oracle

New updates via twitter…

January 21st, 2010
In addition to RSS which I'll be setting up for tech.e2sn.com soon, I will be posting Twitter updates to my account tanelpoder I aim to spend some 30 minutes every day, writing new stuff to tech.e2sn. I will probably not gonna be posting these updates to my blog to reduce this noise... So, if you want to be first to know about article, script, tool updates at tech.e2sn then follow my tweets! http://twitter.com/tanelpoder

Tanel Poder
Cool stuff, Oracle

Recursive sessions…

January 21st, 2010
I have published a new article to tech.e2sn.com about recursive sessions and ORA-00018: maximum number of sessions exceeded error message: http://tech.e2sn.com/oracle/oracle-internals-and-architecture/recursive-sessions-and-ora-00018-maximum-number-of-sessions-exceeded Note that I'm working on setting up RSS feed for tech.e2sn too, coming soon :)

Tanel Poder
Administration, Oracle, Troubleshooting

My new website tech.e2sn.com and a new application

January 18th, 2010
In early January I wrote that I'm gonna start organizing the more serious and practical Oracle content into my new website and I'll leave my blog for Oracle hacks, my (IT) observations and philosophy, general thoughts and just fun. It's time to publish the newsite now with an application demo rototype which gives some clue of what kind of features will there be in the secret project I've been working on for several months with my friend and business partner. The website is located here: http://tech.e2sn.com E2SN does have a meaning, but I'll leave it a secret for now ( you are free to ...

Tanel Poder
Administration, Cool stuff, Internals, Oracle, Performance, Productivity, SQL, Tools

Sometimes things are easy (Part 1): How to fix wrapped execution plan text?

January 18th, 2010
What you see below is a common problem. Someone sends you (or posts to a forum) a wide execution plan, which is unreadable because of wrapped lines. For example, this one below: -------------------------------------------------------------------------------- ------------------- | Id  | Operation                   | Name                    | E-Rows |  OMem | 1Mem | Used-Mem | -------------------------------------------------------------------------------- ------------------- |   0 | SELECT STATEMENT            |                         |        |       | |          | |   1 |  SORT AGGREGATE             |                         |      1 |       | |          | |*  2 |   HASH JOIN                 |                         |     13 |  1102K| 1102K|  355K (0)| |*  3 |    HASH JOIN                |                         |     13 |   988K| 988K|  367K (0)| |*  4 |     HASH JOIN               |                         |     13 |   921K| ...

Tanel Poder
Administration, Oracle, Productivity, Tools, Unix/Linux

Beyond Oracle Wait Interface – Part 2

January 15th, 2010
This is the second part of the joint blog "project" with James Morle, called "The Wait Interface Is Useless (Sometimes)". We already did a joint presentation on this topic at UKOUG and more conferences will follow :) Read the first part by James here for intro. So, where do we go when Oracle's wait interface doesn't help us? We will show multiple techniques over time, but here's where I normally continue when wait interface is "useless". I use V$SESSTAT. Oh, were you expecting something more "advanced" instead of boring old V$SESSTAT's performance counters which has been available in Oracle for ages? ;-) Well, there is ...

Tanel Poder
Internals, Oracle, Performance, Troubleshooting

New year, new blog template and other changes…

January 6th, 2010
I started blogging over 2.5 years ago, so now it's (finally) time to use a blog template which sucks less than my original one! I spent quite a lot of time searching for the perfect template and oh, didn't find any. All templates had some shortcomings and majority of the more advanced ones were geared towards people publishing news about their pets (or socks for that matter :) I had been a (secret) admirer or Greg Rahn's blog template for a while and he agreed to share his config with me, so that saved me a few days setting up and tweaking ...

Tanel Poder
Cool stuff, Oracle

NULL is not zero!

December 30th, 2009
Some time ago I wrote a post about how COUNT(*) and COUNT(column) are semantically different things (link). Such queries may return different results if the column counted has NULLs in it. And the difference comes from that NULL is not a value, it's rather a state which says "value unknown" or "no value entered". So, you better understand how NULLs interact with your SQL constructs if you call yourself a DBA or a database developer ;-) Here's another example about how misunderstanding NULLs may cause your application to return different results than what was intended. I will create a little table with TWO ...

Tanel Poder
Design, Oracle, SQL

Measuring what matters

December 22nd, 2009
Cary Millsap's recent post prompted me to write down some of the related thoughts in my head. Here are few of my mantras for systematic troubleshooting and performance tuning, which have materialized in my head over the years of work: Picking the right starting point to troubleshooting and performance tuning is the most important decision in that process. Pick the wrong starting point and you end up going in circles. The scope of your performance data needs to match the scope of your problem, otherwise you end up going in circles. If you don't measure what matters, you may end up fixing what doesn't matter. If ...

Tanel Poder
Design, Oracle, Performance, Productivity, Troubleshooting

Finding the reasons for excessive logical IOs

November 19th, 2009
There's another interesting thread going on in Oracle-L, about understanding logical IOs and drilling down into their reasons. Of course sometimes (or rather usually) the excessive logical IOs come from a bad execution plan (when a nested loop loops over lots of datablocks again and again or a wrong index is used for driving a query etc), but sometimes the excessive LIOs are caused by some internal issues, like space management etc. A convenient tool I use for reporting logical IO reasons is (again) my Snapper! It has  an option "b" for reporting Buffer get reasons or as I use below ...

Tanel Poder
Cool stuff, Internals, Oracle, Performance, Troubleshooting