壓縮表
『壹』 固體間能被壓縮表明
任何物體都能被壓縮,這表明組成物質的分子之間存在斥力;固體和液體很難被壓縮,這又表明分子之間存在斥力.
故答案為:斥力;斥力.
『貳』 在oracle中,為什麼要把新建的表做壓縮處理
你說的是創建壓縮表吧.
壓縮表的主要作用是:通過消除在資料庫塊中的重復數據來實現空間節約
實現原理:比較數據塊中包含的所有欄位或記錄,其中重復的數據只在位於數據塊開始部分的記號表(Symbol Table)中存儲一份,在其他行或欄位出現同樣的數據時,只記錄一個指向記號表中相關數據的指針。
命令:
創建壓縮表:
create table haha(
......
) compress;
alter table haha compress;
alter table haha nocompress;
『叄』 如何壓縮word中的表格數據急急急~在線等~
方法一、選中整個表格,點擊「格式」菜單中的字型大小,將字體縮小,整個表格就會縮小。
方法二、將游標放到表達任意兩行之間時,游標會變成一個上下相對的雙箭頭,按住滑鼠左鍵向上拖動,縮小行間距。如果想每行的高度一致,選中整個表格,在上面單擊右鍵,在彈出的菜單中左鍵單擊「平均分布各行」即可將每行高度調整一致。
方法三、點擊「文件」菜單,點擊「頁面設置」,在彈出的「頁面設置對話框」中,將「頁邊距」中的上下邊距的數字縮小,必要時在「版式」標簽下,將「頁眉頁腳」的數值也縮小。
以上方法可同時使用,直到壓縮到一頁為止。
『肆』 oracle 壓縮表空間有什麼作用
主要是節省空間,不過查詢的時候貌似更消耗cpu資源,對歷史數據比較適合。
『伍』 郵件里的附件壓縮表格打開後是亂碼提示請看圖片。請問是怎麼回事
那是你發給的人的文檔有問題,文件被損壞了
『陸』 我用word做了一張表格,要列印出來,但是超出了一張,怎樣壓縮表格大小,使它可以在一張紙上列印出來
你把頁邊距設置小點不就完事了。在列印預覽里,顯示邊距,你按住上邊距,往上拖一點,表格就上去了啊。你用那麼大的邊也沒什麼用。下邊距也是可調的。
『柒』 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。壓縮效果還是不錯,但是是否使用還要結果上面的限制來根據實際情況評估。
『捌』 如何收縮表空間
1. 查看當前用戶每個表佔用空間的大小:
select segment_name,sum(bytes)/1024/1024 from User_Extents group by segment_name;
2. 查看當前用戶佔用大於10M的表間的大小:
select segment_name,sum(bytes)/1024/1024 from User_Extents group by segment_name having sum(bytes)/1024/1024>10;
3. 確保該表支持行移動。如果不支持,您可以使用如下命令來支持它:
alter table 表名 enable row movement;
您還要確保在該表上禁用所有基於行 id 的觸發器,這是因為行將會移動,行 id 可能會發生改變。
4. 您可以通過以下命令重組該表中現有的行:
alter table 表名 shrink space compact;
該命令將會在塊內重新分配行,如圖 1 所示,這就在 HWM 之下產生了更多的空閑塊 — 但是 HWM 自身不會進行分配。
圖 1:重組行後的表中的塊
在執行該操作後,讓我們看一看空間利用率所發生的改變。使用在第一步展示的 PL/SQL 塊,可以看到塊現在是如何組織的:
FS1 Blocks = 0 Bytes = 0 FS2 Blocks = 0 Bytes = 0 FS3 Blocks = 1 Bytes = 0 FS4 Blocks = 0 Bytes = 0 Full Blocks = 2 Bytes = 16384
注意這里的重要改變:FS4 塊(具有 75-100% 的空閑空間)的數量現在從 4,148 降為 0。我們還看到 FS3 塊(具有 50-75% 的空閑空間)的數量從 0 增加到 1。但是,由於 HWM 沒有被重置,總的空間利用率仍然是相同的。
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
但是需要注意的:某些表(如runfile,因為特殊欄位),不能繼續運行;
5. 我們可以用如下命令檢查使用的空間:
select blocks from user_segments where segment_name=upper(表名);
由該表佔用的塊的數量 (4,224) 仍然是相同的,這是因為並沒有把 HWM 從其原始位置移開。
6. 可以把 HWM 移動到一個較低的位置,並用如下命令回收空間:
alter table 表名 shrink space;
注意子句 COMPACT 沒有出現。該操作將把未用的塊返回給資料庫並重置 HWM。
可以通過檢查分配給表的空間來對其進行測試: 塊的數量從 4,224 降為 8;該表內所有未用的空間都返回給表空間,以讓其他段使用,如圖 2 所示。
圖 2:在收縮後,把空閑塊返回給資料庫
這個收縮操作完全是在聯機狀態下發生的,並且不會對用戶產生影響。
7. 也可以用一條語句來壓縮表的索引:
alter table 表名 shrink space cascade;
8. 聯機 shrink 命令是一個用於回收浪費的空間和重置 HWM 的強大的特性。我把後者(重置 HWM)看作該命令最有用的結果,
因為它改進了全表掃描的性能。
『玖』 MYSQL表壓縮和整理
MYSQL表壓縮和整理如下:
633M -rw-rw---- 1 mysql mysql 632M Oct 25 17:51 url_comment_0.ibd 12K -rw-rw---- 1 mysql mysql 8.7K Oct 25 18:16 url_comment_0.frm 178M -rw-rw---- 1 mysql mysql 178M Oct 25 18:53 url_comment_0.MYD 99M -rw-rw---- 1 mysql mysql 98M Oct 25 18:53 url_comment_0.MYI
結論:由上面數據可知innodb plugin能有效壓縮innodb數據文件,近50%,另外相同的情況下使用MyISAM表也可較大的減少數據大小(178+99<633M).
當然實際的壓縮比例和表的結構等有關,如欄位為varchar會有較大的壓縮比,而int類型壓縮率會低些。
『拾』 sql 頻繁的壓縮表 有沒有影響
沒有影響,只不過正在壓縮表時,資料庫運行很慢,對這個表的其他操作會卡死。