Найти - Пользователи
Полная версия: Нарисовал некий конвертер из dbf в sqlite. Работает оооооочень медленно... Python3 + pyodbc + QtSql
Начало » Базы данных » Нарисовал некий конвертер из dbf в sqlite. Работает оооооочень медленно... Python3 + pyodbc + QtSql
1
Pluto
Код, думается, приводить незачем.
В общем из dbf-ки посредством модуля pyodbc и команды fetchall выбираются все строки,
затем в цикле каждая строчка из pyodbc.cursor помещается в питоновскую переменную,
из неё формируется строчка для sql-запроса на вставку Insert into sqlite_table (FAM, IM) values (dbfFAM, dbfIM)
И затем каждая такая sql-строчка выполняется посредством QtSql.QSqlQuery

В итоге, каждая вставка записи сопровождается немедленной записью на диск, и dbf-файлик из 71 тысячи записей уже больше десяти минут переносится в sqlite базу.

Мне думается, что надо как-то заставить программу выполнять запись на диск не сразу, а, допустим, порциями по 100 строк. А по началу они пусть в оперативной памяти добавляются. Набралось 100 записей, добавились они все на диск.

Как так можно сделать?
А может я вообще неверный способ для переноса dbf в sqlite таблицу выбрал?
doza_and
Pluto
немедленной записью на диск
По идее такое может быть если каждая вставка сопровождается commit
Попробуйте без прокладок напрямую к sqlite обращаться. Коммит сделайте в самом конце, 71 тысяча записей это немного.
http://docs.python.org/2/library/sqlite3.html
Попробуйте
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
Pluto
self.con.transaction() и self.con.commit(), где con - объект соединение с БД sqlite cпасли отца русской демократии!
Добавление записей (запись их на диск) произошло за несколько секунд.
Ainur
Pluto
self.con.transaction() и self.con.commit(), где con - объект соединение с БД sqlite cпасли отца русской демократии!Добавление записей (запись их на диск) произошло за несколько секунд.
можете пожалуйста пример написать как это использовать?
Jony1990
Вот не совсем понял, как он вообще этот код запустил ?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB