當前位置:首頁 » 文件管理 » oracle壓縮

oracle壓縮

發布時間: 2022-12-10 06:42:35

1. oracle 什麼是compressed 表

Hybrid Columnar Compressed
首先我們要搞清楚,什麼是行壓縮,什麼叫列壓縮。我們熟悉的資料庫,如Oracle,MySQL等都是基於行的資料庫,就是行的不同欄位物理上存放在一起,還有一種是基於列的資料庫,就是每個欄位的不同行物理上存放在一起。他們的優缺點同樣突出:
基於行的資料庫,訪問一行非常方便,但是由於同一列的數據是分開存放的,如果要針對某一列進行查詢時,幾乎要掃描整個表才能得到結果。基於行資料庫的壓縮,稱為行壓縮。
基於列的資料庫,因為同一列的數據物理上放在一起,所以訪問一列非常方便,也就是說如果針對某一列進行查詢時,不需要掃描整個表,只需要掃描這一列的數據就可以了,但是訪問一行的全部欄位非常不方便(又是廢話)。基於列資料庫的壓縮,稱為列壓縮。
Oracle通常說的compress功能(包括11g R2的Advanced compress),都是行壓縮,因為Oracle是個基於行的資料庫。大概的方法就是在block頭部存放一個symbol table,然後將相同的值放在那裡,每行上相同的數據指向symbol table,以此來達到壓縮的目的。行壓縮的效果通常不好,因為我們知道行與行之間,其實相同的數據並不多。但是列壓縮則不同,因為相同列的數據類型相同,很容易達到很好的壓縮效果。
行壓縮和列壓縮都有其優缺點,而Oracle的混合列壓縮技術,實際上是融合了列壓縮的高壓縮比和行資料庫的訪問特性,將兩者的優點結合起來。Oracle提出了CU的概念(compress unit),在一個CU內,是一個基於列的存儲方式,採用列壓縮,但是一個CU內保存了行的所有欄位信息,所以在CU與CU之間,Oracle還是一個基於行的資料庫,訪問某一行,總是只在一個CU內。每個CU由一些連續的block組成,CU header中記錄了每一行的各個列在CU中的分布情況,在混合列壓縮模式下,一行通常是跨多個block的。
所以說混合列壓縮,結合了列壓縮和行訪問的特點,即可以提供非常高的壓縮率,又很好的保證了基於行類型的訪問。
Exadata的另一個重要功能是IO resource management,如果我們在一個Exadata上部署了很多個資料庫,可以用它來管理IO資源,這里就不作闡述了。
目前,我還沒有了解到在國內有Exadata的應用,而且資料也是比較少的。希望有機會可以真實的測試一下它的性能,我不懷疑他在DSS環境下的表現,但是對於OLTP類型的應用,是否真的象Oracle說的那麼強勁,還有待於驗證。

2. oracle 索引使用鍵壓縮的問題

就是壓縮兩列的意思,你那個例子就是壓縮ename,esex這兩例

使用Oracle索引壓縮技術,減少空間佔用,並提高大數據量訪問情況下的速度.
索引壓縮僅用於復合索引,即多個欄位建立一個索引的情況,通過compress參數指定壓縮哪些欄位.
雖然壓縮後的索引,相對來說需要花費更多的CPU時間來處理,
但是,這樣做後,可以在高速緩沖區中緩存更多的索引塊,當大范圍的掃描時,能夠減少物理IO的數量.

3. mac安裝win10系統後安裝oracle

1、首先你要先下載oracle的安裝包。網路搜索oracle官網下載安裝包。oracle是開源的,所以可以免費下載oracle安裝包。(下載時候,自己選擇32位還是64位,選擇適合自己電腦系統的版本)
2、打開安裝包所在目錄。將安裝包解壓縮。
3、雙擊打開解壓縮之後的文件夾。找到setup.exe應用程序,然後雙擊。
4、oracle主目錄位置是安裝位置。
選擇你想安裝的版本:企業版/標准版/個人版
輸入你的資料庫口令(這個在用oracle的時候會用到,所以要記住這個口令)
(一般推薦選擇選中」創建啟動數字型檔「,即安裝oracle時同時創建一數字型檔,適用於初學者)
5、之後的步驟就是按默認選項,然後點擊」下一步「即可。

4. 請高手解答下:如何把oracle資料庫備份成壓縮包的形式

用 rman 可以備份成壓縮包的形式
冷備後用系統自帶或第三方的壓縮工具通過定時作業控制, 也可以.

5. 為什麼oracle的dmp數據包壓縮後變得這么小

dmp保存的數據有結構化佔用。比如一個欄位類型為vchar(64),存儲內容為字元「A」,dmp佔用64字元,壓縮後為1個字元。
所以,200M可以壓縮到3.125M。提問者200M壓縮到16M,說明你的數據源字元假如是vchar(200)實際存儲的是16長度字元串。

以上為舉例,非實際壓縮演算法

6. 如何用exp導出oracle資料庫並壓縮

