Oracle 找出需要回收高水位的表
首先是分析表,以得到最準確的統計,
select round((1-a.used/b.num_total)*100,0) percent from
(SELECT COUNT (DISTINCT SUBSTR(rowid,1,15)) Used FROM 表名) a,
(select blocks num_total from dba_tables where table_name='表名 and wner='使用者名稱') b;
通過dba_tables裡的blocks欄位和有資料的欄位做對比,在用1減,求出沒有資料的塊的百分比(一般超過20%就需要回收了)從而判定是否需要回收高水位線,下面是一個回收高水位線的例子:
Shrink是通過事務的方式將資料行從一個資料塊轉移到另一個資料塊。收縮過程中,表仍然可以進行DML操作
當然,事務要能夠進行DML操作,還是需要等待收縮引起的事務鎖釋放。
收縮雖然是事務,但是資料並沒有發生變化,因此不會引起觸發器的觸發。
使用shrink的前提條件
1、表所在的表空間必須使用ASSM(自動段空間管理)
2、在收縮表上必須啟用row movement選項
啟用表的行轉移功能
SQL> alter table test_shrik enable row movement ;
Table altered.
壓縮高水位線
SQL> alter table test_shrik shrink space ;
Table altered.
檢視統計資訊
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 306 0 101835
收集統計資訊
SQL> exec dbms_stats.gather_table_stats('sys','test_shrik');
PL/SQL procedure successfully completed.
再次檢視
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 151 0 99344
高水位線已經下降了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8554499/viewspace-659914/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle回收高水位Oracle
- oracle 回收高水位線Oracle
- oracle回收高水位線Oracle
- Oracle 找出需要建立索引的表Oracle索引
- ORACLE高水位表的查詢方法Oracle
- 大資料表的truncate,列刪除,shrink回收高水位大資料
- Oracle表段中的高水位線HWMOracle
- delete與高水位線HWM回收delete
- oracle表碎片以及整理(高水位線)Oracle
- Oracle高水位Oracle
- oracle 高水位線及如何有效的降低高水位線Oracle
- Oracle 高水位(HWM)Oracle
- oracle的高水位線HWMOracle
- oracle的高水位線(HWM)Oracle
- ORACLE 高水位線(HWM)Oracle
- Oracle 降低高水位線Oracle
- oracle高水位問題Oracle
- 降低Oracle高水位線的方法Oracle
- Oracle的高水位線介紹Oracle
- oracle高水位線處理Oracle
- oracle 高水位分析處理Oracle
- Oracle之降低高水位線Oracle
- oracle 高水位線詳解Oracle
- Oracle 高水位(HWM)標記Oracle
- ORACLE的簡單處理高水位Oracle
- Oracle 高水位線的一點研究Oracle
- 深入瞭解oracle的高水位(HWM)Oracle
- 一、oracle 高水位線詳解Oracle
- 對Oracle高水位線的研究實踐Oracle
- TimesTen記憶體碎片(高水位)回收步驟詳解記憶體
- Oracle資料庫管理——表資料庫高水位及shrink操作Oracle資料庫
- oracle11g表的高水位線hwm與dbms_space系列一Oracle
- Oracle表段中高水位線HWMOracle
- ORACLE資料庫降低高水位線方法Oracle資料庫
- Oracle delete 高水位線處理問題Oracledelete
- Oracle高水位線(HWM)及效能優化Oracle優化
- Oracle案例10——HWM(高水位線)效能優化Oracle優化
- Oracle 表空間回收Oracle