成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle 10g Shrink Table和Shrink Space使用詳解

數(shù)據(jù)庫(kù) Oracle
本文我們主要對(duì)Oracle 10g Shrink Table的用法進(jìn)行了詳細(xì)的介紹,以及使用Shrink時(shí)的幾點(diǎn)注意事項(xiàng),希望能夠?qū)δ兴鶐椭?/div>

Oracle 10g Shrink Table的使用是本文我們主要要介紹的內(nèi)容,我們知道,如果經(jīng)常在表上執(zhí)行DML操作,會(huì)造成數(shù)據(jù)庫(kù)塊中數(shù)據(jù)分布稀疏,浪費(fèi)大量空間。同時(shí)也會(huì)影響全表掃描的性能,因?yàn)槿頀呙栊枰L問(wèn)更多的數(shù)據(jù)塊。從Oracle 10g開始,表可以通過(guò)shrink來(lái)重組數(shù)據(jù)使數(shù)據(jù)分布更緊密,同時(shí)降低HWM釋放空閑數(shù)據(jù)塊。

segment shrink分為兩個(gè)階段:

1、數(shù)據(jù)重組(compact):通過(guò)一系列insert、delete操作,將數(shù)據(jù)盡量排列在段的前面。在這個(gè)過(guò)程中需要在表上加RX鎖,即只在需要移動(dòng)的行上加鎖。由于涉及到rowid的改變,需要enable row movement.同時(shí)要disable基于rowid的trigger.這一過(guò)程對(duì)業(yè)務(wù)影響比較小。

2、HWM調(diào)整:第二階段是調(diào)整HWM位置,釋放空閑數(shù)據(jù)塊。此過(guò)程需要在表上加X(jué)鎖,會(huì)造成表上的所有DML語(yǔ)句阻塞。在業(yè)務(wù)特別繁忙的系統(tǒng)上可能造成比較大的影響。Shrink Space語(yǔ)句兩個(gè)階段都執(zhí)行。Shrink Space compact只執(zhí)行***個(gè)階段。

如果系統(tǒng)業(yè)務(wù)比較繁忙,可以先執(zhí)行Shrink Space compact重組數(shù)據(jù),然后在業(yè)務(wù)不忙的時(shí)候再執(zhí)行Shrink Space降低HWM釋放空閑數(shù)據(jù)塊。shrink必須開啟行遷移功能。

alter table table_name enable row movement ;

注意:alter table XXX enable row movement語(yǔ)句會(huì)造成引用表XXX的對(duì)象(如存儲(chǔ)過(guò)程、包、視圖等)變?yōu)闊o(wú)效。執(zhí)行完成后,***執(zhí)行一下utlrp.sql來(lái)編譯無(wú)效的對(duì)象。

語(yǔ)法:

  1. alter table <table_name> shrink space [ <null> | compact | cascade ];  
  2. alter table <table_name> shrink space compcat; 

收縮表,相當(dāng)于把塊中數(shù)據(jù)打結(jié)實(shí)了,但會(huì)保持high water mark;

alter table <tablespace_name> Shrink Space;

收縮表,降低 high water mark;

alter table <tablespace_name> Shrink Space cascade;

收縮表,降低 high water mark,并且相關(guān)索引也要收縮一下下。

alter index idxname Shrink Space;

回縮索引

1:普通表

Sql腳本,改腳本會(huì)生成相應(yīng)的語(yǔ)句

  1. select'alter table '||table_name||' enable row movement;'||chr(10)||'alter table '||table_name||' shrink space;'||chr(10)from user_tables;  
  2. select'alter index '||index_name||' shrink space;'||chr(10)from user_indexes; 

2:分區(qū)表的處理

進(jìn)行Shrink Space時(shí) 發(fā)生ORA-10631錯(cuò)誤.Shrink Space有一些限制.

在表上建有函數(shù)索引(包括全文索引)會(huì)失敗。

Sql腳本,改腳本會(huì)生成相應(yīng)的語(yǔ)句

  1. select 'alter table '||table_name||' enable row movement;'||chr(10)||'alter table '||table_name||' shrink space;'||chr(10) from user_tables where ;  
  2. select 'alter index '||index_name||' shrink space;'||chr(10) from user_indexes where uniqueness='NONUNIQUE' ;  
  3. select 'alter table '||segment_name||' modify subpartition '||partition_name||' shrink space;'||chr(10) from user_segments where segment_type='TABLE SUBPARTITION' '; 

Shrink的幾點(diǎn)問(wèn)題:

1. shrink后index是否需要rebuild:因?yàn)閟hrink的操作也會(huì)改變行數(shù)據(jù)的rowid,那么,如果table上有index時(shí),shrink table后index會(huì)不會(huì)變?yōu)閁NUSABLE呢?

我們來(lái)看這樣的實(shí)驗(yàn),同樣構(gòu)建my_objects的測(cè)試表:

  1. create table my_objects tablespace ASSM as select * from all_objects where rownum<20000;  
  2. create index i_my_objects on my_objects (object_id);  
  3. delete from my_objects where object_name like '%C%';  
  4. delete from my_objects where object_name like '%U%'; 