1. 它是一個可執行的文件 存放目錄/ORACLE_HOME/bin
exp導出工具將資料庫中數據備份壓縮成一個二進制系統文件. 它有三種模式:
a. 用戶模式:導出用戶所有對象以及對象中的數據;
b. 表模式: 導出用戶所有表或者指定的表;
c. 整個資料庫: 導出資料庫中所有對象。
2. 導出工具exp互動式命令行方式的使用的例子
$exp test/test123@appd
Enter array fetch buffer size: 4096 > 回車
Export file: expdat.dmp > m.dmp 生成導出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回車wQeLin
Compress extents (yes/no): yes > 回車

7. oracle11g怎麼建立壓縮表

在數據量變的很大的情況下,可以考慮表壓縮,減少磁碟的存儲,減少buffer cache的消耗,加快查詢的速度,壓縮需要在數據載入和dml的時候消耗一些cpu.表壓縮對於應用是透明的。

你可以在表空間,表或分區級別指定壓縮,如果在表空間級別指定壓縮,那麼這個表空間中的所有表默認都是壓縮的。

壓縮會發生在數據插入,更新或批量載入到表時。有幾種類型的壓縮。基本的,oltp的,dss的,歸檔的。他們的cpu消耗見文檔。

當使用基本壓縮,數據倉庫壓縮,或歸檔壓縮的時候,壓縮僅僅是在批量載入到一個表的時候發生。當你使用了oltp壓縮,壓縮發生在數據插入,更新,批量載入。

如果你使用了alter table命令讓表啟用壓縮,那麼對於已存在的數據是不受影響的,只有在啟用壓縮後的插入,或更新會受影響。也可以使用ALTER TABLE…NOCOMPRESS將一個表設置成非壓縮,對於已經的壓縮的表是沒有影響的,壓縮的數據還是壓縮的,只是新插入的數據是不被壓縮。

創建一個oltp壓縮類型的表
CREATE TABLE orders … COMPRESS FOR OLTP;

如果你不指定壓縮的類型,那麼默認的情況下是基本壓縮類型。下面的2個語句是等價的。
CREATE TABLE sales_history … COMPRESS BASIC;

CREATE TABLE sales_history … COMPRESS;

下面的表是一個數據倉庫壓縮類型的表,對於經常查詢,並且沒有dml的表適用。
CREATE TABLE sales_history … COMPRESS FOR QUERY;

創建一個歸檔壓縮類型的表
CREATE TABLE sales_history … COMPRESS FOR ARCHIVE;

表可以包含壓縮和非壓縮的分區,並且不同的分區的壓縮的類型可以是不同的,如果在分區上指定的壓縮的類型與表上指定的壓縮的類型不同,那麼分區上的優先。

查看錶是否是壓縮的,及分區是否是壓縮的。
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;

修改壓縮的級別

如果表是分區表,使用在線重定義可以修改表的壓縮級別。如果表是分分區表,那麼可以使用alter table ..move.. compress for語句修改表的壓縮級別,這個語句會阻塞dml操作。

對於壓縮表的限制:
1基本壓縮,你不能為添加的列指定默認的值。刪除列是不被支持的。
2oltp壓縮,如果要添加一個帶默認值的列,那麼需要指定not null,可以刪除列,但是數據只是在內部做了一個不被使用的標記而已。

3在線段收縮是不被支持的。

4上面的壓縮的方式不適合於lobs類型,他們有自己的壓縮方式。

5基本壓縮類型的表的pct_free參數自動的設置成0.

在上面的描述中可以看到對於基本類型的壓縮,沒有使用直接路徑插入的行及更新的行是不會被壓縮的。對於我們的oltp系統基本是沒有用處的,只測試下oltp的壓縮方式,這種方式對於沒有使用直接路徑插入的行及被更新的行都會壓縮。

SQL> select count(*) from xyu2;

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 xyu3 COMPRESS FOR OLTP as select * from xyu2;

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。壓縮效果還是不錯,但是是否使用還要結果上面的限制來根據實際情況評估。

8. oracle怎樣實現備份文件自動壓縮

1、在需要儲存備份的硬碟中建文件夾如: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、從資料庫系統C:\Program Files\WinRAR中拷貝Rar.exe文件到 C:\WINDOWS\system32中;
4、執行系統定時任務。

9. 怎樣壓縮Oracle數據文件

如果屬於一個單獨的表空間不是system等,可以把表空間刪除,或刪除所有對象後resize數據文件

熱點內容
java按鈕事件 發布:2025-09-19 06:29:45 瀏覽:456
文件夾用處 發布:2025-09-19 06:21:42 瀏覽:87
php數組位置 發布:2025-09-19 06:06:45 瀏覽:864
伺服器光口配ip 發布:2025-09-19 05:48:37 瀏覽:845
phpmongodb擴展 發布:2025-09-19 05:35:23 瀏覽:776
停資料庫監聽 發布:2025-09-19 05:35:14 瀏覽:45
裸車後需要什麼配置 發布:2025-09-19 05:34:38 瀏覽:186
軟體資源碼 發布:2025-09-19 05:33:58 瀏覽:44
c語言中文編譯器怎麼安裝 發布:2025-09-19 05:33:57 瀏覽:15
啟辰t90的配置怎麼樣 發布:2025-09-19 04:58:54 瀏覽:493