【COMPRESS】11g中表壓縮技術的長足進步
曾經在《【表壓縮】使用表壓縮技術將表所佔用空間降低到最小》(http://space.itpub.net/519536/viewspace-621766)這篇文章中談到了10g中有關表壓縮的一些知識。此文將給大家介紹一下11g在表壓縮領域的長足發展。
Oracle在11g之前版本中的壓縮技術應用場景非常的有限,多用於只讀的資料庫倉庫中,要求表中的資料是隻讀的。因此在OLTP的環境中很少見到資料壓縮技術的身影。
11g推出的資料壓縮技術已經打破了這個束縛,Oracle透過只儲存在儲存壓縮後設資料的特定表(符號表,symbol table)中有重複的列值的單個副本,消除了塊中所有重複的值。得益於此項技術,訪問壓縮資料時的I/O也大大減少,進而,壓縮技術延展到了OLTP領域。
透過實驗,簡單窺探一下此技術的使用方法。
1.確認作業系統版本
sys@secooler> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
2.建立大約128M的測試用普通表T
sec@secooler> create table t as select * from all_objects;
Table created.
sec@secooler> insert into t select * from t;
71327 rows created.
sec@secooler> /
142654 rows created.
sec@secooler> /
285308 rows created.
sec@secooler> commit;
Commit complete.
sec@secooler> insert into t select * from t;
570616 rows created.
sec@secooler> commit;
Commit complete.
sec@secooler> select segment_name,bytes/1024/1024 MB from user_segments;
SEGMENT_NAME MB
------------------------------ ----------
T 128
3.使用“compress for all operations”選項建立壓縮表
sec@secooler> create table T_COM_FOR_ALL_OPERATIONS compress for all operations as select * from T;
Table created.
4.普通表與壓縮表佔用空間大小比較
sec@secooler> select segment_name,bytes/1024/1024 MB from user_segments;
SEGMENT_NAME MB
------------------------------ ----------
T 128
T_COM_FOR_ALL_OPERATIONS 44
可見,幾乎節省了2/3的儲存空間,現在的大小(44M)是原先大小(128M)的1/3!
的確是一個非常大的壓縮比例。Oracle號稱可以達到“3.5:1”的壓縮比。
5.嘗試更新操作,看一下更新的效率
sec@secooler> set timing on
sec@secooler> update t set object_id=1;
1141232 rows updated.
Elapsed: 00:00:58.59
sec@secooler> update t_com_for_all_operations set object_id=1;
1141232 rows updated.
Elapsed: 00:00:47.61
sec@secooler> select segment_name,bytes/1024/1024 MB from user_segments;
SEGMENT_NAME MB
------------------------------ ----------
T 128
T_COM_FOR_ALL_OPERATIONS 45
Elapsed: 00:00:00.70
因為操作的資料集合較小,所以資料的總體更新時間有所下降。
6.Oracle 11R2中關於compress引數語法定義
{ COMPRESS [ FOR { ALL | DIRECT_LOAD } OPERATIONS ]
| NOCOMPRESS
}
7.小結
因為11g中提供的壓縮技術可以直接讀取壓縮資料而無需解壓縮資料塊,因此在OLTP環境下使用這樣的壓縮技術基本上沒有效能上的損失。
技術永遠向前發展,贊。
Good luck.
secooler
10.05.05
-- The End --
Oracle在11g之前版本中的壓縮技術應用場景非常的有限,多用於只讀的資料庫倉庫中,要求表中的資料是隻讀的。因此在OLTP的環境中很少見到資料壓縮技術的身影。
11g推出的資料壓縮技術已經打破了這個束縛,Oracle透過只儲存在儲存壓縮後設資料的特定表(符號表,symbol table)中有重複的列值的單個副本,消除了塊中所有重複的值。得益於此項技術,訪問壓縮資料時的I/O也大大減少,進而,壓縮技術延展到了OLTP領域。
透過實驗,簡單窺探一下此技術的使用方法。
1.確認作業系統版本
sys@secooler> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
2.建立大約128M的測試用普通表T
sec@secooler> create table t as select * from all_objects;
Table created.
sec@secooler> insert into t select * from t;
71327 rows created.
sec@secooler> /
142654 rows created.
sec@secooler> /
285308 rows created.
sec@secooler> commit;
Commit complete.
sec@secooler> insert into t select * from t;
570616 rows created.
sec@secooler> commit;
Commit complete.
sec@secooler> select segment_name,bytes/1024/1024 MB from user_segments;
SEGMENT_NAME MB
------------------------------ ----------
T 128
3.使用“compress for all operations”選項建立壓縮表
sec@secooler> create table T_COM_FOR_ALL_OPERATIONS compress for all operations as select * from T;
Table created.
4.普通表與壓縮表佔用空間大小比較
sec@secooler> select segment_name,bytes/1024/1024 MB from user_segments;
SEGMENT_NAME MB
------------------------------ ----------
T 128
T_COM_FOR_ALL_OPERATIONS 44
可見,幾乎節省了2/3的儲存空間,現在的大小(44M)是原先大小(128M)的1/3!
的確是一個非常大的壓縮比例。Oracle號稱可以達到“3.5:1”的壓縮比。
5.嘗試更新操作,看一下更新的效率
sec@secooler> set timing on
sec@secooler> update t set object_id=1;
1141232 rows updated.
Elapsed: 00:00:58.59
sec@secooler> update t_com_for_all_operations set object_id=1;
1141232 rows updated.
Elapsed: 00:00:47.61
sec@secooler> select segment_name,bytes/1024/1024 MB from user_segments;
SEGMENT_NAME MB
------------------------------ ----------
T 128
T_COM_FOR_ALL_OPERATIONS 45
Elapsed: 00:00:00.70
因為操作的資料集合較小,所以資料的總體更新時間有所下降。
6.Oracle 11R2中關於compress引數語法定義
{ COMPRESS [ FOR { ALL | DIRECT_LOAD } OPERATIONS ]
| NOCOMPRESS
}
7.小結
因為11g中提供的壓縮技術可以直接讀取壓縮資料而無需解壓縮資料塊,因此在OLTP環境下使用這樣的壓縮技術基本上沒有效能上的損失。
技術永遠向前發展,贊。
Good luck.
secooler
10.05.05
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-662005/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 壓縮技術(compress)Oracle
- oracle compress壓縮小記Oracle
- 使用compress壓縮檔案
- oracle壓縮技術Oracle
- 表壓縮技術
- flask-compress 和JSON壓縮FlaskJSON
- [CareerCup] 1.5 Compress String 壓縮字串字串
- compress表段壓縮基礎記載
- 影片壓縮技術簡介
- 對錶資料壓縮compress的修改和查詢
- oracle 11g對於表壓縮改進Oracle
- 資料庫壓縮技術探索資料庫
- 【Koa】koa-compress中介軟體的使用-壓縮資料
- 關於資料庫壓縮技術的Survey資料庫
- Linux命令:壓縮指令(compress,uncompress,gzip,gunzip,tar)Linux
- 深度學習之圖片壓縮技術深度學習
- 深度學習影象視訊壓縮技術深度學習
- HTTP/2 頭部壓縮技術介紹HTTP
- web前端之HTML5壓縮圖片compress image with canvasWeb前端HTMLCanvas
- 【表壓縮】使用表壓縮技術將表所佔用空間降低到最小
- 影片壓縮技術助力邊防影片監控
- Oracle 表壓縮(Table Compression)技術介紹Oracle
- 11g 資料庫rman壓縮備份壓縮率測試資料庫
- Zip 壓縮、解壓技術在 HTML5 瀏覽器中的應用HTML瀏覽器
- 【RMAN】使用RMAN的 Compressed Backupsets備份壓縮技術
- [Rman]使用RMAN的Compressed Backupsets備份壓縮技術
- 影片壓縮技術助力油田管網影片監控
- 大模型應用曙光 - 10X壓縮技術大模型
- oracle 11g 新特性 表壓縮Oracle
- 字串的壓縮和解壓縮字串
- 從零手寫實現 nginx-09-compress http 檔案壓縮NginxHTTP
- QEMU-KVM中的多執行緒壓縮遷移技術執行緒
- 影片壓縮技術助力銀行網點影片監控
- 數字媒體技術揭祕(續)——壓縮編碼
- 影片壓縮工具:Compress Any Video pro Mac v2.2.1啟用版IDEMac
- 技術人生-抱怨和進步並存
- Nielsen:CBS神經視訊廣告壓縮技術,縮短時間讓效果更好
- 簡單的zip壓縮和解壓縮