欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle如何實現(xiàn)壓縮表

這篇文章給大家分享的是有關(guān)oracle如何實現(xiàn)壓縮表的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比城北網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式城北網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋城北地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

表壓縮是如何工作的

在Orcle9i第2版中,表壓縮特性通過刪除在數(shù)據(jù)庫表中發(fā)現(xiàn)的重復(fù)數(shù)據(jù)值來節(jié)省空間。壓縮是在數(shù)據(jù)庫的數(shù)據(jù)塊級別上進行的。當(dāng)確定一個表要被壓縮后,數(shù)據(jù)庫便在每一個數(shù)據(jù)庫數(shù)據(jù)塊中保留空間,以便儲存在該數(shù)據(jù)塊中的多個位置上出現(xiàn)的數(shù)據(jù)的單一拷貝。這一被保留的空間被稱作符號表(symbol table)。被標(biāo)識為要進行壓縮的數(shù)據(jù)只存儲在該符號表中,而不是在數(shù)據(jù)庫行本身內(nèi)。當(dāng)在一個數(shù)據(jù)庫行中出現(xiàn)被標(biāo)識為要壓縮的數(shù)據(jù)時,該行在該符號表中存儲一個指向相關(guān)數(shù)據(jù)的指針,而不是數(shù)據(jù)本身。節(jié)約空間是通過刪除表中數(shù)據(jù)值的冗余拷貝而實現(xiàn)的。

對于用戶或應(yīng)用程序開發(fā)人員來說,表壓縮的效果是透明的。無論表是否被壓縮,開發(fā)人員訪問表的方式都是相同的,所以當(dāng)你決定壓縮一個表時,不需要修改SQL查詢。表壓縮的設(shè)置通常由數(shù)據(jù)庫管理人員或設(shè)計人員進行配置,幾乎不需要開發(fā)人員或用戶參與。

1.表級別:

1.1 創(chuàng)建一個壓縮表:

創(chuàng)建表時使用COMPRESS關(guān)鍵字,COMPRESS關(guān)鍵字指示Oracle數(shù)據(jù)庫盡可能以壓縮的格式存儲該表中的行。

SQL> create table tmp_test

(id number,phone varchar2(20),create_time date)

compress;

1.2 修改現(xiàn)有表為壓縮表:

SQL> alter table tmp_test compress;

取消表的壓縮:

SQL> alter table tmp_test nocompress;

1.3 確定表是否被壓縮:

確定一個表是否使用了壓縮,查詢user_tables,compression字段表明表是否被壓縮.

SQL> select table_name,compression from user_tables where table_name not like 'BIN%';

TABLE_NAME COMPRESS

------------------------------ --------

CLASSES ENABLED

ROOMS ENABLED

STUDENTS DISABLED

MAJOR_STATS DISABLED

2.表空間級別:

2.1 創(chuàng)建表壓縮空間:

可以在表空間級別上定義COMPRESS屬性,既可以在生成時利用CREATE TABLESPACE來定義,也可以稍后時間利用ALTER TABLESPACE來定義。

與其他存儲參數(shù)類似,COMPRESS屬性也具有一些繼承特性。當(dāng)在一個表空間中創(chuàng)建一個表時,它從該表空間繼承COMPRESS屬性。

可以在一個表空間直接壓縮或解壓縮一個表,而不用考慮表空間級別上的COMPRESS屬性。

2.2 使現(xiàn)有表空間轉(zhuǎn)換為壓縮表空間 SQL> alter tablespace sms default compress;
SQL> alter tablespace sms default nocompress;

2.3 確定是否已經(jīng)利用COMPRESS對一個表空間進行了定義,可查詢USER_TABLESPACES數(shù)據(jù)字典視圖并查看DEF_TAB_COMPRESSION列

SQL> select tablespace_name,def_tab_compression from user_tablespaces;

TABLESPACE DEF_TAB_

---------- --------

USERS DISABLED

TEST DISABLED

