【问题标题】:Improve speed Sharepoint request via meta-data通过元数据提高 Sharepoint 请求的速度
【发布时间】:2016-08-10 01:06:20
【问题描述】:

为了避免 XY 问题/混乱,我先说我的问题,然后说我想如何解决它:

目前我正在构建一个应用程序来检索 Sharepoint 文件。该应用程序的第一个版本正在检索 URL(我知道具有给定输入的 url)并下载流,这非常快! 不幸的是,要拥有多个版本的共享点文件,我们必须将文件名重命名为时间戳,并且程序必须搜索元数据。找到文件后,我知道 URL 和下载流。

到目前为止一切顺利,我有一个工作示例,我确实得到了一个流。但问题是它需要 44 秒才能完成。 问题出在:

clientContext.ExecuteQuery();

使用以下 CAML 查询:

<Query>
    <Where>
        <And>
            <And>
                <Eq>
                    <FieldRef Name='Shipment' />
                    <Value Type='Number'>766956</Value>
                </Eq>
                <Eq>
                    <FieldRef Name='Loadunit' />
                    <Value Type='Number'>389254</Value>
                </Eq>
            </And>
            <Eq>
                <FieldRef Name='Doc_type' />
                <Value Type='Text'>POD</Value>
            </Eq>
        </And>
    </Where>
</Query>

为了更好的可读性,我用制表符等格式化了这个查询块。正如我所提到的:查询有效,没有错误。

Sharepoint (2013) 库有 50 000 个项目(并且每天都在增加)。 列表“Shipment”和“LoadUnit”已编入索引。我在周末重新索引了整个内容,但没有运气。

我也遵循了一些提示,但其中许多已经完成或不需要:

我的最终解决方案是回到我的第一个想法,即在没有元数据部分且没有时间戳作为名称/URL 的情况下搜索 URL。但是将它与元数据一起使用会更好/更有条理。

PS:对于好奇的人:我在运输行业工作。我们必须为客户保存法律文件,因此我正在构建一个应用程序,它会自动将其提供给它要求的任何人。

【问题讨论】:

  • 我看到您使用的是客户端对象模型,但您知道您的 SharePoint 实例是在本地还是云托管?如果是本地部署,您将有一些可用的服务器端开发选项,可以加快速度。
  • 感谢您的回答。 Sharepoint 是本地的,但该程序将托管在另一台服务器上,由于许可证,我无法使用服务器端库。我正在尝试使用 REST-API 搜索元数据,并将根据我的发现保持此线程的最新状态..

标签: c# sharepoint sharepoint-2013 caml


【解决方案1】:

根据经验,您应该尽量减少从任何数据库/系统检索的数据量,尤其是当目标和源之间的延迟很高时。在 CAML 查询中,您可以通过在 SPQuery 对象的 ViewFields 属性中显式定义所需的字段列表来做到这一点。

您可以关注long list of best practices,以获得 SharePoint 中的高性能列表/库。但是,由于您处理的数据具有法律性质,我假设它是高度安全的,这可能是您遇到性能问题的根本原因。如果 SharePoint 列表中有大量唯一受保护的项目,则对该列表的任何操作都会对性能造成巨大影响。如果您的目标列表是这种情况,请重新设计它。首先尽可能将相关项目合并到文件夹中,并保护文件夹而不是单个文档。然后确保阅读上面链接的文章的行换行和查找字段部分。确实,如果您打算与 SharePoint 接触一段时间,请记住那篇文章中的每一条原则并以此为生……您将开始更加享受您的工作,您的心情会有所改善,总体而言您会变得更快乐人,我保证……

【讨论】:

  • 我已经热爱我的工作,我的心情很好,我已经对我的生活很满意,但无论如何还是谢谢.. 关于我正在检索的数据:这通常是 1 项,但是最多可以说大约 10 个项目/结果。除了大约 1MB(兆字节)的文件外,1 项的数据并不多。您必须登录才能获取我正确执行的文件。通过 URL 访问文件非常快,因此 Sharepoint 本身没有延迟。我现在尝试通过内置的 REST-api 获取文件。我会根据我的发现保持此线程的最新状态。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
  • 2019-04-25
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
相关资源
最近更新 更多