您好,登錄后才能下訂單哦!
--查看數據庫中表空間詳細使用情況
SELECT A.TABLESPACE_NAME "表空間名",
A.TOTAL_SPACE "總空間(M)",
NVL(B.FREE_SPACE, 0) "剩余空間(M)",
A.TOTAL_SPACE - NVL(B.FREE_SPACE, 0) "使用空間(M)",
trunc(NVL(B.FREE_SPACE, 0) / A.TOTAL_SPACE * 100, 2) "剩余百分比%"
FROM (SELECT TABLESPACE_NAME,
trunc(SUM(BYTES) / 1024 / 1024, 2) TOTAL_SPACE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME,
trunc(SUM(BYTES / 1024 / 1024), 2) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)
ORDER BY 5;
--查看某一個表空間內表和分區表的使用情況:以BOSSNM_PERF_DATA表空間為例
select segment_name,segment_type,round(sum(bytes)/1024/1024/1024,4) from dba_segments
where tablespace_name =upper('BOSSNM_PERF_DATA')
group by segment_name,segment_type order by sum(bytes) desc
--查看某一個表空間內表和分區表的使用情況:以BOSSNM_INFO表空間為例
select segment_name,segment_type,round(sum(bytes)/1024/1024/1024,4) from dba_segments
where tablespace_name =upper('BOSSNM_INFO')
group by segment_name,segment_type order by sum(bytes) desc
利用pkp_tools_orz包 清理分區表
--查詢BOSSNM_INFO表空間內 各表的使用情況
begin
pkp_tools_orz.AUTO_CLEAR_PARTITIONTABLES('BOSSNM_INFO',0);
end;
--查詢結果在表使用情況結果存在CLEAR_SPACE_TEMP臨時表內
select * from CLEAR_SPACE_TEMP
--清理表的語句在CLEAR_SPACE_TEMP表的clear_sql字段內復制下來,在command窗口下執行清理
--例下面3種不同清理格式分別是: 帶有全局索引的分區表、帶有局部索引的分區表、不帶索引的表。
alter table NE_ALARM_MSG truncate partition PART_1311 update global indexes;
alter table CTNBC_TRAN_DATA_008 truncate partition PART_201610;
truncate table INFO_JT_SR_40200023
--查看該表的索引狀態,在user_indexes 中的status字段內N/A表示局部 、VALID表示全局
--例查詢表分區為CTNBC_TRAN_DATA_008_NEW的索引,及status.
select * from user_indexes where table_name='CTNBC_TRAN_DATA_008_NEW';
--清理結束,查詢索引是否正常
--例查看索引名INFO_JT_MID_MSG_ALL_DTL_01的索引,表內status字段顯示usable表示正常.
select * from Dba_ind_partitions where index_name='INFO_JT_MID_MSG_ALL_DTL_01' ;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。