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 SSIS从本地表中的值转移数据_Sql Server_Ssis - Fatal编程技术网

Sql server SSIS从本地表中的值转移数据

Sql server SSIS从本地表中的值转移数据,sql-server,ssis,Sql Server,Ssis,我将数据从两个独立的数据服务器转移到一个转移服务器上—一个服务器包含订单信息,第二个服务器包含该订单的发货信息。我正在查看过去5天内修改的所有订单。然后,我想加载这些修改订单的所有相关装运信息。因此,在这个场景中有3个服务器—订单服务器、发货服务器和暂存服务器 我试图根据分阶段订单的列表为每个集装箱做一个测试,但是在1000年的时候设置了一个结果,这是一个非常缓慢的解决方案 我无法更改订单或发货服务器,但我可以在临时服务器上执行任何需要的操作 我真正想做的是创建一个带有订单号列表的变量对象,然后

我将数据从两个独立的数据服务器转移到一个转移服务器上—一个服务器包含订单信息,第二个服务器包含该订单的发货信息。我正在查看过去5天内修改的所有订单。然后,我想加载这些修改订单的所有相关装运信息。因此,在这个场景中有3个服务器—订单服务器、发货服务器和暂存服务器

我试图根据分阶段订单的列表为每个集装箱做一个测试,但是在1000年的时候设置了一个结果,这是一个非常缓慢的解决方案

我无法更改订单或发货服务器,但我可以在临时服务器上执行任何需要的操作

我真正想做的是创建一个带有订单号列表的变量对象,然后在我的Shipping server select语句中使用如下过滤器:


从[shipping_table]中选择[shipping fields],其中[variable_list_of_order_nbr]中的order_nbr

如果您的配送信息索引良好,则可以非常快速地进行一次“无缓存”选择的查找转换


如果需要回退多行,这可能会比较棘手,但通过异步脚本转换可以创建占位符行号,然后使用修改后的Lookup SQL语句(带有row_NUMBER()字段)确保只回退所有需要的行和每行一次。

我不确定此解决方案的效率有多高,但我的SQL技能让我想起了: 注意:这需要更改订单服务和发货服务器获取逻辑

从源(Order serve)获取所有记录数据作为XML数据

DECLARE  @Product Table (
ID INT)

INSERT into @Product
select top 10 ROW_NUMBER() over(order by a.name)  as Rcount
from sys.all_objects a --used here for demo to generate series of numbers

--Return as XML
SELECT T.ID  
FROM @Product T
FOR XML path('')
然后将此xml数据作为输入参数传递给Shipping server。从XML参数获取连接输出的记录

DECLARE @XMlVal XML 

set @XMLVal = (SELECT T.ID  
FROM @Product T
FOR XML path('')
)

--Read from XML
SELECT 
prod.value('(.)[1]', 'int') AS 'ID'
FROM
@XMLVal.nodes('/ID') AS temp(prod)

任务的哪个部分比较慢?我的意思是,无论是订单服务器、发货服务器还是暂存服务器?在~2000份订单中逐一获取发货信息的过程都很慢。如何使用查找来检索信息?我只用它来过滤信息。我不想暂存所有装运数据,然后对其进行过滤-我更希望只暂存所需的装运数据。作为基本的1-1行匹配,您可以使用查找转换查找某个键,例如OrderID或您拥有的任何键。然后,您将从shipping表中提取此信息。你只会通过这个组件运行你感兴趣的订单,所以你只会收回这些订单的发货信息。对不起,我太密集了。如何根据我为订单准备的内容从发货表中选择2000行。我理解源查询的查找转换的方式需要扫描整个表,并且查找转换将过滤掉所需的内容。对的我会尝试一下……这是正确的,但是如果你没有“缓存”,你的查找查询将一次查找一条记录(而不是缓存整个表),如果你的传送表索引良好(即在查找键上),那么它将非常快。我认为它效率太低,但速度很快。非常感谢。