从SharePoint 2010列表中获取大量(500000)记录时出现服务器超时问题

时间:2011-09-29 16:33:45

标签: sharepoint-2010

我在 SharePoint 2010 工作,我想从当前的spweb获取500000个“公告”列表项。我有服务器超时问题,代码如下。

SPList list = web.Lists["Announcements"];
SPQuery query= new SPQuery();
query.Query = "<Where><And><Geq><FieldRef Name=\"ID\" /><Value Type=\"Counter\"> 1</Value></Geq><Leq><FieldRef Name=\"ID\" /><Value Type=\"Counter\">500000 </Value></Leq></And></Where>";
query.RowLimit = 500000;
SPListItemCollection items = list.GetItems(query);
DataTable dt = items.GetDataTable(); //Here I get the timeout error.

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

SharePoint的最佳实践明确指出视图中不应包含大约2000行。

最佳实践还指出,以编程方式提取列表项应一次限制为大约10,000行。

这篇文章有助于为列表设置合理的限制:

http://sharepointsearch.com/cs/blogs/notorioustech/archive/2009/04/08/best-practices-for-large-sharepoint-lists-and-documents-libraries.aspx