我遇到了内存错误 使用python 2.6,pyodbc
代码循环遍历几个Sql语句。 Singleton运行正常,但循环卡住了。 有时Loop工作正常。
for Sql in LoopList:
f = csr.execute(Sql)
LL = list(f)
循环中的第二个元素崩溃。
Sql:
Sql =""" SELECT * FROM group WHERE
C>10 AND M <0 AND S<0
AND TC >= 200 AND OC >=1000 and Penny =.01
ORDER BY MSlp
"""
答案 0 :(得分:4)
您的查询返回太多数据以适应内存。 execute
可能返回一个迭代器,它只需要在内存中保留一个项目,但是将其转换为list
需要从查询返回的每个项目都适合内存。
答案 1 :(得分:0)
解决方案是在MySQL内部执行sql looplist作为存储过程,从python调用。这消除了python错误。
也使用numpy来测试bytesize