Wikipedia provides a short definition of ad-hoc queries:
Ad hoc querying is a term in information science.
Many application software systems have an underlying database which can be accessed by only a limited number of queries and reports. Typically these are available via some sort of menu, and will have been carefully designed, pre-programmed and optimized for performance by expert programmers.
By contrast, “ad hoc” reporting systems allow the users themselves to create specific, customized queries. Typically this would be via a user-friendly GUI-based system without the need for the in-depth knowledge of SQL, or database schema that a programmer would have.
Because such reporting has the potential to severely degrade the performance of a live system, it is usually provided over a data warehouse.
What is your experience with ad hoc queries? What limitations have you run into in when “asking” questions of the data held in systems that you interact with? What kinds of things do you think systems designers could do to make ad hoc access easier for users?