2015-01-24 3 views
0

Ormite를 사용하여 안드로이드에서 Sqlite로 두 개의 다른 테이블 (DAO)을 읽고 싶습니다. 각 테이블에는 10.000 개가 넘는 행이 있습니다.Android에서 Ormlite를 사용한 멀티 스레드 읽기 성능

OpenHelperManager.getHelper(context, DatabaseHelper.class);을 통해 하나의 연결 만 사용해야한다는 것을 알고 있습니다. 문제 없어.

두 개의 테이블을 읽는 데 두 개의 병렬 스레드를 사용하거나 성능과 관련하여 병렬 액세스를위한 데이터베이스가 아닌 경우 제 질문은 더 빠릅니까?

답변

1

SQLiteDatabase은 스레드를 안전하게 보호하고 동시 액세스를 방지하기 위해 내부적으로 자체 잠금 기능을 가지고 있습니다. 이전에는 setLockingEnabled(false)을 호출하여이 작업을 수행 할 수 있었지만 API 16부터 사용되지 않습니다. 그러나 API 11 이후 enableWriteAheadLogging()을 호출하면 동일한 데이터베이스의 여러 스레드에서 쿼리를 병렬로 실행할 수 있습니다. 가능한 한 빨리 호출해야하므로 onConfigure() (API 16+) 또는 onOpen() 중 하나를 호출해야합니다.

+0

여러 스레드를 사용하면 더 빨리 처리 할 수 ​​있습니까? –

+1

그럴 수도 있습니다. – Karakuri