我有一个非常大的列表,其中包含超过 200 000 条记录,但是我通过提高查看阈值级别来获取记录。但是所有这些都使应用程序非常慢,所以我正在寻找从大列表中获取项目的高效和标准解决方案。
问问题
426 次
1 回答
0
您需要在 fecthes 中使用分页,并确保您是否正在过滤以在列中设置正确的索引
看看 MSDN 上的这篇文章:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.listitemcollectionposition.aspx
此代码段将以 10 个为一组迭代您的列表:
using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)
{
SPList oList = oWebsiteRoot.Lists["Announcements"];
SPQuery oQuery = new SPQuery();
oQuery.RowLimit = 10; oQuery.Query = "<OrderBy Override=\"TRUE\">" +
"<FieldRef Name=\"FileLeafRef\" /></OrderBy>";
int intIndex = 1;
do
{
Response.Write("<BR>Page: " + intIndex + "<BR>");
SPListItemCollection collListItems = oList.GetItems(oQuery);
foreach(SPListItem oListItem in collListItems)
{
Response.Write(SPEncode.HtmlEncode(oListItem["Title"]) +
"<BR>");
}
oQuery.ListItemCollectionPosition =
collListItems.ListItemCollectionPosition;
intIndex++;
} while(oQuery.ListItemCollectionPosition != null);
}
于 2013-07-15T14:45:18.810 回答