2012-04-17 4 views
1

Android sqlite 데이터베이스에 엄청난 양의 데이터를 삽입하는 데 문제가 있습니다 (~ 7000 행의 데이터). InsertHelper를 사용하고 있지만 속도가 그다지 느껴지지 않습니다. 그 많은 데이터를 DB에 효율적으로 삽입 할 수있는 다른 방법이 있습니까?(Android) sqlite에 수천 개의 행 삽입하기

감사합니다.

편집 :

수정 사항을 발견했습니다. 내 삽입 코드 (편의상 생략 세부 사항)을 다음과

public void addEntries(ArrayList<KeywordMap> keywords) { 
     if (keywords == null || keywords.size() == 0) 
      return; 

     mDb.beginTransaction(); 

     String sql = "Insert into " + AUTOCOMPLETE_TABLE + " (path, name, course_id, " + 
       "course_id_norm, type, year) values(?,?,?,?,?,?)"; 
     SQLiteStatement insert = mDb.compileStatement(sql); 

     for (KeywordMap keyword : keywords) { 
      insert.bindString(1, keyword.path); 
      insert.bindString(2, keyword.name); 
      insert.bindString(3, keyword.cid); 
      insert.bindString(4, keyword.cid_norm); 
      insert.bindDouble(5, keyword.type); 
      insert.bindDouble(6, keyword.year); 

      insert.execute(); 
     } 

     mDb.setTransactionSuccessful(); 
     mDb.endTransaction(); 
    } 
+2

하여 삽입 문이 무엇처럼 보이나요? 주변 환경은 무엇입니까? – sarnold

+0

좋은 해결책을 찾았습니다. (실행 시간은 아마도 5 배 정도 줄었을 것입니다.) – Jin

+0

스택이 자신의 질문에 대답 할 수있게되면 다른 사람들이 장래에 찾을 수 있도록 최종 결과를 제출하십시오. 감사! – sarnold

답변

8
db.beginTransaction() 

//insert, insert, insert … n-insert 

db.setTransactionSuccessful(); 
db.endTransaction(); 
+0

아마도 그럴 것입니다. 그러나 그것은 여전히 ​​추측입니다. :) 좋은,하지만 여전히 ... – davidcesarino

+0

감사, 거래를 추가 확실히 도움이됩니다. 컴파일 된 SQL 문을 사용하여 더욱 최적화했습니다.] – Jin

관련 문제