Я создал файл со списком из примерно 8 миллионов операторов импорта, которые нужно импортировать в базу данных SQLite. Я перенаправил ошибки в файл. Каждые несколько тысяч строк появляется ошибка, которая сообщает мне о ходе импорта. По состоянию на вчерашний день импорт был на уровне 5 миллионов, но, насколько я могу судить, ничего нового не произошло. [Процесс импорта - cat listofsqlstatements.sql| sqlite3 mydb.db 2>errors.txt
- все еще работает.]
Журнал ошибок не изменился; размер файла базы данных кажется неизменным (с использованием du database.db
); и - sqlite3 mydb.db "select distinct * from sometable"|wc -l
не показывает никаких изменений.
Однако, глядя на htop
я вижу, что процесс импорта имеет высокую загрузку процессора.
Что может происходить?
Как я могу определить это?
Могу ли я проверить, какие последние данные были импортированы в БД?
1 ответ
2
Используйте strace -p
чтобы присоединиться к процессу cat
. Посмотрите, читает ли он все еще из файла.
Кстати, если вы не выполняете импорт внутри транзакции, он будет работать в несколько сотен раз медленнее, чем должен.