I have a simple table in Oracle. The table has 1 million records, with an average record size of 200 bytes. Adding column definition sizes, a record shall not have over 750 bytes.
According to a simple calculation the data in the table is around 200 MB, and a reserved space of 750 MB. However the table is using 102 segments of 100 MB each, for a total size of near 10 GB, according to the following query:
select segment_name, segment_type, tablespace_name, bytes/1024/1024 as size_in_mb, bytes, extents
from user_segments
where segment_name in (select table_name from all_tables where owner=user);
So, I have two questions:
- How can I explain the oversize. The table has no indexes, or anything that should add content to the table. The table was filled from an Informatica ETL process using bulk mode.
- How can I get rid of oversize.
I do not have DBM privileges on the database.
Best Answer
The culprit was Informatica bulk mode insertion and the segment configuration in Oracle.
This is what I found out, by analyzing the problem with
dbms_rowid
:So, the possible solutions are: