Performance issues with SharePoint and Telerik RadGrid Control
I originally posted this question to narrow down the slowness issues with my SharePoint application. After accepting StriplingWarrior's answer, I began to step through his suggestions. In a nutshell, I have a RadGrid within an Application Page hosted on a SharePoint 2010 Server. The RadGrid runs perfectly fine when paging; however, once a filter is applied, ex: give me last names that contain 'doe' (using Telerik's built-in filter mechanism), the results take upwards of 15 seconds to return. This does not occur in my development environment, using the same set of data (approx 30,000 records).
A couple of notes here:
- The SQL which is produced by my LINQ to SQL expressions are fine. I traced them with LINQPad and placed them into Management Studio. Nothing complex going on there.
- I created an empty ASP.NET 3.5 开发者_如何学PythonWeb Forms application and ported one of the offending RadGrids. I placed the web application on the production server and wouldn't you know...it ran just fine. No performance issues when filtering.
So by doing the aforementioned, I was able to rule out the following:
- Database optimization issues.
- Network issues between the SharePoint application and database server.
- LINQ to SQL optimization issues.
Looking at this case from a high-level, can you think of anything that I need to do on the SharePoint application server or otherwise to fix this issue? I have debugging turned off in the web.config.
Again, here is my original question that contains the code. Thank you.
I would start by establishing were the 15 seconds are spent: 1. Server side 2. Client side
You can use a browser plugin like Page Speed (http://code.google.com/intl/da-DK/speed/page-speed/) to measure various aspects of your page. In case a major part of the 15 seconds is used server side for rendering the page you can narrow down what takes so long with a profiler tool or tracing statements in the code.
Your issue sounds a little bit like an issue with how the RadGrid handles filtering. You say that the generated SQL and database performance is fine. Does the filter expression (e.g. doe) get translated to a SQL where clause? I would suspect that the Grid selects all records from the DB and than applies the filter.
Kr, Bernd.
The SharePoint performance problems occur primarily due to the following reasons:
- BLOBs overwhelm SQL Server
- Too many database trips for lists
You can dramatically improve SharePoint performance if you use a few of intelligent techniques which are:
- Externalize Documents (BLOBs)
- Cache Lists and BLOBs
Microsoft Office SharePoint Server (MOSS) is an extremely popular product that improves effectiveness of organizations through content management and enterprise search, shared business processes, and information-sharing across boundaries for better business insight. And StorageEdge is an extremely fine product that enhance/improve SharePoint performance.
精彩评论