Frage

Mit dem Design, Core Data nicht erteilt ein VACUUM SQL-Befehl an seine SQLite-Datenbank (en), wie hier detailliert beschrieben. Ich bin eine Core Data-Anwendung erstellen, die werden speichern und später löschen, große binäre Dateien (2-10MB in der Größe) in einem SQLite db. Im Laufe der Zeit wird dies zu einer Fragmentierung führen und eine größere als erforderlich SQLite-Datenbank. Ich möchte regelmäßig einen VACUUM-Befehl ausgeben, sagen wir, während einer Säuberungsaktion I ausgeführt werden.

  • Wie kann ich progmatically einen VACUUM Befehl Core Data SQLite speichert?
  • Ist es möglich, dies durch Core Data zu tun, oder muss ich die SQLite db montieren und mit ihm verbinden direkt die VACUUM SQL ausführen?
War es hilfreich?

Lösung

Die unterstützte Möglichkeit, dies zu tun, auf OS X 10.6 / iOS 3.0 und höher, ist die NSSQLiteManualVacuumOption in den Optionen, wenn Sie den Speicher auf den persistenten Speicher Koordinator hinzufügen.

Andere Tipps

Ja, das ist vacuum eine anerkannte SQL-Anweisung in SQLite. Es kann als eine normale Abfrage verwendet werden, oder so sagt es .

Beachten Sie aber, da es zu einem übermäßigen Dateisystem führen kann Lese- und Schreib-Engpass von praktisch jedem System-nicht zu erwähnen Server-Dateisystem Fragmentierung auf Windows-Servern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top