2

我有一个非常大的列表,其中包含超过 200 000 条记录,但是我通过提高查看阈值级别来获取记录。但是所有这些都使应用程序非常慢,所以我正在寻找从大列表中获取项目的高效和标准解决方案。

4

1 回答 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 回答