Oracle Tips and Tricks — David Fitzjarrell

August 26, 2015

“But, You Don’t Understand…”

Filed under: General — dfitzjarrell @ 10:11

"Let me try once more," he said in an effort to explain. "In other words--"

"You mean you have other words?" cried the bird happily. "Well, by all means, use them.
You're certainly not doing very well with the ones you have now."
- Norton Juster, The Phantom Tollbooth 

A seemingly constant battle in many forums is getting those who post questions to be clear in what they are asking. Some questions are so broad that they can’t be answered without further explanation and detail. Possibly this is due to the nature of the Internet, where ‘answers’ are in abundant supply. Notice the quotes; the Internet is as notorious for mis-information as it is praised for its factual content. Those unfamiliar with resources for a given topic can be overwhelmed by the sheer volume of responses, and can be lulled into a false sense of security when broadly phrased questions return specific ‘answers’, such as with google.com, bing.com and other search engines. There is, of course, no all-seeing editor for the Internet so the good and the bad occur with equal ease. Those in forums know this and give their best efforts to guide those unfamiliar with the available resources a gentle nudge toward reliable websites, yet not everyone visits forums and newsgroups to find answers. It’s time for those of us writing blogs to step up our game and ensure that what is posted is accurate and reliable, and it’s also time for those asking questions to learn how to do so effectively.

It all starts, I think, with blog posts, since apparently this is where people go to find answers. Searching google.com, duckduckgo.com, bing.com for answers usually provides a long list of blog posts and web links claiming to answer the given question. Some are good, some aren’t and it can be difficult to know the difference for the uneducated. The people I know in the Oracle community who blog and frequent forums provide the best information they can in their posts, as do I. I’ve known more than one person who has gone back and edited an existing post to provide accurate content; to those who care a blog post isn’t the end, it’s a living document intended to provide insight into specific topics or provide a general overview of a process, all done for the purpose of sharing knowledge. It should be understood that if you’re going to share knowledge it should be accurate and reliable, and not simply an effort to be the most prolific blog poster in history. The same holds true for example code you may post; NEVER post untested code as it can only confuse and frustrate the recipient when it doesn’t work because of coding errors. It isn’t enough to simply post code, though, you should seriously consider posting worked examples, including the output the scripts and queries generate. Having a worked example, with the correct output, is invaluable when someone is running your code in their own database since they can know, immediately, if they have copied the code correctly and completely. Also, don’t assume their environment matches yours; include any settings you made so that anyone using your code runs it under the same conditions you used. It doesn’t matter how many examples you have posted online if they don’t work as expected or intended. Quality beats quantity every time.

If the blog posts are accurate then it stands to reason that the questions that follow and are posted on newsgroups and forums will get better because the information that generated that question will be better. There will still be those questions that are based on misunderstanding and ignorance (and I use the term ignorance to indicate a lack of knowledge in the subject area, not as a derogatory remark against anyone), such as this one found in an Oracle forum I frequent:



I have some Oracle queries which is executing with 2 to 3 seconds response time. Is it possible to make those queries zero response time?
If so is there any tool which will help for that?

That question can be answered in many ways, all of them really dependent on information the person asking the question failed to provide. The responses thus far are found here with many of those requesting more detail than what was originally provided. This question was mentioned because it is generated based on a lack of understanding regarding how I/O works. Even with flash memory and solid-state disk a true ‘0’ response time is impossible. Better knowledge, even at a basic level, about I/O would have produced a more ‘reasonable’ question, and more research on I/O before the question was raised could have answered it.

Everyone can ask questions, but in technical forums it goes a long way when a person knows HOW to ask questions. With respect to Oracle forums a good method to take when asking questions involves the following information that forum volunteers need before even attempting to provide an answer:


The Oracle version in use.
The clear statement of the problem.
The exact error message and error code Oracle provided when the problem occurred.
In some cases sample queries illustrating the problem and DDL to create and populate objects used in those queries.
Log files if available.

The above list is not exhaustive but it is a very good place to begin when asking a question. Expect that more information will be requested; digging deeper into a problem can reveal areas of concern not apparent from the initial problem statement. Remember that┬áproviding more information gets better responses; the ‘answer’ is only as good as the question. For a more complete discussion of how to ask questions in a technical forum this link is an excellent resource.

In some cases English is not the questioner’s first language and that can lead to errors in communication. Idioms in the English language (both US and British) can be confusing to non-native English speakers, and literal translations into English (using friends, colleagues or websites like http://freetranslation.com) may not improve the situation. This is when forum volunteers may ask for additional information simply to understand the question as posed, and patience is truly a virtue. In such situations imagine yourself trying to ask a question in someone else’s native language, one you may have a rudimentary knowledge of but are far from fluent in. Making yourself understood is a challenge and it’s good to realize that when non-native English speakers are involved. The better you, as a responder, can direct the discussion the better success you and the questioner will have in getting a problem understood and possibly resolved. The person asking is in the forum for good reason so don’t let them think it was a waste of time to ask. Rudeness has no place in a technical forum, even for those questions asked 100 billion times that are answered in the documentation. Directing a person to that documentation doesn’t need to be an adversarial exchange, and a helpful ‘nudge’ goes much farther than a rude and terse “RTFM”.

It would appear that we, as a society, have become so self-absorbed that we abhor any demands placed on ‘our’ time. Unfortunately I see this behavior in forums and newsgroups by the volunteers, especially when simple, “already-answered” questions appear or the person asking the question has a limited grasp of the English language. Remember that you are a VOLUNTEER in such a group and have CHOSEN to participate; you were not forced into contributing your time and knowledge by despicable members of some Evil Empire. Behaving like a volunteer rather than as a prisoner can make all of the difference in how a thread progresses. You don’t need the patience of Job but some compassion for the person on the other end of your response would be appreciated. You have one opportunity to make a first impression so try your best to make it a good one.

There is no fame, fortune or glory in being a forum or newsgroup volunteer, magazine contributor or technical book author. If any of those are your goal then go elsewhere and write a steamy romance novel; sharing what you know should be the driving force behind any decision to join a forum or newsgroup, contribute to a technical publication or conference or write a technical book. It isn’t about your social image, it’s about helping others to understand what you know best. Also remember that it isn’t a crime to say ‘I don’t know’ because we can’t know everything, no matter how hard we might want to. Honesty and arrogance rarely co-exist; choose honesty, build a reputation of quality and people will take notice in a good way and may eventually seek you out for your knowledge, wisdom and experience. And that’s a good thing, indeed.

Let me be clear about that.

Blog at WordPress.com.