oracle數據庫全庫壓縮操作步驟


1、查看當前用戶下數據庫對象大小
select sum(bytes)/1024/1024/1024 from user_segments ;

SUM(BYTES)/1024/1024/1024
-------------------------
301.600098

2、查看當前用戶下表的大小
select sum(bytes)/1024/1024/1024 from user_segments where segment_type like 'TABLE%';

SUM(BYTES)/1024/1024/1024
-------------------------
170.064697

3、查看當前用戶下有哪些索引
select index_name from user_indexes;

4、查看當前用戶下索引狀態

1)非分區索引
select index_name,status from user_indexes where status<>'N/A';
2)分區索引
select distinct i.index_name,i.status,ip.status
from user_indexes i
left join user_ind_partitions ip
on i.index_name=ip.index_name
where i.status='N/A'
;


5、查看每個對象大小
select segment_name, sum(bytes)/1024/1024/1024 from user_segments where segment_type like 'TABLE%' group by segment_name order by 2 desc;

6、生成表壓縮語句

set pagesize 0
set long 999999
set long 600

1) 生成非分區表的壓縮語句
select 'alter table ' ||segment_name||' move compress;', sum(bytes)/1024/1024/1024 from user_segments where segment_type ='TABLE' group by segment_name order by 2 desc;

2)分區表(本庫中只有一級分區)的壓縮語句
select segment_name, sum(bytes)/1024/1024/1024 from user_segments where segment_type ='TABLE PARTITION' group by segment_name order by 2 desc;
i)一個分區表一個分區表的壓縮:--有位圖索引的會壓縮失敗
select 'alter table '||table_name||' move partition '||partition_name ||' compress for all operations;' from USER_TAB_PARTITIONS
where table_name in (select segment_name from user_segments where segment_type ='TABLE PARTITION' )
and compression='DISABLED'
and min_extent>=1
order by partition_name
;

7 重建索引
select 'alter index '||index_name||' rebuild parallel 4;' from user_indexes where status='UNUSABLE';

8 檢查分區表索引的狀態


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM