smithsson68@gmail.com
Jan 31, 2011
  6198
(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
Lessons from Building Production-Ready Opal Tools

AI tools are becoming a normal part of modern digital platforms. With  Optimizely Opal , teams can build tools that automate real tasks across the...

Praful Jangid | Mar 7, 2026

My Takeaway from Optimizely Opal Agents in Action 2026 - What Agentic AI Means for the Future of Digital Marketing

I would like to share with you what stayed in my head after this amazing virtual event organized by Optimizely. Agents in Action 2026 , a live...

Augusto Davalos | Mar 6, 2026

From Vision to Velocity: Introducing the Optimizely MVP Technical Roundtable

Digital transformation is a two-sided coin. On one side, you have the high-level strategy, the business cases, the customer journeys, and the...

Patrick Lam | Mar 6, 2026

Commerce 14.45.0 is incompatible with CMS 12.34.2 (but that's an easy fix!)

Incompatible is a strong word, but that is to get your attention. This is one of the small thing that can be overlooked, but if you run into it, it...

Quan Mai | Mar 5, 2026

Announcing Stott Security Version 5.0

March 2026 marks the release of Stott Security v5, a significant update to the popular web security add-on for Optimizely CMS 12+, with more than...

Mark Stott | Mar 5, 2026

Is Opal the Enterprise-Ready Evolution of OpenClaw?

From OpenClaw experiments to enterprise AI agents: exploring the journey from my personal automation to governed execution at scale with Optimizely...

Hristo Bakalov | Mar 5, 2026 |