Re: Counting instances in Core Data
Re: Counting instances in Core Data
- Subject: Re: Counting instances in Core Data
- From: Adam Swift <email@hidden>
- Date: Tue, 29 Apr 2008 11:33:27 -0700
On Apr 29, 2008, at 11:18 AM, Adam Swift wrote:
On Apr 29, 2008, at 9:03 AM, Steve Cronin wrote:
My question is: what is the most efficient fetch to pose given that
every fetch is IO.
A given entity might have a lot of records so an array COULD be an
unnecessarily large transaction...
Is there a best practice fetch for this 'get a count' purpose?
Sorry - I should have pointed this out- there are a lot of options
available for tuning performance (fetch IDs, prefetch relationships,
fetch in batches, etc, etc) and it definitely makes sense to measure
before you start optimizing -- this covers the breadth and summarizes
it very nicely:
http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdPerformance.html#/
/apple_ref/doc/uid/TP40003468
In Tiger that was the best means available, but if you're targeting
Leopard there is a better option available:
Create your fetch request to fetch all instances of a given entity
and execute the fetch with countForFetchRequest:error: which will
simply return the number of instances/rows that match your query.
request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"Foo"
inManagedObjectContext:context]];
count = [context countForFetchRequest:request error:&error];
http://developer.apple.com/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectContext_Class/Reference/Reference.html
- adam
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden