2016-11-09 9 views
0

성능 :?Android SQLite 성능 : 단일 쿼리에서 다중 선택 vs. 다중 쿼리에서 단일 선택? 하나는 (하나의 테이블에 대한) 더 현명한

  1. 여러 단일 쿼리에서 선택하거나
  2. 단일 여러 쿼리의 선택?

예 : 귀하의 예를 들어

/*table schema*/ 
create table ACTIVITY_TABLE (
ID integer primary key autoincrement, 
INTERVAL_ID integer not null, 
ACTIVITY_TYPE text , 
WIFI_LIST text, 
COUNT integer not null); 



/*Multipe selects in single query*/ 
select * from 
    (select sum(COUNT)/60 as Physical from ACTIVITY_TABLE where INTERVAL_ID >=1 and INTERVAL_ID <=3 and (ACTIVITY_TYPE="Still" or ACTIVITY_TYPE = "Walking" or ACTIVITY_TYPE = "Running" )), 
    (select sum(COUNT)/60 as vehicular from ACTIVITY_TABLE where INTERVAL_ID >=1 and INTERVAL_ID <=3 and (ACTIVITY_TYPE="InVehicle")); 

답변

1

, 당신은 훨씬 더 효율적입니다 다음과 같은 방법으로 쿼리를 수정할 수 있습니다, 나는 쿼리를 테스트하지 않았다. 내가 COUNT & (/ 60) 부분을 놓친 것 같아요 @ctu

select 
sum(case when activitytype='walking' or activitytype='still' or activitytype='running' then COUNT else 0 end)/60 as physical, 

sum(case when activitytype='InVehicle' then COUNT else 0 end)/60 as vehicular 

from 

activity_table 

where interval_id>=1 and interval_id<=3 
+0

덕분에 @Mohanraja,하지만 쿼리는 현재 쿼리가 예상 부여합니다 지금 – ctu

+0

를 제공하지 않습니다 결과. 두 쿼리의 성능을 검사하는 스크립트 또는 코드를 갖는 것이 좋습니다. 내가 지금 아마 두 쿼리 (당신과 내)가 1ms의 결과를 반환하기 때문에 어쩌면 내가 몇 가지 sqlite 쿼리 성능 테스터를 찾을 수있는 인터넷 검색을 만들 것이다. 귀하의 의견을 주셔서 감사합니다 :) – Mohanraja

+0

그것을 시도, 나는 그 부분을 편집합니다, 나에게 예상되는 결과 – ctu