UNDOTBS01 DISABLED

STATPACK DISABLED

3.向一個壓縮的表中加載數(shù)據(jù)

注:當(dāng)像上面那樣指定compress時,其它表中(表空間)的數(shù)據(jù)并沒有壓縮,它只是修改了數(shù)據(jù)字典的設(shè)置;只有在向一個表中加裁/插入數(shù)據(jù)時,才會壓縮數(shù)據(jù).

只有在使用下面4種方法時,表中的數(shù)據(jù)才會被壓縮存放:

  • 直接路徑的 sql*load

  • 帶有/*+ append*/的 insert語句

  • create table .. as select..

  • 并行insert

4.壓縮一個已經(jīng)存在但并未壓縮的表

使用alter table .. move compress使一個已存在但未壓縮的表轉(zhuǎn)換為壓縮表.

SQL> alter table tmp_test move compress;

同樣,也可以使用alter table.. move nocompress來解壓一個已經(jīng)壓縮的表:

SQL> alter table tmp_test move nocompress;

5.壓縮一個物化視圖

使用用于壓縮表的類似方式來壓縮物化視圖。

基于多個表的聯(lián)接生成的物化視圖通常很適于壓縮,因為它們通常擁有大量的重復(fù)數(shù)據(jù)項。

SQL> create materialized view mv_tmp_test

compress

as

select a.phone,b.create_time from tmp_test a,recv_stat b

where a.id=b.id;

可以使用ALTER MATERIALIZED VIEW命令來改變一個物化視圖的壓縮屬性。

當(dāng)你使用此命令時,請注意通常是在下一次刷新該物化視圖時才會進行實際的壓縮。

SQL> alter materialized view mv_temp_test compress;

6.壓縮一個已分區(qū)的表

在對已分區(qū)的表應(yīng)用壓縮時,可以有很多種選擇。你可以在表級別上應(yīng)用壓縮,也可以在分區(qū)級別上應(yīng)用壓縮。

你可以利用ALTER TABLE ...MOVE PARTITION命令對此分區(qū)進行壓縮

SQL> alter table tmp_test move partition create_200606 compress;

要找出一個表中的哪些分區(qū)被壓縮了,可以查詢數(shù)據(jù)字典視圖USER_TAB_PARTITIONS

SQL>SELECT TABLE_NAME, PARTITION_NAME,COMPRESSION FROM USER_TAB_PARTITIONS;

7.壓縮表的性能開銷

一個壓縮的表可以存儲在更少的數(shù)據(jù)塊中,從而節(jié)省了儲存空間,而使用更少的數(shù)據(jù)塊也意味著性能的提高。 在一個I/O受到一定限制的環(huán)境中對一個壓縮的表進行查詢通??梢愿焖俚赝瓿?,因為他們需要閱讀的數(shù)據(jù)庫數(shù)據(jù)塊要少得多。

使用sql*load加載100萬數(shù)據(jù):

表名

 

行數(shù)

 

路徑

 

是否是壓縮的

 

消耗的時間

 

test_nocom

 

1000000

 

直接

 

非壓縮的

 

00:00:21.12

 

test_comp

 

1000000

 

直接

 

壓縮的

 

00:00:47.77

 

由此可以看出,向壓縮表中加入數(shù)據(jù)的時間是正常表的一倍.加載壓縮的表所需要的額外時間來自于在數(shù)據(jù)加載過程中所執(zhí)行的壓縮操作。

可以得出的結(jié)論是:在很少改變的表上使用壓縮技術(shù)還是可以的.表中數(shù)據(jù)經(jīng)常變動的情況下,盡量不要使用表壓縮,它影響插入操作.

感謝各位的閱讀!關(guān)于“oracle如何實現(xiàn)壓縮表”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

本文題目:oracle如何實現(xiàn)壓縮表
瀏覽路徑:http://chinadenli.net/article44/ihceee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、做網(wǎng)站、電子商務(wù)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)