하나의 DB에 테이블 8개, 총 레코드 수 200여개..
DB를 update식으로 초기화 하려고했더니 어플이 응답이 없어지면서 종료되는 현상이 일어난다..

db.beginTransaction();
   try {
     ...
     db.setTransactionSuccessful();
   } finally {
     db.endTransaction();
   }
트랜잭션을 사용하면 데이타를 빠르게 처리할 수 있다.
위 소스는 개발자사이트에서 Transaction을 검색한 결과.

자세히는 모르지만 쿼리를 날릴때마다 트랜잭션이 발생하는데 그걸 멈추었다가 모든 쿼리문을 날리고
트랜잭션을 발생시켜 쿼리를 한번에 처리하는 방식인듯 싶다..

	/* delete DB */
	public void deleteDB() {
		mDBManager.getWritableDatabase();

		mDB.beginTransaction();
		try {
			mDB.execSQL("DELETE FROM aaa;");
			mDB.execSQL("DELETE FROM bbb;");
			mDB.execSQL("DELETE FROM ccc;");
			mDB.execSQL("DELETE FROM ddd;");
			mDB.execSQL("DELETE FROM eee;");
			mDB.execSQL("DELETE FROM fff;");
			mDB.execSQL("DELETE FROM ggg;");
			initializeDatabases(mDB);
			mDB.setTransactionSuccessful();
		} finally {
			mDB.endTransaction();
		}
		
		mDBManager.close();
	}
속도도 빨라졌으니 그냥 테이블을 삭제시키고 처음 DB를 만들때 insert해주는 초기화 부분을 다시불러 초기화 해주었다.
응답이 없다고 종료되던 현상이 1초도 안걸리고 초기화 되었다 ~ ! 



'Android > Databases' 카테고리의 다른 글

데이터베이스 검색  (0) 2011.07.13
데이터베이스 삭제 및 갱신  (2) 2011.07.03
데이터베이스 업그레이드하기  (0) 2011.07.03
데이터베이스 사용하기  (1) 2011.07.02

+ Recent posts