Question

De par sa conception, Core Data ne délivre pas de VACUUM commande SQL à sa base de données SQLite (s), comme détaillé ici . Je crée une application de données de base qui va stocker et supprimer plus tard, fichiers binaires volumineux (2-10MB taille) dans un SQLite db. Au fil du temps cela conduira à une fragmentation et une base de données SQLite plus que nécessaire. Je voudrais émettre périodiquement une commande VACUUM, par exemple, lors d'une opération de nettoyage je cours.

  • Comment puis-je émettre une commande progmatically VACUUM aux magasins SQLite Core Data?
  • Est-il possible de le faire par Core Data, ou dois-je monter le SQLite db et de s'y connecter directement pour exécuter le VACUUM SQL?
Était-ce utile?

La solution

La méthode correcte pour ce faire, sur OS X 10.6 / iOS 3.0 et versions ultérieures, est de régler NSSQLiteManualVacuumOption dans les options lorsque vous ajoutez le magasin au coordinateur de stockage permanent.

Autres conseils

Oui, vacuum est une instruction SQL reconnue dans SQLite. Il peut être utilisé comme une requête normale, ou il dit .

Attention, cependant, car il peut conduire à un système de fichiers excessif lit et écrit-le goulot d'étranglement de pratiquement tout système, sans parler de la fragmentation du système de fichiers du serveur sur les serveurs Windows.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top