我正在使用 jaydebeapi (Mac OS X) 来查询 Netezza 数据库并执行一些快速/肮脏的计时:
t0 = time.time()
curs.execute('''select * from table1;''')
print time.time() - t0
我自己创建了这个表,它包含 650,000 行和 9 列(整数和日期)。
当我运行上述命令时,大约需要 1.3 分钟才能完成(平均超过 10 次运行)。
然后,当我尝试获取数据时:
t0 = time.time()
curs.execute('''select * from table1;''')
row = curs.fetchone()
while row is not None:
row = curs.fetchone()
print time.time() - t0
完成大约需要 10 分钟(平均超过 10 次运行)。
现在,当我使用 WinSQL(Windows 7,ODBC)运行相同的 SQL 查询时,返回数据大约需要 3 分钟。我似乎无法弄清楚为什么在 Python 中需要这么长时间,并且不确定如何或从哪里开始寻找。