Я создал файл со списком из примерно 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 ответ1

2

Используйте strace -p чтобы присоединиться к процессу cat . Посмотрите, читает ли он все еще из файла.

Кстати, если вы не выполняете импорт внутри транзакции, он будет работать в несколько сотен раз медленнее, чем должен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .