Tuesday, June 06, 2006 - Posts

What is Ad-hoc Reporting?

Most applications have some form of reporting. Any printing of data is, in essence, reporting.

When you need a report you're often looking down a list of available, stock reports, looking for one that may include the data you were looking for. It's often the case that you need to print several different reports and then piece the data together yourself, to get to what you want.

Report generation is often a complicate thing, and a task most definitely suited to a programmer. Using tools such as SQL Query Analyzer to develop the query, Visual Studio to write the code that executes the query into datasets, and then Crystal Reports to design the actual report. Not to mention the complexity of deploying the report to the users, and training the users how to read the reports.

At many companies I've visited the typical turnaround for a report is a couple of days for a simple report, and maybe even a couple of weeks for the more complex reports. It's common for there to be a backlog of reports waiting to be developed.

Because of the time involved in generating these reports, and the never-ending changing of requirements that mandates new reports to almost constantly be developed, reports are an expensive and frustrating business for many companies.

But help is available.

Reporting doesn't have to be difficult. At a fundamental level reporting is just about extracting data from a database, applying some degree of filtering, joining and formatting and presenting it. The fact this is a complicated procedure is purely because of the tools that are used.

Ad-hoc Reporting refers to a type of reporting application that allows power-users to produce their own reports with little technical knowledge. No programmers, no designers, no SQL and most importantly no wait.

Typically an Ad-hoc Reporting tool presents a view of the database's structure, and the user visually drags and drops the fields from the structure onto the report - specifying any filtering, grouping or sorting they wish to apply. The report is then saved and can be pulled up and executed any time the user wishes: The report is under total control of the user.

There are no deployment issues with Ad-hoc Reporting tools, other than installing the tool itself and a viewer. Many Ad-hoc reporting tools are web based, making installation unnecessary.

The best aspect of Ad-hoc Reporting tools is that they put users in charge. The users know what data they need, and they can go straight in and pull it out.

Of course there are some disadvantages.

For one, the database is a shared resource. Managed reports (ie. Those that are not ad-hoc) are crafted by technical engineers who understand the database and how far it can be stretched. They ensure the queries are using indices, for example, and that the user cannot download so much data that the database grinds to a halt. With ad-hoc reporting you have few safeguards to stop the user from hogging the database and slowing everything down for everyone else.

While ad-hoc reporting tools provide users with the ability to construct quite complex queries, they won’t be able to do everything. Some complex joins and custom calculated fields may not be possible for the user to produce.

Also, there will be some training involved to get the users constructing their own reports. With managed reports they simply had to click a link and maybe enter some parameters to launch a report, now the bar is considerably higher.

But for many organizations the benefits outweigh the drawbacks. The cost savings alone make it worth installing and training users to create their own reports.

More Information

Microsoft have a video on setting up the Report Designer (Ad-hoc reporting tool) that comes with SQL Server 2005. You can watch the video here.