我有使用 pyodbc 查询 SQL 的代码:
import pyodbc
import gc
with pyodbc.connect(connection_string) as conn:
cursor = conn.cursor()
tmp = list(cursor.execute(query))
# attempt to clear cursor memory
cursor.close()
cursor = None
gc.collect()
我遇到的问题是我无法清除此过程中的内存:
即使我关闭正在运行脚本的 jupyter 笔记本,它也会挂在内存中。我可以右键单击并按“结束任务”,但我需要自动化(并且这种强力方式需要重新启动计算机)。
此外,我必须通过设置“每个实例的最大内存”(至 2500MB)来手动配置内存设置,这大大减慢了查询时间,理想情况下我可以拥有无限内存,但在每次 SQL 查询后清除进程内存.
试试这个:
import pyodbc
import gc
with pyodbc.connect(connection_string) as conn:
cursor = conn.cursor()
tmp = list(cursor.execute(query))
# attempt to clear cursor memory
cursor.close()
del cursor
gc.collect()