Sql server 数据迁移需要很长时间

Sql server 数据迁移需要很长时间,sql-server,database-migration,data-migration,ef-core-2.2,Sql Server,Database Migration,Data Migration,Ef Core 2.2,我已经为迁移数据编写了一个c#控制台应用程序; 记录的数量不多;每个表有近100条记录。但是数据结构和业务逻辑非常复杂,几乎有200个表。 我的数据迁移具有所有类型的操作:删除、更新、插入、获取。 删除和更新操作仅用于源数据库中的数据更正 现在我的迁移数据需要很长时间;差不多三天或更多! 一些改进措施: 1-首先在源数据库中设置“NOCHECK约束”;执行此操作时:删除、更新和插入。 2-然后从源数据库获取数据;设置一些索引。 3-插入数据时禁用目标数据库中的所有索引和约束 现


我已经为迁移数据编写了一个c#控制台应用程序;
记录的数量不多;每个表有近100条记录。但是数据结构和业务逻辑非常复杂,几乎有200个表。
我的数据迁移具有所有类型的操作:删除、更新、插入、获取。
删除和更新操作仅用于源数据库中的数据更正
现在我的迁移数据需要很长时间;差不多三天或更多!

一些改进措施:
1-首先在源数据库中设置“NOCHECK约束”;执行此操作时:删除、更新和插入。
2-然后从源数据库获取数据;设置一些索引。
3-插入数据时禁用目标数据库中的所有索引和约束

现在有谁能为改进持续时间提出解决方案吗

应该注意的是,在项目的这个阶段,我无法切换到另一个解决方案,例如SSIS。我必须改进这个控制台应用程序!。 使用EFCore 2.2,纯查询传输数据


非常感谢

通过将恢复模式从完全切换到简单,我获得了非常显著的性能改进。显然,有充分的理由充分利用;但是,根据您的迁移所做的更改,性能改进可能是数量级的


很抱歉提出来,但很难理解你想说什么(我想是因为英语不好)。也许可以运行一些语法检查来提高清晰度!您对EF迁移有何疑问?或者您正在使用自定义查询从一个数据库读取数据并写入另一个数据库?似乎是后者,那么在开始调优数据库实例之前,您可能需要查看SQL扩展事件,以识别写得不好的查询!没有什么比调整SQL更能提高性能了

您正在运行哪些sql语句?你是并行运行还是一个接一个地运行所有200台?@Wouter:一个接一个地运行。步骤相互依赖。而且不能并行运行或在多实例服务器上运行好的,如果逐个运行,应该很容易找到哪些查询花费了这么长的时间。@Wouter我知道哪一步比较慢。但不可避免。因为操作复杂。我寻找一个超越需求的解决方案。例如,将约束作为临时删除