smithsson68@gmail.com
Jan 31, 2011
  6231
(2 votes)

Dynamic Data Store Tips: Don’t use Find when you know an object’s “Id”

I have seen a few examples of code where an object is to be read from the Dynamic Data Store. The calling code has the objects “Id” value but use the Find method of DynamicDataStore to load the object.

Find works by generating a simple where clause against the store’s database view. The problem here is that the “Id” column in a store’s view is a non indexed manufactured string value based on the underlying StoreId (int) and ExternalId (Guid). Searching against this will be slow when dealing with a large number of rows.

If you know the “Id” of an item you should ALWAYS use the Load method of the DynamicDataStore. Load searches directly against either the StoreId or ExternalId columns, both of which are indexed.

See my previous blog entry Best (and fastest) ways to load items from the Dynamic Data Store for more details of loading.

Happy loading!

Jan 31, 2011

Comments

smithsson68@gmail.com
smithsson68@gmail.com Jan 31, 2011 10:10 AM

Side note: Passing "Id" to Find will throw an exception from EPiServer vNext (CMS 7 probably)

Anders Hattestad
Anders Hattestad Jan 31, 2011 10:55 AM

But if I want to query on the int or guid part of the ID, is that ok?
or will you throw an exteption on that also

as in this post
http://world.episerver.com/Blogs/Anders-Hattestad/Dates/2011/1/PageProviders-and-DDS-a-match-from-heaven/

Jan 31, 2011 11:26 AM

Yes, it will still be possible to query with LINQ against ID

Please login to comment.
Latest blogs
Optimizely CMS 13 and the Alloy demo site

The Alloy demo site now runs on Optimizely CMS 13. Here’s a quick guide to getting it up and running locally.

Tomas Hensrud Gulla | Apr 10, 2026 |

A day in the life of an Optimizely OMVP: Getting Up to Speed with Optimizely CMS 13 — A Free Learning Path

If you're working with Optimizely and haven't started exploring CMS 13 yet, now's the time. I've put together a dedicated CMS 13 course within the...

Graham Carr | Apr 10, 2026

A day in the life of an Optimizely OMVP: Optimizely CMS 13 Is Here: The Features, The Add-Ons, and What's Coming Next

CMS 13 went GA on 31st March 2026, and after months of previews, webinars, and internal engineering sessions, it's finally real. I've been deep in...

Graham Carr | Apr 10, 2026

How to get the Page Tree back in Optimizely CMS

Lost the page tree in Optimizely CMS? Here's why it happens and the non-obvious fix to get it back.

Henning Sjørbotten | Apr 10, 2026 |