2016-11-09 11 views
0

С точки зрения производительности, что один лучше (для одной таблицы):Производительность Android SQLite: несколько выборок в одном запросе Vs single select в нескольких запросах?

  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

Для примера, вы можете изменить запрос следующим образом, который будет гораздо более эффективным, я не проверил запрос.

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

@ctu я предполагаю, что я пропустил COUNT & (/ 60) часть, я буду редактировать эту часть, попробуйте сейчас – Mohanraja

+0

теперь запрос дает ожидается результат. неплохо иметь скрипт или код для проверки производительности обоих запросов. Я сделаю несколько поисковых запросов, может быть, я найду какой-нибудь SQL-тестер производительности запросов, потому что сейчас оба запроса (ваш и мой) возвращают результат в 1 мс, поэтому я не могу сказать, какой из них лучше. Спасибо за ваш вклад, хотя :) – ctu

 Смежные вопросы

  • Нет связанных вопросов^_^