首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行非常慢的SharePoint库查询

运行非常慢的SharePoint库查询
EN

Stack Overflow用户
提问于 2012-03-09 17:41:04
回答 1查看 1.6K关注 0票数 2

我们在一个可能包含500个文档的库上运行了一个SharePoint查询,以提取标记为active的已发布文档的最高版本( Active列中有active=true )。

这花费的时间太长,无法运行(大约3-5秒),这让用户感到沮丧。

可以对下面的查询做些什么来加速它(我希望这几乎是即时的!)

代码语言:javascript
运行
复制
using (var site = new SPSite(Helpers.ConfigurationFile.SharePointUrl().ToString()))
{
    using (var web = site.RootWeb)
    {
        return
            web.Folders["Templates"].Files.OfType<SPFile>()
            .Where(file => file.Item.HasPublishedVersion)
            .Where(file => file.Item.Properties["Active"].ToString() == "true")
            .Where(file => file.Item.Versions.OfType<SPListItemVersion>()
                .Any(x => x.Level == SPFileLevel.Published))
            .Select(file => new LibraryItem(
                                      file.Item.UniqueId,
                                      file.Item.ID, 
                                      file.Item.Title, 
                                      Helpers.ConfigurationFile.SharePointUrl()
                                          .ToString().AddPathSegment(file.Url), 
                                      true, 
                                      float.Parse(file.MajorVersion.ToString() 
                                      + "." + file.MinorVersion.ToString())
                                      )

                    )
            .ToList();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2012-03-10 00:44:48

以下几点:

  • HasPublishedVersion和file.Item.Versions不是在做同样的事情吗--检查SPFile的发布版本是否存在?
  • SPListItemVersions上的任何查询都会按顺序搜索它们,从版本到Versionscount -1将转换为“最新版本到最旧版本”(因为版本是SP中的最新版本)。如果您认为您的文档在创建后发布的频率可能比最近更高,那么通过向后循环(从最老版本到最新版本)执行同样的检查可能会更快。
  • 您可以在活动列上索引。
  • 您可以通过使用CAML执行部分查询来优化它(我知道这很可怕)。我将尝试将SPFile获取和活动检查委托给一个CAML查询,然后使用对象模型执行其余的任务。请参阅此链接
  • 如果您确实使用了CAML,那么PortalSiteMapProvider.GetCachedListItemsByQuery()可能会更快地使用SPList.GetItems()。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9638565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档