首页 > 解决方案 > 在 SharePoint 中查询 4000 行列表非常慢

问题描述

我只想从 SiteUserInfoList 列表中获取项目列表。该列表包含大约 4000 行。

var watch = System.Diagnostics.Stopwatch.StartNew();

var qry = new SPQuery { Query = "<Where><Eq><FieldRef Name='ContentType'/><Value Type='Text'>MyValue</Value></Eq></Where>" };
var list = new List<Entity>();
using (var web = spSite.OpenWeb())
{
    var groups = web.SiteUserInfoList.GetItems(qry);
    foreach (SPListItem group in groups)
    {
       list.Add(new Entity
       {
          Id = group.ID,
          Guid = group.UniqueId,
          Title = group.Title
       });
    }
}

watch.Stop();
Console.Write(watch.ElapsedMilliseconds);

ElapsedMilliseconds 平均为 20 秒!怎么会这么长?!(服务器是一个 Xeon W-2145,为多个 VM 共享,但仍然 - CPU 使用率永远不会超过 20%)

我也试过:

任何想法?请帮助优化:) 谢谢。

标签: sharepointsharepoint-2010

解决方案


好的,我发现 ContentTypesEnabled 属性设置为 false。真的不知道这个属性的背后是什么,因为它没有很好的记录。而且我无法将其设置回false...

当我将其设置为 true 时,我现在不到2 秒


推荐阅读