我有大约 8400 万行。其中所有这些都需要转移到同一服务器上的单独数据库中,然后我删除以从源数据库中删除大约 6000 万行。
8400 万行都在同一个表中。仅该表就占了整个数据库的 90%。
所以... 来源:8400 万行 -> 2400 万行目标:0 行 -> 8400 万行
源正在运行完全恢复模式,目标将运行简单。
我想知道最有效的方法是什么?
方案一:
1) 插入目标 SELECT * FROM 源
2) 截断来源
3) INSERT INTO source SELECT * FROM destination WHERE keep_condition = 1
方案B:
1) 将源数据库的备份恢复为目标数据库
2) 删除除目标数据库上需要的表之外的所有表
3) 截断来源
4) INSERT INTO source SELECT * FROM destination WHERE keep_condition = 1
计划C:
1) 插入目标 SELECT * FROM 源
2) DELETE source WHERE keep_condition = 0
或者是其他东西?
谢谢
我有一个看起来运行良好的脚本任务,但无论我在里面放什么都没有被执行。我尝试了各种方法:通过内置的 SSIS 日志记录机制进行日志记录,通过附加变量和 SQL 命令任务进行日志记录,但我永远无法弄清楚出了什么问题。我试图放置断点,它在调试过程中不会中断。
这是带有 SQL 2016 的 VS 2015。此问题仅在部署在其中一个 SQL Server上时发生。我以前在该服务器上完全没有问题。我在不同的 SQL 框(相同的配置)上部署了相同的包,它按预期运行。
编辑:为了更好地澄清问题,我启动了一个新的 SSIS 包,其中只有 3 个脚本任务:
测试任务:
public void Main()
{
// TODO: Add your code here
Dts.TaskResult = (int)ScriptResults.Failure;
}
Run Code Online (Sandbox Code Playgroud)
测试任务完成后,如果测试成功,则将其链接到“成功任务”,如果失败则链接到“失败任务”。
在 VS 上,测试任务按预期失败并转到失败任务。但是一旦部署它就停止工作。