Я пытаюсь заполнить базу данных MS SQL 2005 с помощью python на окнах. Я вставляю миллионы строк, и на 7 миллионов я использую почти гигабайт памяти. Тест ниже съедает 4 мегабайт оперативной памяти для каждого 100k строк, вставленных:Python в Windows: большое количество вставок с использованием pyobbc вызывает утечку памяти
import pyodbc
connection=pyodbc.connect('DRIVER={SQL Server};SERVER=x;DATABASE=x;UID=x;PWD=x')
cursor=connection.cursor()
connection.autocommit=True
while 1:
cursor.execute("insert into x (a,b,c,d, e,f) VALUES (?,?,?,?,?,?)",1,2,3,4,5,6)
mdbconn.close()
решение Hack: Я в конечном итоге нерест новый процесс с использованием модуля многопроцессорной вернуть память. Все еще запутано, почему вставка строк таким образом потребляет столько памяти. Есть идеи?
Вы пытались вручную совершать транзакции? Это немного похоже на то, что ничто из этого не связано с db. – katrielalex
Спасибо.Установка connection.autocommit = False и выполнение ручной фиксации с connection.commit() не влияет на использование памяти. –