我最初发布this question to narrow down the slowness issues with my SharePoint application . 在接受StriplingWarrior's回答后,我开始逐步完成他的建议 . 简而言之,我在SharePoint 2010 Server上托管的应用程序页面中有一个RadGrid . RadGrid在寻呼时运行完美;但是,一旦应用了过滤器,ex:给我包含'doe'的姓氏(使用Telerik的内置过滤机制),结果需要15秒才能返回 . 在我的开发环境中,使用相同的数据集(大约30,000条记录)不会发生这种情况 .
这里有几点说明:
-
我的LINQ to SQL表达式生成的SQL很好 . 我用LINQPad跟踪它们并将它们放入Management Studio . 那里没有什么复杂的事情发生 .
-
我创建了一个空的ASP.NET 3.5 Web窗体应用程序并移植了一个有问题的RadGrids . 我将Web应用程序放在 生产环境 服务器上,你不知道......它运行得很好 . 过滤时没有性能问题 .
所以通过前面提到的,我能够排除以下内容:
-
数据库优化问题 .
-
SharePoint应用程序和数据库服务器之间的网络问题 .
-
LINQ to SQL优化问题 .
从高级别来看这个案例,您能想到我需要在SharePoint应用程序服务器上执行的任何操作或以其他方式解决此问题吗?我在web.config中关闭了调试 .
再次,here is my original question that contains the code . 谢谢 .
2 回答
我将从 Build 起15秒开始:1 . 服务器端2.客户端
您可以使用Page Speed(http://code.google.com/intl/da-DK/speed/page-speed/)等浏览器插件来衡量网页的各个方面 . 如果15秒的主要部分用于服务器端以呈现页面,则可以缩小使用分析器工具或在代码中跟踪语句所花费的时间 .
您的问题听起来有点像RadGrid处理过滤的问题 . 你说生成的SQL和数据库性能很好 . 过滤器表达式(例如doe)是否会转换为SQL where子句?我怀疑Grid会从DB中选择所有记录而不是应用过滤器 .
Kr,Bernd .
出现SharePoint性能问题主要是由于以下原因:
BLOB压倒SQL Server
列表的数据库跳闸太多
如果您使用以下几种智能技术,则可以显着提高SharePoint性能:
外部化文档(BLOB)
缓存列表和BLOB
Microsoft Office SharePoint Server(MOSS)是一种非常受欢迎的产品,可通过内容管理和企业搜索,共享业务流程以及跨边界信息共享来提高组织的效率,从而获得更好的业务洞察力 . StorageEdge是一款非常优秀的产品,可以增强/改善SharePoint性能 .