oracle 壓縮技術(compress)
Oracle壓縮資料的處理基於塊,其本質上是透過消除在資料庫塊中的重複資料來實現空間節約,具體方法如下:比較資料塊中包含的所有欄位或記錄,其中重複的資料只在位於資料塊開始部分的記號表(Symbol Table)中儲存一份,在其他行或欄位出現同樣的資料時,只記錄一個指向記號表中相關資料的指標。
oracle 提供的壓縮方式及特性
oracle 提高了4總壓縮方式,分別適用不同的場景。分別是:
basic compression:壓縮度高,CPU開銷最低,適用於DDS。
OLTP compression : 壓縮度高,CPU開銷最低,適用於OLTP,DDS。
注:壓縮可以指定在表空間級,表級,分割槽級。如果表空間帶有壓縮屬性那麼其中的表預設也帶有壓縮屬性,但是表級的壓縮屬性可以覆蓋表空間級的壓縮屬性,表的壓縮屬性與分割槽的壓縮屬性的關係也是這樣的。以下主要講的是表的壓縮。
另外有兩種壓縮方式,不過這兩種壓縮方式使用範圍有限:
SQL> create table object_copy compress for query
2 as select * from dba_objects;
as select * from dba_objects
*
ERROR at line 2:
ORA-64307: hybrid columnar compression is only supported in tablespaces
residing on Exadata storage
建立表的時候透過指定compress basic 關鍵字使表使用basic compression的壓縮方式。如果只使用compress 關鍵字不指定壓縮方式,預設是basic方式。使用basic 方式壓縮的特性在於:使用直接路徑insert 的記錄是壓縮的,update 操作相當於解壓縮。
SQL> create table objects_1
2 compress basic
3 as select object_id,object_name
4 from dba_objects;
Table created.
SQL> create table objects_1
2 compress basic
3 as select object_id,object_name
4 from dba_objects;
Table created.
指定OLTP方式的壓縮方法指定關鍵字:compress for oltp。OLTP方式的壓縮方式特性
在於:使用直接路徑insert 的記錄依然是壓縮的,傳統的insert 語句插入的記錄也是壓縮的,update 語句操作過後資料依然是壓縮的。
建立壓縮表:
create table Name(
......
) compress;
alter table Name compress;
alter table Name nocompress;
物化檢視的壓縮:
create materialized view ViewName compress
as select ......;
alter materialized view ViewName compress;
分割槽表的壓縮:
create table Name (
......
) compress
partition by ......;
create table Name (
......
)
partition by ......(
partition PartName ...... compress,
partition PartName ...... compress,
partition PartName ......
);
在表空間級別上定義壓縮屬性:
create tablespace ...... default compress;
alter tablespace ...... compress / nocompress;
當壓縮屬性被定義在表空間上時,在其中建立表時,該特性將被表繼承,但表級別的壓縮屬性會覆蓋表空間的壓縮屬性。
檢視一個表是否為壓縮表:
select compression from user_table where table_name=TableName;
檢視一個表空間是否被壓縮:
select def_tab_compression from dba_tablespace where tablespace_name=TablespaceName;
檢視分割槽表各分割槽的壓縮屬性:
select table_name, partition_name, compression from user_tab_partitions where table_name=TableName;
表壓縮的實現:
壓縮表的資料要能夠被壓縮,必須正確地使用批次裝載或插入:
1、在SQL * LOADER中使用直接路徑(direct path)裝載資料;
2、執行create table ... as select語句;
3、執行並行插入語句;
4、執行序列插入語句並且使用append提示。
alter table Name move compress / nocompress;
效能分析:
1、在批次裝載或插入資料的過程中,由於壓縮的同時進行,會引起CPU使用率提高,及導致裝載時間明顯增加。
2、對於普通的INSERT語句,由於沒有執行壓縮過程,效能幾乎沒有影響。
3、用DELETE語句刪除壓縮表的操作會比較快,主要是因為壓縮表中被壓縮行的資料比較小,相應的需要寫日誌的資料量也比較小。
4、更新壓縮的操作會比較慢,主要由於ORACLE對非壓縮表執行了一些最佳化。
5、在IO吞吐率受限制的執行大批次查詢,比如全表掃描,壓縮表將明顯提高查詢速度,主要由於壓縮後,查詢同樣的資料行只需要讀取更少的資料塊。
常用壓縮語句:
----對分割槽進行壓縮
alter table ICDCUST2.AM_SCORE_BALANCE move partition P_532_201408 PARALLEL(DEGREE 12) compress nologging;
----檢視壓縮情況
SQL> select table_name,compression,compress_for from dba_tables where table_name LIKE '%TEST%' AND OWNER='SHSNC';
TABLE_NAME COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
TEST ENABLED BASIC
TEST005 ENABLED BASIC
TEST01 ENABLED BASIC
TEST02 ENABLED OLTP
TEST03 DISABLED
-----建立如下的分割槽表,每個分割槽可以指定不同的壓縮方式。
create table shsnc.test(
object_id number(10),
object_name varchar2(120)
)
partition by range(object_id)(
partition p1 values less than (100000) compress basic,
partition p2 values less than (200000) compress for oltp,
partition p3 values less than (maxvalue) nocompress
)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1264212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- flask-compress 和JSON壓縮FlaskJSON
- 影片壓縮技術簡介
- 【Koa】koa-compress中介軟體的使用-壓縮資料
- oracle壓縮表(二)Oracle
- oracle壓縮表(一)Oracle
- oracle 的表壓縮Oracle
- 影片壓縮工具:Compress Any Video pro Mac v2.2.1啟用版IDEMac
- 從零手寫實現 nginx-09-compress http 檔案壓縮NginxHTTP
- 關於資料庫壓縮技術的Survey資料庫
- 影片壓縮技術助力邊防影片監控
- 大模型應用曙光 - 10X壓縮技術大模型
- 影片壓縮技術助力油田管網影片監控
- 影片壓縮技術助力銀行網點影片監控
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- Oracle RMAN備份以及壓縮原理分析Oracle
- Oracle Hybrid Columnar Compression(HCC) 混合列壓縮Oracle
- 檔案壓縮和解壓縮
- 第一屆深度學習模型壓縮與部署技術會議深度學習模型
- QEMU-KVM中的多執行緒壓縮遷移技術執行緒
- Python實現壓縮和解壓縮Python
- linux下壓縮解壓縮命令Linux
- linux壓縮和解壓縮命令整理Linux
- JS壓縮方法及批量壓縮JS
- 圖鴨科技獲CVPR 2018影像壓縮挑戰賽單項冠軍,技術解讀端到端影像壓縮框架框架
- 圖鴨科技獲CVPR 2018影象壓縮挑戰賽單項冠軍,技術解讀端到端影象壓縮框架框架
- Linux tar分卷壓縮與解壓縮Linux
- Linux壓縮解壓Linux
- CentOS 壓縮解壓CentOS
- 【Java技術專題】「效能優化系列」針對Java物件壓縮及序列化技術的探索之路Java優化物件
- MLPerf世界紀錄技術分享:通過模型壓縮優化取得最佳效能模型優化
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- Linux中檔案的壓縮和解壓縮Linux
- 打包/壓縮
- Gzipped 壓縮
- linuxtar解壓和壓縮Linux
- linux分卷壓縮解壓Linux
- 前端奇淫技術:圖片壓縮、方向糾正、預覽、上傳外掛前端
- 壓縮包格式有哪些?壓縮包格式大全
- ppt怎麼壓縮,ppt壓縮的技巧分享