从SQL Server将数据导入SharePoint 2010

从SQL Server将数据导入SharePoint 2010,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我正在创建PowerShell脚本,以将数据从SQL Server数据库迁移到SharePoint 2010列表中。我必须从数据库中读取500000多条记录,对其执行一些操作,然后将其导入各种SharePoint列表。我可以做到这一点,但本质上,我正在寻找最快的方式将这一数量的数据导入SharePoint 我曾尝试使用SharePoint API直接添加和更新列表项,但我让它运行了一整晚,在早上还没有完成 我还尝试使用lists.asmx web服务为每个项目上传预生成的XML,但是这种方法似乎

我正在创建PowerShell脚本,以将数据从SQL Server数据库迁移到SharePoint 2010列表中。我必须从数据库中读取500000多条记录,对其执行一些操作,然后将其导入各种SharePoint列表。我可以做到这一点,但本质上,我正在寻找最快的方式将这一数量的数据导入SharePoint

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

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

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

添加



当数据库中的项目被操纵以插入SharePoint列表时,将导致771900个单独的列表项目被插入。

禁用列表上的工作流可以极大地提高性能。新的导入估计时间从最初的29小时减少到7小时多一点。

禁用列表上的工作流可以极大地提高性能。新的导入估计时间从最初的29小时减少到7小时多一点。

您是否检查了每分钟处理多少记录?SharePoint没有内置的批量加载功能,它的数据库结构在性能方面非常糟糕,而且您已经从许多不同的角度解决了这个问题,因此我认为您需要花费大量时间才能获得显著的收益。如果你知道这个过程的当前速度,你可以估计它需要多少时间,并决定是否值得优化它。不幸的是,我没有很多时间来做这件事。根据到目前为止所用的平均时间,每分钟插入sharepoint的项目数为432个。我已经推断出这一点来计算29-30小时的总运行时间(!!!!!!!)。源数据库和SP在不同的机器上,但此时我不再与源进行交互-只是上传已经从本地机器生成的XML(所有XML文件都<200kb)。SharePoint计算机当前使用了90%以上的CPU和80%左右的RAM。您需要导入数据,还是只将数据显示为SharePoint中的列表?w3wp.exe和sqlserver.exe是罪魁祸首。找到了一种提高速度的方法-关闭列表上的工作流!将导入批次的时间缩短了大约10倍!你检查过每分钟处理多少条记录了吗?SharePoint没有内置的批量加载功能,它的数据库结构在性能方面非常糟糕,而且您已经从许多不同的角度解决了这个问题,因此我认为您需要花费大量时间才能获得显著的收益。如果你知道这个过程的当前速度,你可以估计它需要多少时间,并决定是否值得优化它。不幸的是,我没有很多时间来做这件事。根据到目前为止所用的平均时间,每分钟插入sharepoint的项目数为432个。我已经推断出这一点来计算29-30小时的总运行时间(!!!!!!!)。源数据库和SP在不同的机器上,但此时我不再与源进行交互-只是上传已经从本地机器生成的XML(所有XML文件都<200kb)。SharePoint计算机当前使用了90%以上的CPU和80%左右的RAM。您需要导入数据,还是只将数据显示为SharePoint中的列表?w3wp.exe和sqlserver.exe是罪魁祸首。找到了一种提高速度的方法-关闭列表上的工作流!将导入批次的时间缩短了大约10倍!此工作流是否配置为在创建新项目时启动,或者仅将工作流与列表关联就足以产生性能问题?它们配置为在创建新项目时启动。因此,上传的每个XML文件都创建了150个条目,从而使每个条目都运行工作流。在正常运行期间,工作流不会导致任何明显的性能问题;在服务器上再次运行该进程时,花了3个多小时。我对7小时的估计有点不准确,因此我认为我们可以假设29小时的估计也超过了实际时间。是否将此工作流配置为在创建新项目时启动,还是仅将工作流与列表关联即可创建性能问题?它们配置为在创建新项目时启动创建。因此,上传的每个XML文件都创建了150个条目,从而使每个条目都运行工作流。在正常运行期间,工作流不会导致任何明显的性能问题;在服务器上再次运行该进程时,花了3个多小时。我对7小时的估计有点不准确,所以我认为我们可以假设29小时的估计也超过了实际时间。