У меня следующий запрос в SQL Server:
select * from sales
Это возвращает около миллиарда строк, и мне нужно обработать данные. Я хотел бы показать прогресс во время обработки данных, используя что-то вроде следующего:
res=conn.execute('select * from sales s1')
total_rows = ?
processed_rows = 0
step_size = 10000
while True:
data = res.fetchmany(step_size)
processed_rows += step_size
print "Progress: %s / %s" % (processed_rows, total_rows)
Есть ли способ получить общее количество строк в запросе SQL, не выполняя другой запрос (или не выполняя такую операцию, как len(res.fetchall())
, которая добавит много накладных расходов к приведенному выше)?
Примечание: Меня не интересует разбиение на страницы здесь (что и должно быть сделано). Это больше вопрос, чтобы узнать, возможно ли получить ОБЩУЮ СЧЕТЧИК СТРОКИ в запросе в SQL Server ПЕРЕД разбивкой на страницы / обработкой данных.