如何查看Informatica Powercenter工作流运行时的实际占用空间?
Informatica PowerCenter 工作流空间占用问题解答
Monitor中Bytes值的本质
Monitor里的Bytes列确实不代表实际磁盘占用空间,它是Informatica基于列定义的最大长度计算出的读写传输字节数估算值——就像你遇到的情况,哪怕实际存储的内容长度没变,只要把VARCHAR2(100)改成VARCHAR2(4000),这个数值就会因为列的最大精度被拉高,所以才会出现23GB这种和实际数据量(300MB)差距极大的结果。
查看实际占用空间的方法
1. 目标端Oracle表的实际磁盘占用
直接在目标Oracle数据库执行以下SQL查询,获取真实的表占用空间:
-- 查看表及关联段(含索引、分区等)的总占用 SELECT segment_name, segment_type, ROUND(bytes/1024/1024, 2) AS size_mb FROM user_segments WHERE segment_name = '目标表名' ORDER BY size_mb DESC; -- 仅查看表数据的占用(不含索引) SELECT table_name, num_rows, ROUND(blocks*8/1024, 2) AS size_mb FROM user_tables WHERE table_name = '目标表名';
注意替换语句中的目标表名为实际表名称,Oracle默认对象名为大写,需保持一致。
2. ETL执行过程中的临时空间占用
- Informatica服务器临时空间:查看
$PMTempDir配置的临时目录实时占用,Linux用df -h、du -sh 临时目录路径命令,Windows直接在资源管理器查看或用dir命令。 - Oracle临时表空间占用:执行以下SQL查看源/目标库临时空间使用情况:
SELECT tablespace_name, ROUND(used_space/1024/1024, 2) AS used_mb, ROUND(free_space/1024/1024, 2) AS free_mb FROM dba_temp_free_space WHERE tablespace_name = '临时表空间名';
3. Session日志中的真实传输字节数
在Session的详细日志里,查找类似以下的统计行,这里的Bytes值是基于实际传输数据长度统计的真实值:
Rows read: 1900000, Bytes read: 314572800
Rows written: 1900000, Bytes written: 314572800
内容的提问来源于stack exchange,提问作者tuzzo
相关产品推荐
相关产品推荐

