您好,登錄后才能下訂單哦!
數(shù)據(jù)庫運行了一段時間,經(jīng)過一些列的刪除、插入、更改操作有些表的高水位線就有可能和實際的表存儲數(shù)據(jù)的情況相差特別多,為了提高檢索該表的效率,建議對這些表進行收縮;
表的存儲結構;
從統(tǒng)計信息得出平均每行的長度和總共的行數(shù),從而知道存儲的SIZE;
c) 查找數(shù)據(jù)庫中某個表空間下,可以實際存儲和需要的表空間差別最大的表,查找腳本如下:
SELECT NUM_ROWS,AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9 NEED, BLOCKS*8/1024 TRUE,(BLOCKS*8/1024-AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9) RECOVER_MB,TABLE_NAME
FROM dba_tables
WHERE tablespace_name='PSAPSR3' AND BLOCKS*8/1024-AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9>100
AND rownum<11 order by RECOVER_MB desc;
因為所有的信息都是根據(jù)dba_tables,表的信息是根據(jù)統(tǒng)計信息得到的,所以如果統(tǒng)計信息不準確,那么整個搜索的結果都可能是錯誤的;
統(tǒng)計信息的腳本:exec dbms_stats.gather_table_stats('user','table_name');
a) 啟動行遷移:alter table table_name enable row movement ;
b)進行表的收縮:alter table table_name shrink space ;
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
from user_tables
where table_name = upper('table_name');
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本文作者:JOHN
ORACLE技術博客:ORACLE 獵人筆記 數(shù)據(jù)庫技術群:367875324 (請備注ORACLE管理 )
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。