The reason that you dont really see progressbars for this is because database query time falls into two sections:
Running the query - this is the potentially very slow part
Rettrieving the data - this is only really slow if downloading thousands of rows, which you should usually avoid
While running the query, the thread that called Execute on the database adapter, will block - it wont have any progress to report..
So, the essence of it is, that you cant easily report on the progress of an operation that is running on another process, maybe on another cpu in another machine.. To this end,seeking to give a progressbar to a query is largely pointless.
The best thing i;ve found to do in this situation is to keep a record of the run times of all the queries and when performing a long one, give a dialog to the user saying "This query on average takes X minutes to run (with the longest being Y. So far it has been running for Z minutes" and update Z with a timer.. The user can judge if the query is taking too long..