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



Komentáře