【发布时间】:2014-07-15 19:06:14
【问题描述】:
我正在使用 pyodbc (3.0.7) 从 SQL Server 数据库中检索数据。我的操作系统是 windows 7,python 是 2.7.7 64 位。我遇到了内存使用问题,我想知道是否有任何解决方案。
每次我运行我的程序时,sqlservr.exe 进程的内存使用量都会不断增加(基于在命令提示符下运行 Tasklist)。这是我的代码。
1.连接数据库
import pyodbc
cnxnstring ="DRIVER={SQL Server};Server=servername;Database=dbname; \
User Id=uid; Password=pwd;"
cnxn = pyodbc.connect(cnxnstring)
dbcursor = cnxn.cursor()
2。从数据库中检索数据并存储在字典中
strsql = 'SELECT CELLID,MEAN FROM TABLE_1'
dbcursor.execute(strsql)
dict1= {}
for line in dbcursor: dict1.update({line.CELLID:line.MEAN})
3.用字典做一些事情 - 这里的代码不相关
4.家政服务
dbcursor.close()
cnxn.close()
即使我关闭了与 SQL Server 数据库的连接,Windows 也不会释放相关的内存。内存使用量随着时间的推移不断增加,我不得不重新启动计算机。我该怎么做才能解决这个问题?
编辑:临时解决方法
我为我的问题找到了一个临时解决方法。我进入 Windows 服务并停止 SQLSERVER 进程以释放内存并再次重新启动它。我想我也可以以编程方式执行此操作,但我将把它留到另一天。
【问题讨论】:
标签: python sql-server memory pyodbc