为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8
【操作系统】:centos7
【CPU】:
【问题描述】*:
[root@centos7 bin]# ./dexp SYSDBA/SYSDBA FILE=/home/dmdba/dmdbms/dexp/T01_TAB NOLOGFILE=Y tables=SYSDBA.T01_FUT_BFHF_BIGDATA00
dexp V8
----- [2024-08-05 03:40:28]导出表:T01_FUT_BFHF_BIGDATA00 -----
导出表对象权限...
表T01_FUT_BFHF_BIGDATA00导出结束,共导出 40000 行数据, 大小 78.960 MB
整个导出过程共花费 2.891 s
成功终止导出, 没有出现警告
进行导出后导出文件和这里的78.96MB大小基本一致,这个是如何计算得到呢?
table_used_space函数可以查询表大小
select table_used_space('owner','table_name')/1024.0/1024*page tab_mb
导出文件大小可以通过DBA_SEGMENTS进行查询出来。
个人认为这里显示的备份对象大小是所备份数据在dmp文件中存储的数据大小,是在导出过程中针对dmp文件大小变化进行的统计,与直接查询表中数据、LOB段等所占用表空间大小的结果是不一样的。
dmp文件中文件存储结构与数据文件中是不一样的,是把数据结构化存储到二进制文件里,不用考虑数据版本、更新等处理和控制,所以不用按簇-页结构存储,没有预分配页、页头等信息,数据能更紧凑。