2010-08-04 6 views
0

У меня есть базовое приложение данных, и я хотел бы получить результаты из db на основе определенных параметров. Например, если я хочу захватить только события, произошедшие на прошлой неделе, и события, произошедшие за последний месяц. Лучше ли делать выборку для всего объекта, а затем работать с этим массивом результатов, чтобы создавать массивы из этого для каждой ситуации или лучше использовать предикаты и делать множественные выборки?Чем эффективнее Core Data Fetch или манипулировать/создавать массивы?

ответ

1

Ответ зависит от множества факторов. Я рекомендовал бы ознакомиться с описанием документации для various store types. Например, если вы используете тип хранилища SQLite, гораздо эффективнее правильно использовать предикаты диапазона дат и извлекать только те, которые указаны в заданном диапазоне.

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

В дальнем конце спектра у вас есть двоичный тип хранилища, что означает, что все это всегда будет вытаскиваться в память независимо от того, какие вы делаете.

Чтобы получить более конкретный ответ, вам необходимо описать вашу модель управляемых объектов и типы получателей, которые вы планируете сделать.

+0

Я использую тип хранилища SQLite. То, что я пытаюсь сделать, - генерировать статистику на основе заданного интервала времени, поэтому получить среднее значение элемента за неделю, 30 дней и год. Поэтому я пытался выяснить, лучше ли создавать 3 разных выборки с разными предикатами или вместо этого просто захватывать сущность, а затем перечислять через возвращаемый массив, нажимая соответствующие значения даты на разные массивы для расчета? – adam0101

+0

Опишите вашу модель? Какова статистика/даты, представленные в вашем M.O.M.? Кроме того, видели ли вы операторы набора и массива? http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/KeyValueCoding/Concepts/ArrayOperators.html –

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