Thursday, April 02, 2009

Oracle Net does simple compression

I am supporting "DR Test" tonight. I have completed my DBA steps and is watching application guys to test their steps. At this moment, I am asking myself this question: what have I learned about Oracle today? Well, I would like to paste the following example from Oracle-L in which Tanel Poder demonstrated that Oracle Net does simple compression:


-----Original Message-----
From: Tanel Poder [mailto:tanel@poderc.com]
Sent: Thursday, April 02, 2009 3:25 PM
To: Herring Dave - dherri; oracle-l@freelists.org
Subject: RE: Less bytes when transferring table

Yep, Oracle Net does simple compression - when there are lots of rows with same consecutive column values sent over sqlnet then Oracle can send the column only once plus a count. Anjo Kolk wrote about it in his old blog but I couldn't find his article anymore.

Check the simple example (look into difference in bytes sent via SQL*Net even though the result data is the same):

SQL> select owner from dba_source order by dbms_random.random;

299151 rows selected.


Statistics
----------------------------------------------------------
8 recursive calls
0 db block gets
1994 consistent gets
0 physical reads
0 redo size
2782131 bytes sent via SQL*Net to client
6959 bytes received via SQL*Net from client
600 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
299151 rows processed

SQL>
SQL> select owner from dba_source order by owner;

299151 rows selected.


Statistics
----------------------------------------------------------
8 recursive calls
0 db block gets
1994 consistent gets
0 physical reads
0 redo size
1572261 bytes sent via SQL*Net to client
6959 bytes received via SQL*Net from client
600 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
299151 rows processed

SQL>

ordered data causes less bytes to be transferred thanks to the simple compression.

so you can "tune" dblink bulk tranfer over crappy WAN links by ordering data somewhat. its not something I'd like to rely on though


No comments: