Hello all, I saw an interesting reply from Dr. Hipp posted today:
http://www.mail-archive.com/sqlite-users@sqlite.org/msg62618.html This seems to explain why SQLite (and Core Data) might sometimes launch and execute very slowly. -- Tito On Sep 3, 2009, at 5:00 PM, Ben Trumbull wrote: > > On Sep 3, 2009, at 4:49 AM, Ruotger Skupin wrote: > >>>>> Since it's not a many to many, you can perform the prefetching >>>>> effectively by hand using a fetch request to preload the relevant >>>>> destination rows with an IN query based on the data you initially fetched >>>>> for the source entity. You shouldn't have to, but if you've run into a >>>>> bug, that's how you could workaround it. >>>>> >>>>> You still haven't described the NSPredicate you were using with >>>>> filteredArrayUsingPredicate. Being more forthcoming about the context >>>>> and details of your problem will help us get you answers more quickly. >>>> This is the predicate I was using for the test of the original post, but >>>> since I use Smart Folders predicates can look a lot different (i.e.: >>>> complex): >>>> >>>> (additionalInfo.onTheFlyIsInternal == 0 AND additionalInfo.isSuppressed != >>>> 1) AND (account.uniqueID IN {"D1AB3788-00DF-4475-A979-CE3EFC3987B5"} OR >>>> FALSEPREDICATE) >>>> >>> >>> >>> You'll want to prefetch additionalInfo and account. >> >> Hm. Problem here is: As mentioned I use the predicate for a smart group. So >> the predicate can vary wildly and can reference basically any entity in the >> model. So what is the best strategy here? "Decompile" the predicate (which >> is built by an NSPredicateEditor) and prefetch the keypaths it takes? >> Prefetch "everything"? > > > Prefetching everything is usually undesirable. The easiest approximate > solution is to just track the hot button relationships for each of your core > entities, and look up which keypaths to prefetch by entity name. Of course, > you can also do a lot less filtering in memory if you pass the predicates to > the database with the fetch request. You only need to prefetch relationships > you are going to use in memory. You don't need to prefetch anything that's > simply used as part of the predicate in the fetch request itself. > > Walking through the predicate and gathering up the keypaths used is very > tedious, but not especially difficult, if you find yourself wanting a > complete solution. > > - Ben > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > 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: > http://lists.apple.com/mailman/options/cocoa-dev/tciuro%40mac.com > > This email sent to tci...@mac.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com