Vytvořil jsem dvě tabulky.
První neni komprimovaná:
create table test_nocompress
as select * from sales
/
SQL>
Table created.
Elapsed: 00:00:29.61
Druhá je komprimovaná:
SQL> create table test_compress compress for all operations
as select * from sales where 1=0
/
Table created.
Elapsed: 00:00:00.24
Obě mají stejný počet řádků:
SQL> select count(*) from test_compress
/ 2
COUNT(*)
———-
918843
SQL> select count(*) from test_nocompress
/ 2
COUNT(*)
———-
918843
Rozdíl v obsazení místa je však viditelný i na takto malých tabulkách
SQL>select segment_name, sum(bytes)/1024/1024 mb
from dba_segments
where owner = user
and segment_name in (‘TEST_COMPRESS’,’TEST_NOCOMPRESS’)
group by segment_name
order by segment_name
/
SEGMENT_NAME MB
——————————————————————————— ———-
TEST_COMPRESS 15
TEST_NOCOMPRESS 36
2 rows selected.
Ačkoli bychom čekali závratné rozdíli v DML operacích, neni to pravda.
SQL> delete from test_nocompress
/ 2
918843 rows deleted.
Elapsed: 00:00:46.69
SQL> delete from test_compress
/ 2
918843 rows deleted.
Elapsed: 00:01:10.38