并行加载临时表

时间:2016-09-30 09:22:03

标签: sql-server ssis business-intelligence

我通过执行SQL任务(从remote_server选择*到x)将数据从一个SQL Server A加载到临时表,并与数据流中的另一个远程SQL Server B连接。

所以我在数据流中有两个来源:

1.包含来自SQL Server A(在先前任务中加载)的日期的本地临时表

2.远程SQL Server B上的表。

为了实现它,我改变了#34; RetainSameConnection"连接管理器属性(我使用它将数据从SQL Server A提取到本地计算机(SSIS服务器)为TRUE。它可以工作,但我无法并行加载这些任务,因为我得到:

  

S [[209]]错误:SSIS错误代码DTS_E_OLEDBERROR。 OLE DB错误   已经发生了。错误代码:0x80040E14。 OLE DB记录可用。   来源:" Microsoft SQL Server Native Client 11.0" Hresult:0x80040E14   说明:"声明无法准备。"。 OLE DB记录   是可用的。来源:" Microsoft SQL Server Native Client 11.0"   Hresult:0x80040E14描述:"无效的对象名称   ' ## V_DEL'"

     

[SSIS.Pipeline]错误:" S"验证失败并返回验证   状态" VS_ISBROKEN"。

如何解决?

3 个答案:

答案 0 :(得分:2)

如果您使用的是RetainConnection = True,那么一次只能有一个对象可以保留连接。这意味着如果2个sql任务并行运行,那么只有1个将使用保留的连接。类似于您无法查找和具有相同保留连接的dest的问题。 唯一的解决方法是序列化SQL调用。

答案 1 :(得分:0)

简单的解决方案:只需将全局临时表创建任务放在一个序列容器中,然后将零件插入另一个序列容器中。它将正常工作,我们可以并行运行2个任务。

答案 2 :(得分:0)

将临时表创建部分放在一个序列容器中,然后将其插入另一个序列容器中,即使我们并行运行具有多个Global临时表的任务,它也将起作用。

相关问题