現(xiàn)在我們來(lái)shrink table my_objects:

  1. SQL> alter table my_objects enable row movement;  
  2. Table altered  
  3. SQL> alter table my_objects shrink space;  
  4. Table altered  
  5. SQL> select index_name,status from user_indexes where index_name='I_MY_OBJECTS';  
  6. INDEX_NAME STATUS  
  7. ------------------------------ --------  
  8. I_MY_OBJECTS VALID 

我們發(fā)現(xiàn),table my_objects上的index的狀態(tài)為VALID,估計(jì)shrink在移動(dòng)行數(shù)據(jù)時(shí),也一起維護(hù)了index上相應(yīng)行的數(shù)據(jù)rowid的信息。我們認(rèn)為,這是對(duì)于move操作后需要rebuild index的改進(jìn)。但是如果一個(gè)table上的index數(shù)量較多,我們知道,維護(hù)index的成本是比較高的,shrink過(guò)程中用來(lái)維護(hù)index的成本也會(huì)比較高。

2. shrink時(shí)對(duì)table的lock

在對(duì)table進(jìn)行shrink時(shí),會(huì)對(duì)table進(jìn)行怎樣的鎖定呢?當(dāng)我們對(duì)table MY_OBJECTS進(jìn)行shrink操作時(shí),查詢v$locked_objects視圖可以發(fā)現(xiàn),table MY_OBJECTS上加了row-X (SX) 的lock:

  1. SQL>select OBJECT_ID, SESSION_ID,ORACLE_USERNAME,LOCKED_MODE from v$locked_objects;  
  2. OBJECT_ID SESSION_ID ORACLE_USERNAME LOCKED_MODE  
  3. ---------- ---------- ------------------ -----------  
  4. 55422 153 DLINGER 3  
  5. SQL> select object_id from user_objects where object_name = 'MY_OBJECTS';  
  6. OBJECT_ID  
  7. ----------  
  8. 55422 

那么,當(dāng)table在進(jìn)行shrink時(shí),我們對(duì)table是可以進(jìn)行DML操作的。

3.shrink對(duì)空間的要求

我們?cè)谇懊嬗懻摿藄hrink的數(shù)據(jù)的移動(dòng)機(jī)制,既然oracle是從后向前移動(dòng)行數(shù)據(jù),那么,shrink的操作就不會(huì)像move一樣,shrink不需要使用額外的空閑空間。

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)包的構(gòu)造過(guò)程實(shí)例
  2. Oracle數(shù)據(jù)庫(kù)創(chuàng)建Schema的代碼示例
  3. ORACLE GOLDENGATE的主要組件詳解
  4. Python模擬Oracle的SQL/PLUS工具的實(shí)現(xiàn)方法
  5. Windows7安裝Oracle database lite 10g的錯(cuò)誤解決
責(zé)任編輯:趙鵬 來(lái)源: 網(wǎng)易博客
相關(guān)推薦

2011-03-25 16:10:58

oraclenagios

2011-08-23 18:04:16

Oracle 10g數(shù)據(jù)泵

2010-04-14 16:09:51

Oracle 10g歸

2011-05-13 11:21:51

linuxoracle 10g安裝

2010-04-29 15:50:35

2011-08-29 13:40:12

Oracle 10g創(chuàng)建表空間

2011-07-19 13:28:31

Oracle 10g

2011-08-17 16:52:11

Oracle 10gLogmnr

2011-08-09 13:14:37

Oracle 10g數(shù)據(jù)庫(kù)閃回

2010-04-13 10:07:19

Oracle 10G

2011-08-17 16:28:31

Windows SerOracle 10g

2009-11-19 10:32:41

Oracle 10g服

2010-03-30 19:31:25

Oracle 10g

2011-08-30 15:57:15

Oracle 10gUNDO_RETENT

2011-07-27 14:22:41

Oracle 10g DBA賬戶

2011-08-17 13:49:08

Oracle 10g客PLSQL develop

2011-08-30 15:10:47

Tomcat 6.0Oracle 10g數(shù)據(jù)源連接測(cè)試

2010-09-17 09:39:31

Oracle 10g

2009-11-19 15:57:34

Oracle 10g數(shù)

2011-04-15 09:53:37

Oracle 10gSQL優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美亚洲视频在线观看 | 午夜久久久久久久久久一区二区 | 韩国欧洲一级毛片 | 精品一区免费 | 草草草草视频 | 亚洲高清在线观看 | 黄色骚片 | 国产91精品在线 | 国产精品视频专区 | 日韩精品在线看 | 国产91在线播放精品91 | 一区二区av在线 | 中文字幕二区三区 | 欧美13videosex性极品 | 一级毛片大全免费播放 | 精品成人免费一区二区在线播放 | 在线成人av | 亚洲第一免费播放区 | 免费的黄色片子 | aaa在线观看 | 亚洲视频中文 | 你懂的在线视频播放 | 黄色av网站在线观看 | 亚洲高清视频一区二区 | 日韩在线精品视频 | 色橹橹欧美在线观看视频高清 | 中文字幕专区 | 亚洲午夜精品在线观看 | 在线日韩欧美 | 在线观看第一页 | 在线黄色影院 | 91社区视频 | 国产乱xxav | 国产一区二区三区在线 | 午夜丰满少妇一级毛片 | 一级黄色淫片 | 蜜桃黄网 | 久久小视频 | 久久久精品网站 | 欧美日韩一区二区视频在线观看 | 日韩精品久久一区 |