11

設計上、Core Data は SQLite データベースにVACUUM SQL コマンドを発行しません。詳しくはこちらをご覧ください。SQLite db に大きなバイナリ ファイル (サイズが 2 ~ 10 MB) を格納し、後で削除する Core Data アプリケーションを作成しています。これにより、時間の経過とともに断片化が発生し、SQLite データベースが必要以上に大きくなります。たとえば、実行するクリーンアップ操作中に定期的に VACUUM コマンドを発行したいと考えています。

  • Core Data の SQLite ストアに VACUUM コマンドをプログラム的に発行するにはどうすればよいですか?
  • Core Data を介してこれを行うことは可能ですか、それとも SQLite db をマウントし、それに直接接続して VACUUM SQL を実行する必要がありますか?
4

3 に答える 3

14

OS X 10.6 / iOS 3.0 以降でサポートされている方法は、永続ストア コーディネーターにストアを追加するときにオプションでNSSQLiteManualVacuumOptionを設定することです。

于 2009-10-09T14:35:03.653 に答える
1

はい、vacuumSQLite で認識される SQL ステートメントです。通常のクエリとして使用できます

ただし、Windows サーバーでのサーバー ファイル システムの断片化は言うまでもなく、過剰なファイル システムの読み取りと書き込み (事実上すべてのシステムのボトルネック) につながる可能性があるため、注意してください。

于 2009-12-29T23:36:39.307 に答える