将表从 Dev DB 复制到 QA DB

Posted

技术标签:

【中文标题】将表从 Dev DB 复制到 QA DB【英文标题】:Copy table from Dev DB to QA DB 【发布时间】:2021-09-16 11:55:55 【问题描述】:

我正在尝试使用导入/导出向导将表从开发数据库复制到 SQL Server 中的 QA 数据库。大约有 660 万行,大约需要 7 个小时才能完成。有没有更快的方法来完成任务?

下面是我正在使用的代码:

SELECT  * 
FROM    [Table_Name] WITH (NOLOCK)
WHERE   [ColumnDate] > 2018  
OR      [Code] in ('A', 'B', 'C','D') 

谢谢。

【问题讨论】:

导入/导出向导将记录写入文件对吗?您是否尝试通过链接服务器使用insert into select 命令复制记录?看看这里mssqltips.com/sqlservertip/6009/… 冒着听起来迂腐的风险,这不是表格副本,它是查询结果的副本,与直接的表格副本完全不同。如果您只是在查询窗口中自行运行,查询是否运行良好?如果它自己运行需要 7 个小时,那么更快地复制到另一个实例并不是您需要立即集中精力的地方 - 您需要调整查询。在不知道其他任何事情的情况下,想到了ColumnDateCode 上的索引。 【参考方案1】:

您可以使用数据生成表的脚本,然后使用它在目标数据库中创建表。这是最快的方法之一。您还可以使用 powershell 脚本来自动化它。由于您的数据太大且 SSMS 很慢,您面临时间问题。

让我解释一下,当您尝试使用导入/导出属性时,它基本上会花费更多时间,因为它会尝试创建架构然后一一插入数据。这就像创建一个表并按顺序执行每一行的插入。 为了避免这种情况,您可以简单地生成带有数据的表脚本。获得脚本后,您可以执行插入。由于您从本地执行批量插入,它将避免顺序插入,并将成倍地减少插入时间。 作为参考,您可以通过链接获取分步指南。

https://www.sqlshack.com/six-different-methods-to-copy-tables-between-databases-in-sql-server/

【讨论】:

仅链接的答案是无用的。你能详细说明一下吗? 我已经更新了。

以上是关于将表从 Dev DB 复制到 QA DB的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 phpMyAdmin 将表从 SERVER 1 上的数据库复制到 SERVER 2 上的另一个数据库?

text 将表从一个模式复制到另一个模式

将表从 SQL Server 2008 复制到 MS Access 2007

使用kafka将表从Oracle复制到Postgresql不起作用

如何将表从一个mysql数据库复制到另一个mysql数据库

将表从一个数据库复制到另一个数据库