「ウソだろ!」と思って、手元にある2.3系と4.2系で以下のようなコードで確認してみました。
コードはこんな感じ。
DBHelper helper = new DBHelper(this);
SQLiteDatabase database = helper.getReadableDatabase();
Cursor cursor = database.rawQuery("PRAGMA auto_vacuum", null);
cursor.moveToFirst();
Log.d("tag", "auto_vacuum = " + cursor.getString(0));
SQLiteDatabase database = helper.getReadableDatabase();
Cursor cursor = database.rawQuery("PRAGMA auto_vacuum", null);
cursor.moveToFirst();
Log.d("tag", "auto_vacuum = " + cursor.getString(0));
で、実行結果は2.3/4.2の両方とも
05-31 23:44:22.833: D/tag(19169): auto_vacuum = 1
auto_vacuum は0:NONE 1:FULL 2:INCREMENTALらしいです。そのため、自動的にVacuumされます。よってVacuumする必要はまったくありません。。。
参考情報はこの辺
http://tools.oesf.biz/android-2.3_r1.0/xref/external/sqlite/dist/Android.mk
http://tools.oesf.biz/android-2.3_r1.0/xref/external/sqlite/dist/sqlite3.c
0 件のコメント:
コメントを投稿