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