Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 并行加载临时表_Sql Server_Ssis_Business Intelligence - Fatal编程技术网

Sql server 并行加载临时表

Sql server 并行加载临时表,sql-server,ssis,business-intelligence,Sql Server,Ssis,Business Intelligence,我通过从远程服务器执行SQL Task select*将数据从一台SQL Server A加载到临时表,并在数据流中与另一台远程SQL Server B连接 所以我有两个数据流来源: 1.本地临时表,其中包含上一个任务中加载的SQL Server A的日期 2.远程SQL Server B上的表 为了实现这一点,我将RetainSameConnection连接管理器属性(我使用它将数据从SQLServerA拉到本地机器SSIS服务器)更改为TRUE。它可以工作,但我无法并行加载这些任务,因为我得

我通过从远程服务器执行SQL Task select*将数据从一台SQL Server A加载到临时表,并在数据流中与另一台远程SQL Server B连接

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

1.本地临时表,其中包含上一个任务中加载的SQL Server A的日期

2.远程SQL Server B上的表

为了实现这一点,我将RetainSameConnection连接管理器属性(我使用它将数据从SQLServerA拉到本地机器SSIS服务器)更改为TRUE。它可以工作,但我无法并行加载这些任务,因为我得到:

S[[209]]错误:SSIS错误代码DTS_E_OLEDBERROR。OLE DB错误 已经发生了。错误代码:0x80040E14。OLE DB记录可用。 来源:Microsoft SQL Server本机客户端11.0 Hresult:0x80040E14 说明:无法准备报表。。oledb记录 有空。来源:Microsoft SQL Server本机客户端11.0 Hresult:0x80040E14说明:对象名称无效 “V_DEL”

[SSIS.Pipeline]错误:S验证失败并返回验证 状态VS_被破坏了


如何解决此问题?

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

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

简单的解决方案:只需在一个序列容器中执行全局临时表创建任务,并在另一个序列容器中插入部分。它将很好地工作,我们可以并行运行2个任务

简单的解决方案:只需在一个序列容器中执行全局临时表创建任务,并在另一个序列容器中插入部分。它将很好地工作,我们可以并行运行2个任务

在一个序列容器中获取临时表创建部分,并在另一个序列容器中插入该部分,即使我们并行运行具有多个全局临时表的任务,它也会工作

在一个序列容器中获取临时表创建部分,并在另一个序列容器中插入该部分,即使我们并行运行具有多个全局临时表的任务,它也会工作

最好的解决方法是什么?将临时表更改为永久表,并在加载后将其删除?嗯,我没有意识到你在做什么。我认为你的问题是DFT中的延迟验证。这可能是错误的,以允许在验证DFT之前创建表。然后你就可以合并加入你的ServerB流和你的ServerA表了。什么是最好的解决办法?将临时表更改为永久表,并在加载后删除它们?嗯,我没有意识到你在做什么。我认为你的问题是DFT中的延迟验证。这可能是错误的,以允许在验证DFT之前创建表。然后,您将能够合并并加入ServerB流和ServerA中的表