在SSIS中我们可以缓存(一些如何保持内存中的数据)表?

时间:2012-08-16 12:22:14

标签: caching ssis

我有大量现有的SSIS批次。现在Sybase数据库中的某些表在不同阶段被ssis包多次访问(4-5)。在每次访问中都有不同的连接或某些过滤条件。现在我意识到每次表都是访问2活动发生(1.tables的数据页需要读取,2。数据需要通过SSIS服务器上的网络。)现在我想知道我是否可以刚刚带来整个表数据(所有记录)到SSIS服务器,然后所有后续访问表都在SSIS服务器上进行。现在问题是这些表数据可以存储在SSIS服务器上,如果我可以将表数据缓存在内存(在RAM中)中,那么就不会像硬盘一样。我对SSIS的SSIS效率不高,所以寻求帮助“有没有办法在SSIS中实现这个?”

2 个答案:

答案 0 :(得分:4)

您没有指定正在使用的SSIS版本,但除了Praveen建议的原始文件(+1)之外,如果您使用的是2008年当前版本,还可以查看Cache Connection Manager。 CCM提供内存存储,或者您可以指定将内容写入文件以平衡内存压力。

在平衡原始文件与缓存连接管理器的选择时,您需要了解您的使用情况。原始或平面文件可以是数据流源,CCM不能。相反,CCM可以是查找转换的源,而文件连接不能

在使用文件存储机制的权衡中要记住的一件事是丢失索引。假设您的查询按州划分客户。检索“Andhra Pradesh中的所有活跃客户”的数据库将比读取整个文件以查找符合该条件的记录更有效。当奥里萨邦的客户请求发生变化时,可能会使用相同的索引,但必须从头到尾重新处理文件存储,查找满足条件的记录。索引效率的提高可能足以克服网络和读取在源系统上保存数据的成本。

与往常一样,测试并找到最适合您的方法。

答案 1 :(得分:3)

如果您需要缓存数据,则可以将其存储在SSIS中创建的flat fileraw filetemporary table中。来自平面文件的访问数据将始终为比从RDBMS访问它更快。如果多次访问,您的数据库可能会非常繁重。

与平面文件相比,原始文件在读取或写入数据时可以非常快。This文章解释了两者之间的性能。

我的建议是,如果您的临时数据未被SSIS以外的任何其他工具使用,那么您可以使用raw files

解释在SSIS中使用临时表的article,可以在具有相同连接的多个数据流任务中使用(RetainSameConnection属性= True)