Windows中的Python:使用pyodbc的大量插入会导致内存泄漏

Ser*_*ker 3 python memory-leaks pyodbc

我试图在Windows上使用python填充MS SQL 2005数据库.我正在插入数百万行,而且我正在使用几乎一千兆字节的内存.下面的测试每插入100k行就会占用4兆内存:

import pyodbc
connection=pyodbc.connect('DRIVER={SQL Server};SERVER=x;DATABASE=x;UID=x;PWD=x')
cursor=connection.cursor()
connection.autocommit=True
while 1:
    cursor.execute("insert into x (a,b,c,d, e,f) VALUES (?,?,?,?,?,?)",1,2,3,4,5,6)
mdbconn.close()
Run Code Online (Sandbox Code Playgroud)

Hack解决方案:我最终使用多处理模块生成一个新进程来返回内存.仍然混淆为什么以这种方式插入行消耗了如此多的内存.有任何想法吗?

ker*_*att 8

我有同样的问题,它看起来像参数化插入的pyodbc问题:http://code.google.com/p/pyodbc/issues/detail? id = 145

暂时切换到填充了VALUES子句的静态插入消除了泄漏,直到我尝试从当前源构建.