Python内存错误

时间:2011-07-28 16:12:20

标签: python memory

我遇到了内存错误 使用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           
"""

2 个答案:

答案 0 :(得分:4)

您的查询返回太多数据以适应内存。 execute可能返回一个迭代器,它只需要在内存中保留一个项目,但是将其转换为list需要从查询返回的每个项目都适合内存。

答案 1 :(得分:0)

解决方案是在MySQL内部执行sql looplist作为存储过程,从python调用。这消除了python错误。

也使用numpy来测试bytesize