What optimizations has Oracle done to minimize compression overhead for OLTP applications?
Oracle compresses a block in batch mode rather than compressing data every single time a write operation takes place. When a transaction causes the data in the block to reach an internally controlled threshold, all contents of the block are compressed. Only the transactions that trigger compression of the block will experience the minimal compression overhead. Therefore, a majority of OLTP transactions on compressed blocks will have the exact same performance as they would with uncompressed blocks.