У меня есть код для запроса SQL с использованием pyodb c:
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, из которого запускаю скрипт, он зависает в памяти. Я могу щелкнуть правой кнопкой мыши и нажать «Завершить задачу», но мне нужно, чтобы она была автоматизирована (и этот грубый метод требует перезагрузки компьютера).
Кроме того, мне пришлось вручную настроить параметры памяти, установив «max memory» за экземпляр "(до 2500 МБ), это сильно замедляет время запроса, и в идеале я мог бы иметь бесконечную память, но очищать память процесса после каждого SQL запроса.