Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В андройде, тем не менее

Один из “побочных” эффектов такого подхода — падение производительности на операциях чтения, при достаточно сильной декомпозиции и нормализации, так как в запросах необходимо выполнять большее количество джойнов. И чем больше у вас записей в таблицах, тем дольше они выполняются. Да, как работают современные движки БД я имею мало представления.
-- Один джойн
DECLARE @Begin datetime;
DECLARE @Count int;
DECLARE @End datetime;
set @Begin = (select GETDATE());
set @Count = (select COUNT(1) from tablVisit
join tablMKAB on MKABID = tablVisit.rf_MKABID
where MKABID!=0 and tablVisit.rf_TAPID != 0)
set @End = (select GETDATE());
-- Два джойна
DECLARE @Begin2 datetime;
DECLARE @Count2 int;
DECLARE @End2 datetime;
set @Begin2 = (select GETDATE());
set @Count2 = (select COUNT(1) from tablVisit
join tablTAP on TAPID = tablVisit.rf_TAPID
join tablMKAB on MKABID = tablTAP.rf_MKABID
where MKABID!=0 and tablVisit.rf_TAPID != 0)
set @End2 = (select GETDATE());
-- Результаты
select '1 join' as [Джойнов], @Count as [Результат], DATEPART(Ms, @End - @Begin) as [Время, ms]
union all
select '2 join' as [Джойнов], @Count2 as [Результат], DATEPART(Ms, @End2 - @Begin2) as [Время, ms]
Джойнов Результат Время, ms
------- ----------- -----------
1 join 126446 60
2 join 126445 93
(2 row(s) affected)
key-value подход повысил производительность?class Bean {
public long id;
public int number;
public String title;
// no getters & setters
}
Способы проектирования баз данных в Android