Pergunta

Por design, os dados principais não emitem um VÁCUO Comando SQL para seus bancos de dados SQLite, como detalhado aqui. Estou criando um aplicativo de dados principal que armazenará e, posteriormente, excluir arquivos binários grandes (2-10 MB de tamanho) em um db sqlite. Com o tempo, isso levará à fragmentação e a um banco de dados SQLite maior do que o necessário. Gostaria de emitir periodicamente um comando a vácuo, digamos, durante uma operação de limpeza que corro.

  • Como posso emitir progmaticamente um comando a vácuo para as lojas sqlite da Core Data?
  • É possível fazer isso através de dados principais, ou devo montar o sqlite db e conectar -os diretamente para executar o SQL a vácuo?
Foi útil?

Solução

A maneira suportada de fazer isso, no OS X 10.6 / iOS 3.0 e posterior, é definir o NssqlitemanualvacuumOption nas opções quando você está adicionando a loja ao persistente coordenador da loja.

Outras dicas

Sim, vacuum é uma instrução SQL reconhecida no sqlite. Pode ser usado como uma consulta normal, Ou assim diz.

Cuidado, porém, pois pode levar a leituras e gravações excessivas do sistema de arquivos - o gargalo de praticamente qualquer sistema - não mencionar a fragmentação do sistema de arquivos do servidor nos servidores Windows.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top