Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 2005 在SQL Server表之间高效地移动大型数据集?_Sql Server 2005 - Fatal编程技术网

Sql server 2005 在SQL Server表之间高效地移动大型数据集?

Sql server 2005 在SQL Server表之间高效地移动大型数据集?,sql-server-2005,Sql Server 2005,我在SQL Server中有一个相当大(很多GB)的数据表,我希望将其移动到同一服务器上另一个数据库中的表中 这些表的布局相同 做这件事最有效的方法是什么 这是一次性操作,因此不需要自动化 非常感谢。如果是一次性操作,为什么要如此关注最高效率 SELECT * INTO OtherDatabase..NewTable FROM ThisDatabase..OldTable 或 …让它在晚上运行。我敢说,在同一台服务器上使用SELECT/INSERT INTO离您能获得的最佳效率不远。或者您可以

我在SQL Server中有一个相当大(很多GB)的数据表,我希望将其移动到同一服务器上另一个数据库中的表中

这些表的布局相同

做这件事最有效的方法是什么

这是一次性操作,因此不需要自动化


非常感谢。

如果是一次性操作,为什么要如此关注最高效率

SELECT * INTO OtherDatabase..NewTable FROM ThisDatabase..OldTable


…让它在晚上运行。我敢说,在同一台服务器上使用SELECT/INSERT INTO离您能获得的最佳效率不远。

或者您可以使用Microsoft SQL server Management Studio中“管理”下的“SQL导入和导出向导”。

我同意Tomalak的回答


在执行“选择到”以停止日志文件爆炸之前,您可能希望暂时将目标数据库置于大容量日志恢复模式…

如果是SQL Server 7或2000,请查看数据转换服务(DTS)。对于SQL 2005和2008,请查看SQL Server Integration Services(SSI)

一定要将目标数据库置于批量记录模式。这将最低限度地记录操作并加快速度。

您的观点是正确的。我想我只是太习惯了用“正确的方式”做事。查询正在以我键入的方式运行!考虑大容量插入而不是插入。如果我想将数据从一个数据库移动到不同服务器上的另一个数据库,请参见@Adi查找“链接服务器”。该方法的其余部分是相同的,这样做会导致事务日志增长。如果服务器超过磁盘空间,可能会使其崩溃。因为它是一个巨大的事务,你不能仅仅在中间W/O中阻止一个大的事务回滚。对于大桌子来说,这不是一个好办法。
INSERT OtherDatabase..NewTable
SELECT * FROM ThisDatabase..OldTable