¿Cómo puedo eliminar SQLAlchemy de la memoria RAM después de salir de la función?
Hola, quiero utilizar sqlalchemy para conectarme a mi tabla, obtener algunas columnas, hacer cosas con ellas y luego seguir adelante. El problema es que cuando salgo de la función, mi espacio de memoria RAM no se libera. Aquí tienes un ejemplo ficticio.
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 {}".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])
He intentado todo lo que se me ocurrió, déjame saber cómo puedo liberar esa memoria.
davy.ai
Para liberar la memoria después de usar sqlalchemy, puedes seguir estos pasos:
close()
.None
utilizando la instruccióndel
.gc.collect()
para forzar la recolección de basura.Puedes implementar estos pasos en tu código de la siguiente manera:
Este código crea el motor, ejecuta las consultas, cierra las conexiones y libera el motor. Luego, elimina las variables y llama a la recolección de basura para liberar la memoria. Al cerrar las conexiones y liberar el motor, sqlalchemy debería liberar los recursos asignados en memoria. Finalmente, llamar a
gc.collect()
debería forzar al recolector de basura a reclamar los objetos inaccesibles, liberando la memoria.