退出函数后如何从ram中删除sqlalchemy
how can i remove sqlalchemy from ram after exiting function
您好,我想使用 sqlalchemy 连接到我的 table,获得一些专栏,用它们做一些事情,然后继续。问题是当我退出函数时,我的 ram space 没有打开。这是一个虚拟示例。
from sqlalchemy import create_engine
import gc
mem = !free
dic = {}
dic_conn = {}
print(mem[1])
engine_ = create_engine(psql_string)
for tb in ['tb_1', 'tb_2', 'tb_3', 'tb_4',]:
conn = engine_.connect()
dic[tb] = conn.execute("select * from tb".format(tb))
dic_conn[tb] = conn
for k in dic_conn.keys(): dic_conn[k].close(); dic_conn[k] = None
for k in dic.keys(): dic[k].close(); dic[k] = None
engine_.dispose()
del dic_conn
del dic
del engine_
gc.collect()
mem = !free
print(mem[1])
我尝试了所有我能想到的方法,让我知道如何释放内存
sqlalchemy 在客户端保存缓冲区,您也可以在服务器端保存缓冲区,这样 sqlalchemy 就会释放缓冲区 space。这个命令就可以了。
conn = engine_.execution_options(stream_results=True).connect()
您好,我想使用 sqlalchemy 连接到我的 table,获得一些专栏,用它们做一些事情,然后继续。问题是当我退出函数时,我的 ram space 没有打开。这是一个虚拟示例。
from sqlalchemy import create_engine
import gc
mem = !free
dic = {}
dic_conn = {}
print(mem[1])
engine_ = create_engine(psql_string)
for tb in ['tb_1', 'tb_2', 'tb_3', 'tb_4',]:
conn = engine_.connect()
dic[tb] = conn.execute("select * from tb".format(tb))
dic_conn[tb] = conn
for k in dic_conn.keys(): dic_conn[k].close(); dic_conn[k] = None
for k in dic.keys(): dic[k].close(); dic[k] = None
engine_.dispose()
del dic_conn
del dic
del engine_
gc.collect()
mem = !free
print(mem[1])
我尝试了所有我能想到的方法,让我知道如何释放内存
sqlalchemy 在客户端保存缓冲区,您也可以在服务器端保存缓冲区,这样 sqlalchemy 就会释放缓冲区 space。这个命令就可以了。
conn = engine_.execution_options(stream_results=True).connect()