First, let me say that I’m a DBA, not an accountant. We tend to trust databases to hold and organize data. We use applications and reports developed by professional developers to retrieve that data. Those applications and reports go through a software development lifecycle for a reason: to make sure that they are accurate.
Despite this, many professional developers aren’t writing “well-tuned code”. They’re generally happy to get the right results and, as long as it isn’t painfully slow, performance is either an afterthought or the DBA’s problem. I’ve got news for you… some 80% of performance issues are caused by poorly tuned code!
This is not to denigrate developers. I’m saying this mostly to prove a point: if you can’t reliably expect well-tuned code from a professional developer, you’re insane if you expect anything better from end-users with an ad-hoc query tool.
This is one reason why tools that allow end-users to produce their own reports (Discoverer, ADI, et. al.) have always made me (and, I’m sure other DBAs out there) somewhat nervous.
The other reason I’ve always been a little twitchy about those tools is accuracy. With professional developers, they understand the need for testing and accuracy. End-users, however, frequently don’t have that same appreciation. So, when you allow end-users to develop their own queries and reports, or to extract and manipulate data in a spreadsheet, what kind of risks are you taking?
CIO Magazine has a thought-provoking article on this. Definitely worth a read.