【问题标题】:Importing Data into SharePoint 2010 from SQL Server将数据从 SQL Server 导入 SharePoint 2010
【发布时间】:2011-11-20 02:32:13
【问题描述】:

我正在创建一个 PowerShell 脚本以将数据从 SQL Server 数据库迁移到 SharePoint 2010 列表中。我必须从数据库中读取 500,000 多条记录,对其执行一些操作,然后将其导入到各种 SharePoint 列表中。我可以让它工作,但基本上我正在寻找将这么多数据导入 SharePoint 的最快方法。

我曾尝试使用 SharePoint API 直接添加和更新列表项,但我让它运行了一夜,早上还没有完成。

我也尝试过使用 lists.asmx Web 服务为每个项目上传预先生成的 XML,但是这种方法似乎也不是特别快。用于此的 XML 被分解成批次以避免 Web 服务请求超时。我尝试使用异步 Web 服务请求上传批次,但这基本上杀死了 SharePoint 网站,所以现在我只使用同步请求,这也很慢。

对于如何从 SQL Server 读取、转换数据并将其添加到 SharePoint 列表有任何建议吗?

加法

当对数据库中的项目进行操作以将其插入 SharePoint 列表时,将插入 771,900 个单独的列表项目。

【问题讨论】:

  • 您是否检查了每分钟处理了多少条记录? SharePoint 没有内置的批量加载功能,它的数据库结构在性能方面很糟糕,而且您已经从许多不同的角度解决了这个问题,所以我认为您需要花费大量时间才能获得任何显着收益。如果您知道流程的当前速度,您可以估计需要多少时间并决定是否值得对其进行优化。
  • 不幸的是,我没有太多时间来做这件事。根据到目前为止的平均时间,每分钟插入 sharepoint 的项目是 432。我已经推断出这个来计算 29-30 小时的总运行时间(!!!!!!)。
  • 源数据库和 SP 在不同的机器上,但此时我不再与源交互 - 只是上传已经从我的本地机器生成的 XML(所有 XML 文件都是
  • 您需要导入数据,还是只在sharepoint中将数据显示为列表?
  • w3wp.exe 和 sqlserver.exe 是罪魁祸首。想出了一种提高速度的方法 - 关闭列表中的工作流程!将导入批次的时间减少了大约 10 倍!

标签: sharepoint sharepoint-2010


【解决方案1】:

禁用列表上的工作流可以大大提高性能。新的预计导入时间从原先预计的 29 小时缩短至 7 多小时。

【讨论】:

  • 此工作流是否配置为在创建新项目时启动仅将工作流与列表关联就足以产生性能问题?
  • 它们被配置为在创建新项目时启动。因此,每个上传的 XML 文件都会创建 150 个项目,从而导致工作流为每个项目运行。在正常操作期间,工作流不会导致任何明显的性能问题。
  • 只是一个注释;当该过程再次针对服务器运行时,它花了 3 个多小时。我估计的 7 小时有点过时,所以我认为我们可以假设 29 小时的估计也超过了实际时间。
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2015-08-26
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多