首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SSIS中,我们可以缓存(一些如何在内存中保留数据)表吗?

在SSIS中,我们可以缓存(一些如何在内存中保留数据)表吗?
EN

Stack Overflow用户
提问于 2012-08-16 20:22:14
回答 2查看 6.9K关注 0票数 1

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

EN

回答 2

Stack Overflow用户

发布于 2012-08-16 22:13:58

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

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

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

像往常一样,测试并找出最适合你的。

票数 5
EN

Stack Overflow用户

发布于 2012-08-16 20:53:38

如果您需要缓存数据,那么您可以将其存储在flat fileraw file中,或者存储在在SSIS中创建的temporary table中。从平面文件中获取.Accessing数据将始终比从RDBMS.Your数据库中访问数据更快,如果多次访问,则可能会占用相当多的资源。

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

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11987022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档