2014-12-01 2 views
0

샘플 앱을 사용하여 android를 배우고 있습니다. 앱 내의 서비스는 전화의 위치를 ​​주기적으로 데이터베이스에 저장합니다. 기본 빈도는 위치가 변경 될 때 새 좌표를 보내는 GPS 제공 업체에 따라 다릅니다. 그래서, 내가 장거리 여행 중 차 량으로 여행하는 경우 광대 한 수 있습니다. 지금 직면하고있는 문제 - db에이 데이터를 쓰고 읽으려면 어떤 메커니즘을 선택해야합니까? 가장 쉬운 방법은 ORM (ORMLite)입니다. 그리고 나는 DB에 쓸 문제가 없을 것이라고 생각합니다. 내가 걱정하는 것은 데이터를 읽는 것입니다. 서핑 스택 오버 (stackingfow) 서핑, ORMLite를 사용하여 대량의 데이터 (수천 행)를 읽는 것과 관련된 문제가 발견되었습니다. 이로 인해 최대 몇 분의 지연이 발생할 수 있습니다. 현재로서는이 위치를로드하여 예를 들어 경로를 만들고지도에 표시 할 계획입니다. 그럼 ORMLite 접근법을 다른 것으로 대체해야합니까?이 "다른 것"은 무엇이겠습니까? 또는 ORM을 사용하여 데이터를 쓰고 다른 것을 읽을 수 있습니까? 내 애플 리케이션 내에서 DB에 이야기하는 몇 가지 통일 된 접근 방식을 사용하고 싶습니다. 사전에Android 앱 : 데이터베이스 조언 읽기 및 쓰기

감사합니다!

+0

어떤 종류의 문제가 발생했는지 좀 더 구체적으로 밝혀야합니다. 실제로 시도하지 않고 느린 속도를 측정 할 수있는 어떠한 종류의 데이터도없이 "작동이 느려질 수 있습니다"라고 말하면 실제로 작업 할 수있는 게 아무것도 없습니다. 느린 이유가 있습니다. 데이터 행 수는 그 중 하나 일뿐입니다. – Karakuri

+0

내가 할 일은이 질문과 비슷합니다. http://stackoverflow.com/questions/7811466/ormlite-dao-in-android-getting-really-slow-when-querying-more-than-few-thousand 그 스레드에는 확실한 답이 없으므로, 여기에 몇 가지 조언을 구하고 있습니다. 나는 ORMLite로 끝내고 실제 수치를 보려고 노력할 것입니다. 내가 올바른 방향으로 가고 있는지 또는 다른 접근법을 사용해야 하는지를 알고 싶었습니다. –

답변

0

우리는 결과 세트에서 수천 개의 항목을 처리 할 수있는 오랜 기간 동안 ORM 솔루션을 사용 해왔고 놀라 울 정도로 빠릅니다. 우리는 일반적으로 결과에 대한 커서를 만들 ORM 도구를 사용하여, 다음 커서에서 데이터를 끌어 다음을 수행하십시오

Individual individual = new Individual(cursor); 
name = individual.getName(); 
age = individual.getAge(); 
... etc ... 

or 

String name = Individual.getName(cursor); 
int age = Individual.getAge(cursor); 
우리가 사용하는 도구 (나는 저자 해요) DBTools입니다

(https://github.com/jeffdcamp/dbtools-android) .