July 12, 2011

RTFM

Many questions I see on the internet could be resolved by the simple expedient of looking at the information that’s in front of you; and many of the questions that clutter up forums and newsgroup would simply cease to appear if more people adopted this approach. Here’s an example of what I mean:

According to Metalink note 34559.1 the p1 value is the absolute file number. According to dba_data_files all my file numbers are one, two or three digits, but when I “select distinct p1 from v$session_wait” I am seeing a file number (p1) of 1413697536. Why is this appearing ?

No doubt someone reading this post will look at that number and immediately recognise it as coming from an SQL*Net message wait on a tcp connection (1413697536 = 0x54435000 -> 0x54 0x43 0x50 -> T C P) and may wonder why the Metalink note didn’t explain that p1 was the absolute file number only when the wait was related to some sort of file I/O. This was the thought that crossed my mind, so I logged on to MOS to see what the note said (because sometimes I fill in the feedback form to correct the errors or ask for a note to be withdrawn) and this is what I found:

Title of note: “db file sequential read” Reference NoteFirst line of note: This is a reference note for the wait event “db file sequential read” which …

I find that I can’t conjure up any circumstances where a person could know enough to query v$session_wait and dba_data_files, and yet not notice the significance of the title and first line of the metalink note.

Footnote: According to a story I heard recently, there is at least one site where the management has blocked access to any internet sites that cause too much traffic on the company network. Unfortunately the IT department seemed to spend a lot of time reading the Oracle online documentation. So whenever I see the expression RTFM I now interpret it as “read the firewalled manuals”.

Related

Well, I joined a company where the DBA’s saw fit to revoke access to reading the DBA_XXX views and V$_XXX views. Not only in PROD but also in TEST and flabbergastingly in Development. We also have no ability to run traces, unless we bug a DBA. But, then they complain when the developers author poorly performing queries. Hm….

What the person has missed is the significance of the event column in v$session_event. So there is no problem, the person simply didn’t know enough to query the view properly, which means no way to make the connection from the title or first line of the note. I see a lot of poor answers in the communities, where someone says “look at X” without explaining the attributes of X. Should any given person be expected to figure such things out on their own? Surely yes if they are a DBA, not so much maybe if they aren’t. But every newbie is going to make mistakes, even experienced people can have brain farts (some of us more than others :-) , so many people are thrown into DBA work without proper training, and some people are just jumping in over their heads. We can laugh up our sleeves, but really, some people do legitimately need to be shown what is in front of them. Heck, even a notorious senior who always goes on about rtfm gave a polite reply recently, we can all learn from that.

The point comes where it’s very hard to invent excuses for people – and as my post points out, this chap knew enough to query v$session_wait and v$dba_data_files.

Even if he was told nothing but “.. select distinct p1 ..”, shouldn’t he have done a describe on these these views at some point ? If he won’t do that little extra thinking what hope is there ?

If he’s managed to search for an article that starts with: “… reference note for the wait event …”, how come he can’t ask himself what a wait event is, and if there are different types of wait event, and why v$session_wait might, in some way, be recording a thing called an “event” rather than a “wait”. Again, without any sense of curiosity or ability to extrapolate, there is no hope.

Unfortunately, books don’t really help much. The missing ingredient is the ability (or willingness) to say “I don’t understand this, what am I missing”, followed by a second reading to find the missing bit.

On the other hand, books can help because of their physical presence – if you don’t understand the page on the screen you just hit “back” and the next link on the google list of results. If you’re holding a book you might read the page again.

I fear it’s more of an issue of laziness in many cases; it’s easier and less labor-intensive to simply ask the question and hope someone decides to provide the answer rather than to expend the minimal effort to use google.com properly. I am on several newsgroups and forums and I see a good number of people practically demanding answers and code based upon a simplistic and minimalist description of their ‘problem'; no coding attempts are posted so we know where the error originates thus we are left to guess at what the poster is doing. In some of these cases when the post is given the usual response (‘this is in the manual, read it here …’, ‘this information is available on google.com and here’s how you use it …’) the poster is offended that he hasn’t been spoon-fed the answer. It may be a situation where ‘instant gratification’ has become so ingrained in some areas of society that the notion of actually doing one’s own work is a foreign concept. It’s a trend I don’t like to see perpetuated but I can’t see an end in sight in the foreseeable future.

The online community needs, in some cases, an attitude adjustment on the part of those interrogating those of us who take their free time and volunteer to help in these forums/newsgroups. We shouldn’t be spending time regurgitating the manuals for those too lazy to look up the information on their own; rather we’re here to help those who have read the manuals, made the attempts at understanding and are still confused.

When I see ‘partial’ questions asked I ask the OP to provide a more complete description of the task/problem; this should make them think through the issue so

1 – they have a better understanding of what they are trying to do

and

2 — they understand it enough to provide a usable explanation of the problem so others may assist them

Many times this fails and the poster moves on to other groups to litter them with the same partial interrogatory which does nothing more than irritate the regulars of these groups who ask the same question I did and receive the same ‘response’. Trolling for a ‘friendly’ face in the online community (someone who will simply dish out an answer without asking further questions) is annoying and if that friendly face is found the ‘answer’ provided may be horribly wrong for the situation at hand simply because the poster can’t word his question clearly and the ‘source’ simply spits out a response that, while technically correct, addresses none of the posters concerns because he or she can’t divine them from the question offered. A good tutorial on how to ask technical questions can be found here:

It is always temtping to answer any question with RTFM – in the end, almost everything is somewhere in the documentation.
We should take into account, though, that especially for newbies, the Oracle Online Documentation is quite overwhelming.
When you have a couple of years experience with Oracle, this looks much easier to you (dealing with the docs), because
you have a better understanding about how all the many things in Oracle fit together. We cannot expect this overview from newbies.

Your response would be perfectly reasonable if we were talking about someone asking questions about (say) the way in which a rollback generates redo. The manuals often tell you some basic mechanics, but omit important variations, get things wrong, and assume the reader already knows the basic answer.

But there is a point where you should ask yourself questions first, and think about what you are reading before you ask someone else to give you (yet another) pre-digested solution. I won’t repeat the reply I made to Joel above.

On a broader note but on the same theme … I dont mind such ‘mistakes’ , goodness knows I make enough of them. But what really frustrates me is when you have told someone the same thing ( or v similar ) several times and they claim they understand and then come back as if they were completely new to the question or they inacurately quote you. I tend to find I start doubting myself about simple things as I cannot believe that they could get it wrong so many times and it must be me making a mistake. This has, I fear, led to me being less knowledgable than I could be. Im a want to “do the effective thing efficiently” kind of man. Right decisions done well, ONCE. Sadly, I get dragged down to the lowest common demoninator too often.