可以配置查找转换以高速缓存查找表。PowerCenter 将在处理高速缓存查找转换中的第一个数据行时在存储器中建立高速缓存。它将根据您在转换或会话特性中配置的数量来分配高速缓存区内存。PowerCenter 会将条件值存储在索引高速缓存区中,而将输出值存储到数据高速缓存区。PowerCenter 将查询进入转换的每行的高速缓存。
默认情况下,PowerCenter 还将在 $PMCacheDir 中创建高速缓存文件。如果数据在存储器高速缓存区中放不下,PowerCenter 会将溢出值存储在高速缓存文件中。会话完成后,PowerCenter 将释放高速缓存区内存并删除高速缓存文件,除非您将查找转换配置为使用永久性高速缓存。
如果使用平面文件查找,PowerCenter 将总是高速缓存查找源。如果为已排序输入配置平面文件查找,而未分组条件列,PowerCenter 将无法高速缓存查找。如果对列进行了分组,但尚未排序,PowerCenter 将按您没有配置排序输入的方式来处理查找。
配置查找高速缓存时,您可以指定以下任意选项:
- 永久高速缓存。可以保存查找高速缓存文件并在下次 PowerCenter 处理配置使用高速缓存的"查找"转换时重新使用。
- 从源重新高速缓存。如果永久高速缓存与查找表不同步,则可以配置"查找"转换以重建查找高速缓存。
- 静态高速缓存。可以为任意查找源配置静态或只读高速缓存。默认情况下,PowerCenter 创建静态高速缓存。它会为进入转换的行高速缓存查找文件或表并在高速缓存中查找值。条件为真时,PowerCenter 将从查找高速缓存返回值。PowerCenter 处理查找转换时不会更新高速缓存。
- 动态高速缓存。如果要高速缓存目标表并在高速缓存和目标中插入新行或更新现有行,则可创建"查找"转换以使用动态高速缓存。PowerCenter 在查找高速缓存中动态地插入或更新数据并传递数据至目标表。不能使用带有平面文件查找的高速缓存。
- 共享高速缓存。您可以在多个转换之间共享查找高速缓存。您可以在同一映射中的转换之间共享未命名高速缓存。您可以在相同或不同映射的转换之间共享已命名高速缓存。
没有为高速缓存配置查找转换时,PowerCenter 将为每个输入行查询查找表。无论您是否高速缓存了查找表,"查找"查询和处理的结果都相同。但是,使用查找高速缓存可以提高会话性能。源表较大时,可以通过高速缓存查找表来最优化性能。
高速缓存比较
不高速缓存 |
静态高速缓存 |
动态高速缓存 |
---|---|---|
您不能插入或更新高速缓存。 |
您不能插入或更新高速缓存。 |
传递行至目标时,可以在高速缓存中插入或更新行。 |
不能使用平面文件查找。 |
可以使用关系或平面文件查找。 |
只可以使用关系查找。 |
条件为真时,PowerCenter Server 将从查找表或高速缓存返回值。
条件不为真时,PowerCenter Server 将对已连接的转换返回默认值,而对未连接的转换返回 NULL。 |
条件为真时,PowerCenter Server 将从查找表或高速缓存返回值。
条件不为真时,PowerCenter Server 将对已连接的转换返回默认值,而对未连接的转换返回 NULL。 |
条件为真时,PowerCenter Server 将根据行的类型在高速缓存中更新行或保留高速缓存不更改。这表明行处于高速缓存和目标表中。可以向目标表传递已更新行。
条件不为真时,PowerCenter Server 将根据行的类型将行插入高速缓存或保留高速缓存不更改。这表明行不处于高速缓存或目标表中。可以向目标表传递已插入行。 |