我只想从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,它为多个虚拟机共享但仍然 - CPU使用率从未超过20%)
我也尝试过:
任何的想法?请帮忙优化:)谢谢。
好的我发现有ContentTypesEnabled属性被设置为false。不知道这个属性的背后是什么,因为它没有很好的记录。我不能把它归还为假......
当我把它设置为真时,我现在不到2秒!