Pregunta

Por diseño, la base de datos no emite una VACIO de comandos SQL a la base de datos (s) SQLite, como detalla aquí . Estoy creando una aplicación de base de datos que va a almacenar, borrar y más tarde, grandes archivos binarios (2-10MB de tamaño) en una base de datos SQLite. Con el tiempo esto dará lugar a la fragmentación y una base de datos SQLite más grande de lo necesario. Me gustaría emitir periódicamente un comando VACUUM, por ejemplo, durante una operación de limpieza corro.

  • ¿Cómo puedo progmatically emitir un comando vacío para tiendas de SQLite de Core Data?
  • ¿Es posible hacerlo a través de la base de datos, o debe montar el PP que SQLite y conectarse a él directamente para ejecutar el SQL VACÍO?
¿Fue útil?

Solución

La forma compatible de ello, en OS X 10.6 / iOS 3.0 y versiones posteriores, es establecer la NSSQLiteManualVacuumOption en las opciones cuando se está añadiendo la tienda para el coordinador almacén persistente.

Otros consejos

Sí, vacuum es una instrucción SQL reconocido en SQLite. Puede ser utilizado como una consulta normal, o eso dice .

Tenga cuidado, sin embargo, ya que puede conducir a exceso de sistema de archivos lee y escribe, el cuello de botella de prácticamente cualquier sistema, por no mencionar la fragmentación del sistema de archivos del servidor en servidores Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top