0

我有一个 SSIS2008 包,它以增量方式加载具有 10M 记录的表 Clients 和具有 6M 记录的表 ClientRelations。客户关系是两个客户之间的关系。

在 RelatedClientsETL 数据流中,我从平面文件源获取关系,并在同一个 Clients 表上进行 2 次查找。

在这里使用缓存连接管理器会更好,还是应该在两个查找中都使用部分缓存查找选项?还是您建议另一种选择?

执行此包的生产 SQL Server 的内存 = 8GB

4

1 回答 1

1

通常最好Full Cache mode在查找中使用,因为这会减少database load,从而减少hits数据库上的数量。由于您有足够的内存来保存数据,我建议您应该使用完整缓存。SSIS 使用一个buffer-oriented architecture来有效地加载和操作数据集因此,在memory这种模式下查找往往更快。

Partial cache mode通常避免使用,也不是更好的选择。仅在要处理的行数较少的情况下才有用。仅在找到匹配项时才缓存数据。没有像这种情况那样执行预执行缓存Full Cache所以加载时间很快,但对数据库的点击次数更多。

CCM( Cache Connection Manager) 当您想重新使用缓存来减少时使用(),database load但是您需要再次通过使用OleDB connection vs CCM in lookup 自己测试它。

有一个免费的工具bidshelper将帮助您监控单个任务的性能,否则尝试隔离您的目标和除查找和源之外的其他组件。用 RowCount 转换替换目标,并通过检查(时间、行数)的执行结果选项卡来衡量性能Full CacheCCM

有一份白皮书很好地解释了 SSIS 的整体性能

于 2013-01-23T11:27:53.517 回答