oracle表空間的整理
--檢視錶空間使用情況
SELECT UPPER(F.TABLESPACE_NAME)"表空間名", D.TOT_GROOTTE_MB "表空間大小(M)", D.TOT_GROOTTE_MB-F.TOTAL_BYTES "已使用空間(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB-F.TOTAL_BYTES)/D.TOT_GROOTTE_MB*100,2),'990.99')||'%'"使用比", F.TOTAL_BYTES "空閒空間(M)", F.MAX_BYTES "最大塊(M)" FROM(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/(1024*1024),2)TOTAL_BYTES, ROUND(MAX(BYTES)/(1024*1024),2)MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME)F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES)/(1024*1024),2)TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME)D WHERE D.TABLESPACE_NAME=F.TABLESPACE_NAME ORDER BY 1
--檢查表空間資料檔案佔用
select b.file_name 物理檔名, b.tablespace_name 表空間, b.bytes/1024/1024大小M, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.bytes order by b.tablespace_name;
-- 檢視錶空間高水位線的位置
只有表空間高水位線上的才能回收。
SELECT 'alter database datafile ''' || a.file_name || ''' resize ' || round( a.filesize - ( a.filesize - c.hwmsize - 100 ) * 0.8 ) || 'M;', a.filesize, c.hwmsize FROM ( SELECT file_id, file_name, round( bytes / 1024 / 1024 ) filesize FROM dba_data_files ) a, ( SELECT file_id, round( max( block_id ) * 8 / 1024 ) HWMsize FROM dba_extents GROUP BY file_id ) c WHERE a.file_id = c.file_id AND a.filesize - c.hwmsize > 100
--檢視資料檔案裡面段的分佈情況
主要關注資料檔案的外緣存的是什麼
SELECT * FROM ( SELECT owner, segment_name, segment_type, EXTENT_ID, file_id, block_id FROM dba_extents WHERE file_id = ( SELECT file_id FROM dba_data_files WHERE file_name = '/u01/app/oracle/oradata/orcl/users01.dbf' ) ORDER BY block_id DESC )
-- 檢視錶空間高水位線
SELECT 'alter database datafile ''' || a.file_name || ''' resize ' || round( a.filesize - ( a.filesize - c.hwmsize - 100 ) * 0.8 ) || 'M;', a.filesize, c.hwmsize FROM ( SELECT file_id, file_name, round( bytes / 1024 / 1024 ) filesize FROM dba_data_files ) a, ( SELECT file_id, round( max( block_id ) * 8 / 1024 ) HWMsize FROM dba_extents GROUP BY file_id ) c WHERE a.file_id = c.file_id AND a.filesize - c.hwmsize > 100
--檢視錶初始化大小和實際大小
SELECT owner, TABLE_NAME, initial_extent / 1048576 表初始化大小_MB, num_rows * avg_row_len / 1048576 表實際大小_MB, tablespace_name FROM dba_tables WHERE owner = 'HIS_TEST' AND initial_extent IS NOT NULL ORDER BY initial_extent DESC
-- 修改表初始化大小並移動到其他表空間
SELECT 'alter table ' || owner || '.' || table_name || 'move tablespace ' || tablespace_name || 'storage(initial 64k next 32k);' FROM dba_tables WHERE owner = 'HIS_TEST' AND initial_extent > 65536
--收集表統計資訊
exec dbms_stats.gather_table_stats(ownname=>'HIS_TEST',tabname=>'MW_OUTSHEETS_DETAILS');
--修改索引初始化大小並移動到其他表空間
SELECT 'ALTER INDEX ' || owner || '.' || index_name || ' REBUILD tablespace ' || tablespace_name || ' STORAGE(INITIAL 64K NEXT 32K);' FROM dba_indexes WHERE owner = 'HIS_TEST' AND initial_extent > 65536;
--修改分割槽表初始化大小並移動到其他表空間
SELECT 'ALTER table ' || table_owner || '.' || table_name || ' MOVE PARTITION ' || PARTITION_NAME || ' STORAGE(INITIAL 64K NEXT 32K);' FROM DBA_tab_PARTITIONS WHERE table_owner = 'HIS_TEST' AND initial_extent > 65536;
--修改分割槽索引初始化大小並移動到其他表空間
SELECT 'ALTER INDEX ' || index_owner || '.' || index_name || ' REBUILD PARTITION ' || PARTITION_NAME || ' STORAGE(INITIAL 64K NEXT 32K);' FROM DBA_ind_PARTITIONS WHERE index_owner = 'HIS_TEST' AND initial_extent > 65536;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2683544/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE表空間的碎片整理Oracle
- Oracle - 回滾表空間 Undo 的整理Oracle
- Oracle 整理表碎片、釋放表的空間Oracle
- Oracle表空間Oracle
- oracle 表空間Oracle
- Oracle 表空間的管理Oracle
- Oracle 表空間 的操作Oracle
- ORACLE的SYSAUX 表空間OracleUX
- ORACLE的SYSTEM 表空間Oracle
- Oracle的表空間管理Oracle
- Oracle的邏輯結構(表空間、段、區間、塊)——表空間Oracle
- oracle temp 表空間Oracle
- 增加oracle表空間Oracle
- oracle undo 表空間Oracle
- oracle users 表空間Oracle
- Oracle表空間管理Oracle
- oracle建立表空間Oracle
- Oracle 表空間管理Oracle
- oracle表空間操作Oracle
- ORACLE MOVE表空間Oracle
- ORACLE表空間概述Oracle
- Oracle表空間命令Oracle
- Oracle 表空間回收Oracle
- oracle的臨時表空間Oracle
- oracle本地管理的表空間Oracle
- oracle查詢表空間的空間佔用情況Oracle
- Oracle表移動表空間Oracle
- oracle 表移動表空間Oracle
- Oracle 批量建表空間Oracle
- Oracle清理SYSAUX表空間OracleUX
- Oracle undo 表空間管理Oracle
- oracle表空間查詢Oracle
- Oracle 表空間傳輸Oracle
- oracle重建UNDO表空間Oracle
- oracle 臨時表空間Oracle
- Oracle各種表空間Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle