Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将大型SQL Server表从一个数据库移动到另一个数据库的最佳方法?_Sql Server_Ssis_Etl - Fatal编程技术网

Sql server 将大型SQL Server表从一个数据库移动到另一个数据库的最佳方法?

Sql server 将大型SQL Server表从一个数据库移动到另一个数据库的最佳方法?,sql-server,ssis,etl,Sql Server,Ssis,Etl,在一个测试级数据库中,我有一个大约500万行、400列以上的表 我想在生产数据库中暂时保留此表的副本 我知道我可以使用任务和生成脚本,并且可以选择为模式项和数据编写脚本。这似乎需要很长时间 我可以使用Tasks和generatescript选项来复制表定义,并通过另一种方法处理数据拷贝 我可以使用插入。。。选择。。使用SQL server跨多台服务器 我可以添加测试数据库和服务器作为链接服务器 我可以用SSIS 我只是请求通用论坛提供一个最佳(或更好)方法的建议,即比生成脚本选项更快 我正在尝试

在一个测试级数据库中,我有一个大约500万行、400列以上的表

我想在生产数据库中暂时保留此表的副本

我知道我可以使用任务和生成脚本,并且可以选择为模式项和数据编写脚本。这似乎需要很长时间

我可以使用Tasks和generatescript选项来复制表定义,并通过另一种方法处理数据拷贝

我可以使用插入。。。选择。。使用SQL server跨多台服务器

我可以添加测试数据库和服务器作为链接服务器

我可以用SSIS

我只是请求通用论坛提供一个最佳(或更好)方法的建议,即比生成脚本选项更快

我正在尝试生成脚本选项,但整个下午都在运行


我希望有一种方法能在一两个小时内运行。

一个选项是右键单击数据库,然后选择任务->导出数据

但是,如果您了解SSIS,我认为这是最简单的方法,因为移动数据正是它的用途。您可以在那里增加批处理大小,以更适合您的数据量


至于需要多长时间,这取决于你的硬件。最大的瓶颈很可能是您的网络和磁盘。

如果您使用的是SQL server,我倾向于使用导入导出向导作为快速简便的方法。如果有问题,它将优雅地结束

1) 在目标数据库中创建表

2) 右键单击目标数据库,然后单击任务->导入数据

3) 出现提示时连接到源服务器,然后继续按照提示操作


希望对您有所帮助

在类似的情况下,我将使用SSIS,因为它可以让您更好地控制传输操作。为了获得更高的性能,可以使用许多技巧和技巧,例如以块的形式导入数据、配置缓冲区大小、使用大容量插入

我发布了许多与SSIS相关的答案,您可以参考这些答案以获取更多信息:


我会使用链接服务器并使用
插入到。。。选择带有一些分区的…
,例如每次100K行生产和测试数据库在同一台或单独的计算机上?您可能会发现这很有用:-使用bcp将表备份到文件,然后导入文件。这样,如果您可以物理访问数据,就不会出现网络瓶颈。生产数据库和测试数据库位于不同的计算机上。谢谢。。。一位同事也提到了这一点。。i、 创建表格并使用任务->导入。。。(我猜这与导出相同…取决于拉动或推动…)这至少给出了进度指示。。i、 e.看起来每秒要做500条记录或更好。。因此估计10000秒。。。等于166分钟。。。大约等于2.7小时。。。比其他脚本编写方法更好@是的,这是完全相同的过程,真的。我通常坚持从源代码系统开始,但我想这只是个人偏好。@AllanF,我预计500万行需要几分钟而不是几个小时。您是在源服务器还是目标服务器上运行它?否则,数据将流经客户机。确保目标表上没有非聚集索引-如果需要,请稍后创建。非常感谢SchmitzIT和Dan Guzman的评论和帮助。。我在自己的电脑上运行它。。。i、 我做了一件重要的事。。我有一个PK聚集索引,但没有非聚集索引。它成功地工作了。。我注意到生成的执行报告不包含任何日期戳信息。。。也许微软在2012年后的更新版本中改进了此执行报告,以包含日期时间戳?