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
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
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
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
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
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
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
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
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
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
Recent Comments