如何在sharepoint 2010的大列表(超过20万个项目)中避免阈值错误



我有一个包含20多万条记录的非常大的列表,但我通过增加视图阈值级别来获取记录。但所有这些都使应用程序非常缓慢,所以我正在寻找从大列表中提取项目的高效且标准的解决方案。

您需要在feches中使用分页,并确保您是否正在筛选以在列中设置正确的索引

看看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);
}

最新更新