“Compactando” um banco de dados SQL após excluir registros com o SQLiteMan

1

Estou usando o SQLiteMan para editar / excluir o histórico de mensagens do Skype, conforme descrito em vários guias na Internet. Ou seja Eu abro o arquivo main.db do Skype na minha pasta de perfil usando o SQLiteMan e apago seletivamente alguns registros na tabela messages . O SQLiteMan permite que eu faça isso manualmente ou usando a instrução SQL DELETE . Na superfície, tudo funciona como esperado: os registros são excluídos e o Skype não exibe mais as mensagens excluídas em seu histórico.

No entanto, há um pequeno problema que parece não ser abordado em nenhum guia de gerenciamento de histórico do Skype na Internet. Os registros não são fisicamente excluídos de main.db , mas sim marcados como "excluídos" (o que certamente é uma coisa razoável a ser feita do ponto de vista do gerenciamento de banco de dados). A abertura de main.db no editor binário mostra que o conteúdo dos registros excluídos ainda é perfeitamente visível no arquivo. Espera-se que o tamanho do arquivo main.db não seja alterado, independentemente de quantos registros eu excluir.

Isso, é claro, não é aceitável do ponto de vista de privacidade / segurança.

Portanto, existe alguma maneira de forçar a exclusão física de registros indesejados após a exclusão "soft" acima? Existe uma maneira de "compactar" o arquivo de banco de dados SQL físico? Como alternativa, existe uma maneira de solicitar ao mecanismo SQL para zerar o conteúdo de registros excluídos "soft" para torná-los ilegíveis?

    
por AnT 22.11.2013 / 18:41

0 respostas