19 Dec 2008
01 Apr 2009
Link to this post
I've been going through the code trying to figure out how to improve the performance of the Dashboard. In the interim, I'm forcing all of my users to Pages first.
It looks like I may have found two of the reasons for the performance issues on the Dashboard.
In ~/Sitefinity/Admin/Default.aspx, it looks like the code to databind everything is called regardless of whether or not the tab in question is actually being viewed.
For example, on line 211, you only check to see if the user has permission to view the recent pages without the additional check to see if they are actually viewing that piece.
In addition, your control model is fetching every single page instead of doing a more focused query (like SELECT TOP x).
So on a site like ours that has about 8,000 pages, the performance goes to Hell the moment anyone visits the page.
My recommendations would be to not DataBind if the control isn't visible and only retrieve the number of records that have been requested for display.