小编elt*_*123的帖子

高效传输大量(8400 万行)数据

我有大约 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

或者是其他东西?

谢谢

sql-server

12
推荐指数
1
解决办法
5万
查看次数

SSIS 脚本任务似乎运行,但实际上没有

我有一个看起来运行良好的脚本任务,但无论我在里面放什么都没有被执行。我尝试了各种方法:通过内置的 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 上,测试任务按预期失败并转到失败任务。但是一旦部署它就停止工作。

VS 上的包执行

SQL 上的包执行

sql-server ssis

5
推荐指数
1
解决办法
2186
查看次数

标签 统计

sql-server ×2

ssis ×1