안녕하세요^^

 

주말은 잘 보내셨는지요..

 

다름이 아니라 앱 개발을 하는데요 대용량 DB를 INSERT 해야 하는 부분이 생겨서 질문드립니다...

 

현재 앱을 실행 할경우 XML 데이터를 대용량으로 받아서 INSERT를 처리해야하는데요..

 

일단 파싱 속도는 개선을 한 상태라 괜찮은데요.. INSERT가 1분이상 걸리더라구요..

 

데이터는 900개 정도인데 이걸 3번을 각각 다른 TABLE에 이동 해야하는 상황인데...

 

확인 해보니까 SQLITE에서는 insert  내용; insert 내용; 이런식으로 묶어서 연달아 어러 값을 한꺼번에 저장할 수있는데요

 

실질상 안드로이드 개발단에서는 내용을 묶어서 저장 시킬려고 했더니 연달아 넣어도 첫번째 값만 등록이 되더라구요...

 

 INSERT INTO MYTABLE (id, name) VALUES (101, '123');INSERT INTO MYTABLE (id, name) VALUES (101, ');

이런식으로 묶어서 SQLITE 자체 에서는 사용이 가능합니다..

실질적으로 안드로이드 소스에서 저렇게 처리하려고 했더니 앞에꺼 하나만 등록이 되네요..
 
그리고 이건지금 돌아가고 있는 INSERT 구문인데요.. 이걸 900개의 데이터와 각기 다른 테이블에 3번을 INSERT 시키니까
너무 느리네요... 대용량으로 한방에 처리하는 방법은 없을까요...
public long insertZRELATION(String tableName,String ID,String couponID,String shopID){
  ContentValues values = new ContentValues();
  long result = 0;
  db.beginTransaction();
  try{
   if(tableName.equals("ZRELATION")){
    values.put("ZID", ID);
    values.put("ZCOUPONID", couponID);
    values.put("ZSHOPID", shopID);
   }
   
   result = db.insert(tableName, null, values);
   db.setTransactionSuccessful();
   
  }catch (Exception e) {
   // TODO: handle exception
  }finally{
   db.endTransaction();
  }
  return result;
 }