Oracle的表壓縮

2021-08-26 06:59:21 字數 1784 閱讀 6102

oracle壓縮資料的處理基於資料庫塊,其本質上是通過消除在資料庫塊中的重複資料來實現空間節約,具體方法如下:比較資料塊中包含的所有欄位或記錄,其中重複的資料只在位於資料塊開始部分的記號表(symbol table)中儲存乙份,在其他行或字段出現同樣的資料時,只記錄乙個指向記號表中相關資料的指標。

建立壓縮表:

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、執行並行插入語句;

alter table name move compress / nocompress;

效能分析:

1、在批量裝載或插入資料的過程中,由於壓縮的同時進行,會引起cpu使用率提高,及導致裝載時間明顯增加。

2、對於普通的insert語句,由於沒有執行壓縮過程,效能幾乎沒有影響。

3、用delete語句刪除壓縮表的操作會比較快,主要是因為壓縮表中被壓縮行的資料比較小,相應的需要寫日誌的資料量也比較小。

4、更新壓縮的操作會比較慢,主要由於oracle對非壓縮表執行了一些優化。

5、在io吞吐率受限制的系統執行大批量查詢,比如全表掃瞄,壓縮表將明顯提高查詢速度,主要由於壓縮後,查詢同樣的資料行只需要讀取更少的資料塊。

原文:

oracle壓縮表空間

tablespace created.查詢表空間資訊 sys orcl selecttablespace name,compress for from dba tablespaces tablespace name compress for system sysaux undotbs1 temp u...

oracle中啟用 禁用表空間 表壓縮

alter table t compress alter table t nocompress select owner,table name,compression from dba tables where owner scott alter tablespace users default c...

Oracle 12C下的表壓縮

oracle12c支援以下三種表壓縮方法 基本表壓縮 compress base 壓縮比率高,cpu開心最小,適用於直接路徑插入操作。常用於dss 注 這樣型別的壓縮,除了直接路徑插入會壓縮外,普通的插入要是讓資料塊達到pctfree設定的標準,也會自動壓縮資料塊,以減少其原來佔據的空間。高階行壓縮...