DAS> А при чем тут генераторы. В запросе генераторы могут и не участвовать. Например, это один select (так, для определенности
).
Да есть там финт с ушами один. Например, если включить в список SELECT функцию GEN_ID, то по мере вычисления строк запроса значение генератора будет меняться и это видно из другой транзакции. Да, изврат и негибко. Но в каждой конкретной СУБД могут найтись хотя бы такие способы оценки хода выполнение.
DAS> Про Оракл — если можешь привести конкретный пример — приведи, пожалуйста. 
Нет, не могу

Я же писал — может и есть что-то подходящее в инфе о сессии. А может и нет.
DAS>Ну, мой способ, например, используется при копировании файлов в проводнике windows. Win не знает, сколько времени займет копирование, поэтому и говорит — "Осталось около n минут". Причем эти минуты могут, как уменьшаться, так и увеличиваться.
Ситуация тут совершенно другая. У проводника есть точная информация о проценте выполнения — размер файла известен и сколько уже скопировано, тоже известно. "Подбирает" он только оставшееся время исходя из средней скорости, которая может меняться.
В нашем же случае не известно толком ничего. И поэтому если не прибегать к вышеописанным извратам, адекватный прогресс-бар сделать ну никак не получится. А если он неадекватный и показывает чушь — имхо, лучше пусть его вообще не будет, показывай время, прошедшее от начала запроса лучше или число отфетченных записей, если время уходит именно на фетч.