Domanda

In base alla progettazione, Core Data non pubblica un VUOTO comando SQL per il database SQLite (s), come dettagliato qui . Sto creando un'applicazione Core Data che ti memorizzare, e successivamente eliminare, le grandi file binari (2-10MB in termini di dimensioni) in un DB SQLite. Nel corso del tempo questo porterà a una frammentazione e di un database SQLite più grande del necessario. Mi piacerebbe emettere periodicamente un comando VUOTO, diciamo, nel corso di un'operazione di pulizia corro.

  • Come posso progmatically emettere un comando VACUUM ai negozi SQLite di Core Data?
  • E 'possibile farlo attraverso Core Data, o devo montare il db SQLite e connettersi ad esso direttamente per eseguire il VUOTO SQL?
È stato utile?

Soluzione

Il modo più sostenuto per fare questo, su OS X 10.6 / iOS 3.0 e versioni successive, è quello di impostare la NSSQLiteManualVacuumOption nelle opzioni quando si aggiungono le vendite al persistente coordinatore del negozio.

Altri suggerimenti

Sì, vacuum è un'istruzione SQL riconosciuta in SQLite. Può essere usato come una query normale, o almeno così si dice .

Attenzione, però, in quanto può portare a file system eccessiva legge e scrive, il collo di bottiglia di praticamente qualsiasi sistema, per non parlare di frammentazione del file system del server su server Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top