我在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的查询中获得TOTAL ROW COUNT。