EPiServer and performance
November 30, 2007
I’m currently working on a large (1000+ subsites) EPiServer project and we had some really nasty issues with performance due to a design flaw. Let me just put it like this: If you’re ever thinking about using many dynamic properties on a large site, DON’T! It has been said before, but needs to be repeated.
The situation has allegedly improved quite a bit in EPiServer CMS (5) but in the 4.XX versions, whenever you delete/move/copy a page the cache is emptied and the entire dynamic properties tree has to be reloaded from the database. Which, in our case, took 30 – 60 seconds and no one was able to use the site for that duration.
The solution was to build a plug-in that iterated through the entire site and moved the dynamic properties to pages instead, e.g. start pages. Then we replaced all the calls to dynamic properties with calls to the start pages’ properties, leaving us with only references to the start pages as “dynaprops” (cool word, eh? I made it up myself). Now every time someone deletes a page, the database roundtrip takes 1 second, not 1 minute.
I hope this can prevent anyone from making the same mistake.