代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

SharePoint2007:列表理论问题

  •  1
  • JL. Hans Passant  · 技术社区  · 15 年前

    我正在写一个关于moss 2007的解决方案。并在列表中存储大量数据。

    我的第一个问题是:列表能处理大量的数据——大约20万个项目。现在我已经读过了,列表的限制似乎在视图可以显示的项目数上(2000)。所以问题是:这是一个建议还是一个真正的限制?没有任何文件能证实这一点。

    第二个问题,如果视图可以显示多少项是物理限制,这是否意味着无法在包含大量数据的SharePoint列表中检查重复项?

    从这个意义上说,要执行wslist.getlistems,您必须传递一个视图(如果列表包含100000条记录,而视图只能包含2000条记录),如何检查重复项?

    谢谢

    3 回复  |  直到 15 年前
        1
  •  1
  •   axel_c    15 年前

    你可以有非常大的名单,但性能会很糟糕。

    我们在一个项目中有超过50000个项目的列表,我们找到了查询和处理内容的最佳方法 SPSiteDataQuery CrossListQueryCache 并在模糊、烦人的SharePoint中格式化查询 CAML 方言。

        2
  •  3
  •   Janis Veinbergs    15 年前

    巨大的列表性能

    你可能想读” Scaling to Extremely Large Lists and Performant Access Methods “和” Best Practices for LARGE SharePoint Lists and Documents Libraries “。

    另外,本文没有提到使用splist.items.add添加列表项,因为在大列表中,这是一个巨大的性能惩罚。你所做的是 build efficient query 它不返回任何项,然后将项添加到该集合中(我在其中读到WebServices在添加项时表现良好,但是我再也找不到该文章)。

    你也可以 see some tests (或 other tests )关于大名单的表现。

    对于副本

    您可能希望创建在夜间运行somwhere并检查重复项的计划作业(spjobdefinition)。

    比循环所有spListItem,然后查询每个项的列表以检查重复项更好的方法可能是获取一个数据表。( SPListItemCollection.GetDataTable() )对所有项目使用某种技术来确定重复项。

    至于观点

    筛选项目,以便查看相关项目并定义行限制。这是查看的关键-你只需要最相关的项目,不是吗?

        3
  •  1
  •   Daniel Revell    15 年前

    如果可能的话,将项目分解成文件夹之类的容器将有助于提高性能。如果列表项字段中有一个是某种类型的分类查找,那么可以用将项目放入该分类类型的文件夹来替换。