问题描述
|
我最初发布此问题是为了缩小SharePoint应用程序的运行缓慢问题。接受StriplingWarrior的回答后,我开始逐步了解他的建议。简而言之,我在SharePoint 2010 Server上托管的“应用程序页面”中有一个RadGrid。当分页时,RadGrid运行得很好。但是,一旦应用了过滤器,例如:给我包含\'doe \'的姓(使用Telerik \的内置过滤器机制),结果最多需要15秒才能返回。使用相同的数据集(约30,000条记录)在我的开发环境中不会发生这种情况。
这里有几点注意事项:
我的LINQ to sql表达式生成的sql很好。我使用LINQPad对其进行了跟踪,并将其放入Management Studio。那里没有什么复杂的事情。
我创建了一个空的ASP.NET 3.5 Web窗体应用程序,并移植了一个有问题的RadGrid。我将Web应用程序放在生产服务器上,您不知道...它运行得很好。过滤时没有性能问题。
因此,通过执行上述操作,我可以排除以下情况:
数据库优化问题。
SharePoint应用程序和数据库服务器之间的网络问题。
LINQ to sql优化问题。
从较高的角度看这种情况,您能想到我需要在SharePoint应用程序服务器上进行的其他工作还是要解决此问题?我在web.config中关闭了调试功能。
同样,这是我的原始问题,其中包含代码。谢谢。
解决方法
我首先要确定花费的时间是15秒:
1.服务器端
2.客户端
您可以使用诸如Page Speed(http://code.google.com/intl/da-DK/speed/page-speed/)之类的浏览器插件来衡量页面的各个方面。如果在服务器端使用了15秒的大部分时间来呈现页面,则可以使用探查器工具或代码中的跟踪语句来缩小所花费的时间。
您的问题听起来有点像RadGrid处理过滤的问题。您说生成的SQL和数据库性能很好。过滤器表达式(例如doe)是否转换为SQL where子句?我怀疑网格从数据库中选择了所有记录,然后应用了过滤器。
伯恩
, SharePoint性能问题的发生主要是由于以下原因:
BLOB淹没了SQL Server
列表的数据库行程太多
如果使用以下几种智能技术,则可以大大提高SharePoint的性能:
外部化文件(BLOB)
缓存列表和BLOB
Microsoft Office SharePoint Server(MOSS)是一种非常受欢迎的产品,它通过内容管理和企业搜索,共享的业务流程以及跨边界的信息共享来提高组织的洞察力,从而提高了组织的洞察力。而且StorageEdge是一款非常出色的产品,可以增强/改善SharePoint性能。