Use strace -p
para anexar ao processo cat
. Veja se ainda está lendo o arquivo.
A propósito, se você não está fazendo a sua importação dentro de uma transação , ela vai rodar várias centenas vezes mais devagar do que deveria.
Eu criei um arquivo com uma lista de aproximadamente 8 milhões de instruções de importação a serem importadas para um banco de dados SQLite. Eu tenho redirecionado erros para um arquivo. A cada poucos milhares de linhas há um erro, que me informa o progresso da importação. A partir de ontem, a importação estava na linha 5 milhões, mas, pelo que sei, nada de novo aconteceu. [O processo de importação - cat listofsqlstatements.sql| sqlite3 mydb.db 2>errors.txt
- ainda está em execução.]
O log de erros não foi alterado;
o tamanho do arquivo do banco de dados parece inalterado (usando du database.db
);
e um - sqlite3 mydb.db "select distinct * from sometable"|wc -l
não mostra nenhuma alteração.
No entanto, olhando para htop
, vejo que o processo de importação tem alto uso da CPU.
O que pode estar acontecendo?
Como posso determinar isso?
Posso verificar para ver quais foram os últimos dados importados para o banco de dados?
Use strace -p
para anexar ao processo cat
. Veja se ainda está lendo o arquivo.
A propósito, se você não está fazendo a sua importação dentro de uma transação , ela vai rodar várias centenas vezes mais devagar do que deveria.