Я использую pyodbc (3.0.7) для извлечения данных из базы данных SQL Server. Моя ОС - это Windows 7, а python - 2,7,7 бит. Я сталкиваюсь с проблемами использования памяти, и мне было интересно, есть ли какие-либо решения.
Каждый раз, когда я запускаю свою программу, использование памяти процесса sqlservr.exe увеличивается (на основе запуска Tasklist в командной строке). Вот мой код.Управление использованием памяти pyobbc
1.Connect в базу данных
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 не освобождает связанную с ним память. Использование памяти постоянно растет, и я вынужден перезагрузить компьютер. Что я могу сделать для решения этой проблемы?
Edit: Временный Обход
Я нашел временный обходной путь для моей проблемы. Я зашел в службы Windows и остановил процесс SQLSERVER, чтобы освободить память и снова перезапустить ее. Наверное, я мог бы сделать это программно, но я оставлю это на другой день.
Thanks Beargle за хорошее предложение об ограничении использования памяти заранее. – Prashanth