首页 > 数据库 > Oracle > 11g_Table_Compression
create table my_compressed_table (
col1 number(20),
col2 varchar2(300),
...)compress for all operations
在11g中,当数据插入/修改的时候,oracle会象正常表一样存储,只有当块中的重复值达到oracle自己定义的阀值时,压缩动作才会被触发,重复的值被存到Symbol Table中,然后每行中只存储相应值的标记(symbol)。取数据的时候,根据标记从Symbol Table中返回真实值。
压缩和解压缩难免会消耗掉大量cpu,但是因为压缩动作的滞后性,对DML的性能影响并不大。据此oracle说这种压缩表也可以用在OLTP系统中。个人觉得OLTP上的效果还有待事实检验,但是压缩存储空间后,对网络传输数据、备份等方面的好处是不言而喻的。
块压缩前后示意图:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/207/viewspace-1027310/ ,如需转载,请注明出处,否则将追究法律责任。