在數(shù)據(jù)量變的很大的情況下,可以考慮表壓縮,減少磁盤的存儲(chǔ),減少buffer cache的消耗,加快查詢的速度,壓縮需要在數(shù)據(jù)加載和dml的時(shí)候消耗一些cpu.表壓縮對(duì)于應(yīng)用是透明的。
創(chuàng)新互聯(lián)專注于松原企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),電子商務(wù)商城網(wǎng)站建設(shè)。松原網(wǎng)站建設(shè)公司,為松原等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
你可以在表空間,表或分區(qū)級(jí)別指定壓縮,如果在表空間級(jí)別指定壓縮,那么這個(gè)表空間中的所有表默認(rèn)都是壓縮的。
壓縮會(huì)發(fā)生在數(shù)據(jù)插入,更新或批量加載到表時(shí)。有幾種類型的壓縮。基本的,oltp的,dss的,歸檔的。他們的cpu消耗見文檔。
當(dāng)使用基本壓縮,數(shù)據(jù)倉庫壓縮,或歸檔壓縮的時(shí)候,壓縮僅僅是在批量加載到一個(gè)表的時(shí)候發(fā)生。當(dāng)你使用了oltp壓縮,壓縮發(fā)生在數(shù)據(jù)插入,更新,批量加載。
如果你使用了alter table命令讓表啟用壓縮,那么對(duì)于已存在的數(shù)據(jù)是不受影響的,只有在啟用壓縮后的插入,或更新會(huì)受影響。也可以使用ALTER TABLE…NOCOMPRESS將一個(gè)表設(shè)置成非壓縮,對(duì)于已經(jīng)的壓縮的表是沒有影響的,壓縮的數(shù)據(jù)還是壓縮的,只是新插入的數(shù)據(jù)是不被壓縮。
創(chuàng)建一個(gè)oltp壓縮類型的表
CREATE TABLE orders ?… ?COMPRESS FOR OLTP;
如果你不指定壓縮的類型,那么默認(rèn)的情況下是基本壓縮類型。下面的2個(gè)語句是等價(jià)的。
CREATE TABLE sales_history ?… ?COMPRESS BASIC;
CREATE TABLE sales_history ?… ?COMPRESS;
下面的表是一個(gè)數(shù)據(jù)倉庫壓縮類型的表,對(duì)于經(jīng)常查詢,并且沒有dml的表適用。
CREATE TABLE sales_history ?… ?COMPRESS FOR QUERY;
創(chuàng)建一個(gè)歸檔壓縮類型的表
CREATE TABLE sales_history ?… ?COMPRESS FOR ARCHIVE;
表可以包含壓縮和非壓縮的分區(qū),并且不同的分區(qū)的壓縮的類型可以是不同的,如果在分區(qū)上指定的壓縮的類型與表上指定的壓縮的類型不同,那么分區(qū)上的優(yōu)先。
查看表是否是壓縮的,及分區(qū)是否是壓縮的。
SQL SELECT table_name, compression, compress_for FROM user_tables;
SELECT table_name, partition_name, compression,compress_for
FROM user_tab_partitions;
查看表中的行是什么壓縮類型
SELECT DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(
ownname = ‘HR’,
tabname = ‘EMPLOYEES’,
row_id ?= ‘AAAVEIAAGAAAABTAAD’),
1, ?‘No Compression’,
2, ?‘Basic or OLTP Compression’,
4, ?‘Hybrid Columnar Compression for Query High’,
8, ?‘Hybrid Columnar Compression for Query Low’,
16, ‘Hybrid Columnar Compression for Archive High’,
32, ‘Hybrid Columnar Compression for Archive Low’,
‘Unknown Compression Type’) compression_type
FROM DUAL;
修改壓縮的級(jí)別
如果表是分區(qū)表,使用在線重定義可以修改表的壓縮級(jí)別。如果表是分分區(qū)表,那么可以使用alter table ..move.. compress for語句修改表的壓縮級(jí)別,這個(gè)語句會(huì)阻塞dml操作。
對(duì)于壓縮表的限制:
1基本壓縮,你不能為添加的列指定默認(rèn)的值。刪除列是不被支持的。
2oltp壓縮,如果要添加一個(gè)帶默認(rèn)值的列,那么需要指定not null,可以刪除列,但是數(shù)據(jù)只是在內(nèi)部做了一個(gè)不被使用的標(biāo)記而已。
3在線段收縮是不被支持的。
4上面的壓縮的方式不適合于lobs類型,他們有自己的壓縮方式。
5基本壓縮類型的表的pct_free參數(shù)自動(dòng)的設(shè)置成0.
在上面的描述中可以看到對(duì)于基本類型的壓縮,沒有使用直接路徑插入的行及更新的行是不會(huì)被壓縮的。對(duì)于我們的oltp系統(tǒng)基本是沒有用處的,只測(cè)試下oltp的壓縮方式,這種方式對(duì)于沒有使用直接路徑插入的行及被更新的行都會(huì)壓縮。
SQL select count(*) from baixyu2;
COUNT(*)
22096384
SQL set serveroutput on
SQL ?exec show_space(‘BAIXYU2’,’T’,’AUTO’);
Total Blocks……………………….334336
Total Bytes………………………..2738880512
Unused Blocks………………………1916
Unused Bytes……………………….15695872
Last Used Ext FileId………………..4
Last Used Ext BlockId……………….671872
Last Used Block…………………….6276
CREATE TABLE baixyu3 ?COMPRESS FOR OLTP as select * from baixyu2;
SQL ?exec show_space(‘BAIXYU3’,’T’,’AUTO’);
Total Blocks……………………….107520
Total Bytes………………………..880803840
Unused Blocks………………………112
Unused Bytes……………………….917504
Last Used Ext FileId………………..4
Last Used Ext BlockId……………….116224
Last Used Block…………………….912
看到使用的塊由33w下降到10w。壓縮效果還是不錯(cuò),但是是否使用還要結(jié)果上面的限制來根據(jù)實(shí)際情況評(píng)估。
1、在需要儲(chǔ)存?zhèn)浞莸挠脖P中建文件夾如:databasebackup ;
2、拷貝exp.bat到 databasebackup 中;(把下列語句保存成exp.bat文件)
set filename=c:\databasebackup\%date:~0,10%
exp.exe system/system@testdb wner=ewms file=%filename%.dmp log=%filename%.log
rar a %filename%.zip %filename%.dmp %filename%.log
del %filename%.dmp
del %filename%.log
3、從數(shù)據(jù)庫系統(tǒng)C:\Program Files\WinRAR中拷貝Rar.exe文件到 C:\WINDOWS\system32中;
4、執(zhí)行系統(tǒng)定時(shí)任務(wù)。
Oracle提供了一下幾種類型的表壓縮方法:
1、Basic Compression:壓縮等級(jí)High,CPU開銷較小
2、OLTP Compression:壓縮等級(jí)High,CPU開銷較小
3、Warehouse Compression:壓縮等級(jí)Higher,CPU開
銷較大(取決于壓縮參數(shù)是Low還是High,默認(rèn)是HIGH)
4、Archive Compression:壓縮等級(jí)Highest,CPU開銷很大
(取決于壓縮參數(shù)是Low還是High,默認(rèn)是LOW)
當(dāng)使用Basic Compression,warehouse
Compression,Archive Compression類型的壓縮時(shí),
盡在發(fā)生批量數(shù)據(jù)導(dǎo)入時(shí)才會(huì)執(zhí)行壓縮。
OLTP Compression被用于聯(lián)機(jī)事務(wù)處理系統(tǒng),
可以對(duì)任意的SQL操作執(zhí)行數(shù)據(jù)壓縮。
Warehouse Compression和Archive Compression可
以獲得很高的壓縮等級(jí),因?yàn)樗鼈儾捎昧薍ybrid Columnar
(混合列)壓縮技術(shù),Hybrid Columnar采用一種改良的列
的存儲(chǔ)形式替代一行為主的存儲(chǔ)形式。
Hybird Columnar技術(shù)允許將相同的數(shù)據(jù)存儲(chǔ)在一起,
提高了壓縮算法的效率。當(dāng)使用混合列壓縮算法時(shí),
將導(dǎo)致更多的CPU開銷,因此這種壓縮技術(shù)適用于更
新不頻繁的數(shù)據(jù)。
之前未壓縮的表可以通過alter table ... compression ...
語句進(jìn)行壓縮。
在這種情況下,壓縮啟用前的記錄不會(huì)被壓縮,
只有新插入或更新的數(shù)據(jù)才會(huì)進(jìn)行壓縮。
同樣,通過alter table ... nocompression ...語句解除對(duì)一個(gè)表的壓縮,
表內(nèi)已壓縮的數(shù)據(jù)還會(huì)繼續(xù)保持壓縮的狀態(tài),新插入的數(shù)據(jù)就不再被壓縮。
表壓縮語法:
CREATE TABLE table_name (column_defination...)
COMPRESS FOR [OLTP]|[QUERY|ARCHIVE
[LOW|HIGH]];
ALTER TABLE table_name COMPRESS FOR [OLTP]|
[QUERY|ARCHIVE [LOW|HIGH]];
本文標(biāo)題:oracle怎么啟用壓縮,oracle 數(shù)據(jù)文件壓縮
文章URL:http://chinadenli.net/article20/heidjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、建站公司、手機(jī)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)站策劃、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)