A reader asks...
I was asked this question on asktom, but it seems more appropriate here than over there.
I would like to ask a bit different question than the one that you are answering on this site because I am really really wondering on this for quite a while.. How long you are working on SQL and would like to know how you go about answering questions in such different dimension be in related to tuning , DBA activities,SQL queries , backups.... name the topic and tom has answer for it.. some times the questions themselves are so vague and confusing that one needs to scratch his/her head to make out what is being asked, but still you seems to answering these correctly, how you go about all this... pls ignore this in case you feel like this question does not match with motto of this site ..
To me, it all comes down to one thing, well - ok, two things:
Maybe the two are really the same - if you are really experienced, you must have specialized. If you specialize - you can become very experienced.
It takes years, double digit number of years sometimes - to become truly experienced. I still remember learning SQL in 1987 (using SQL/DS on VM/CMS and DB2 on MVS). In 1993, when I first joined Oracle, I knew SQL - but I didn't know SQL yet. I can say the same thing about C however (it is not just SQL, any technology/language can fit there). I've never achieved the knowledge of C that I current have of SQL in fact. But I am really really good at programming C.
After a while, you get to see so many things, you can appear "magical" sometimes. Just this morning someone came to asktom and asked about some "sqlplus settings". Turns out - the problem they were experiencing had nothing whatsoever to do with sqlplus at all - it was a server setting. It was a problem however that I've seen time and time and time again. I recognized it immediately. But if you look at the question - it is pretty vague, not much to go on. But since it followed a pattern I had seen so many times before - I felt pretty confident I knew what it was. Other experienced people (Michel Cadot there - on that thread for example) didn't pick up on it - but only because they had never seen it before. Which in this case - could be a good thing for them (it is good for Michel that they weren't aware of it). The only people that would be aware of the stated issue would be those that were subjected to the evil cursor_sharing=force/similar setting. It could well be that Michel just was never exposed to that! That would put them into the "very luck" category.
Which brings up another point the breadth of experience. Prior to coming to Oracle in 1993 - I had one employer. All of my experiences were based on that one employer and what I did there. I was a PL/1 and SQL programmer on a mainframe. I was a SAS programmer (they called me "sas master" way back when). I was a C and embedded SQL programmer, I did some Ada on the side. I became the lead database guy (Developer/DBA was my role). So, in six years I had 4 evolutionary roles working on 4 different projects. That gave me a fairly broad look at things - or so I thought. When I came to Oracle - all of a sudden I was working with dozens of customers on dozens and dozens of systems. I really became "broad" then - it was very much like consulting (but I didn't charge, I am in pre-sales). The more experiences you can get yourself exposed to - the more experienced you become. In dealing with so many different people, using so many different tools, on so many different platforms, under so many different circumstance, with so many different sets of standard operating procedures - I learned a lot.
What I learned most of all - if I did things in the database - man, was I portable, debuggable, tunable, flexible, whatever-able :) It was those early experiences that really made me database centric, to treat the database as my operating system. I would work on Windows or maybe use a Solaris server - but not really know what I was going to be deployed on. As long as I did 99% of the work in the database - I was pretty confident it would roll out on whatever I was going to have to work on.
So, in short, it all comes down to experience, your experiences (work on the same project for 10 years and - well.... I'd rather work on 10 projects in 10 years or 20 projects or more), and whether you were able to really focus in on what you enjoy doing.
And - and I will refer people to:
- http://www.catb.org/~esr/faqs/smart-questions.html (thanks Alberto and Jared for the pointer...)
The fine art of asking a question in a sensible way that at least has a chance of getting an intelligent response is one many of us need to work on....