表空間查詢和管理
紅色是自由指定的~~
--查詢表空間
SELECT D.TABLESPACE_NAME,
SPACE "SUM_SPACE(M)",
SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",
ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",
FREE_SPACE "FREE_SPACE(M)",
MAX_SPACE,
ROUND(((SPACE - NVL(FREE_SPACE, 0)) / MAX_SPACE) * 100, 2) "USED_RATE_MAX_SIZE(%)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
ROUND(SUM(DECODE(SIGN(MAXBYTES - BYTES), 1, MAXBYTES, BYTES)) / 1024 / 1024,
2) MAX_SPACE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
UNION ALL
SELECT D.TABLESPACE_NAME,
SPACE "SUM_SPACE(M)",
SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",
ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",
FREE_SPACE "FREE_SPACE(M)",
MAX_SPACE,
ROUND(((SPACE - NVL(FREE_SPACE, 0)) / MAX_SPACE) * 100, 2) "USED_RATE_MAX_SIZE(%)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
ROUND(SUM(DECODE(SIGN(MAXBYTES - BYTES), 1, MAXBYTES, BYTES)) / 1024 / 1024,
2) MAX_SPACE
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
------------------------------------------
--檢視錶空間屬性--
SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME and T.TABLESPACE_NAME='DATA'
ORDER BY TABLESPACE_NAME,FILE_NAME;
--新增資料檔案
ALTER TABLESPACE DATA ADD DATAFILE '/data/data01.dbf' SIZE 8192M;
--修改資料檔案大小(儘量避免改小,貌似有HWM的問題,要修改的話,貌似先整理表空間碎片?)
ALTER DATABASE DATAFILE '/data/data_01.dbf' RESIZE 8192M;
--為了防止把硬碟撐爆,關閉自動擴充比較好。
ALTER DATABASE DATAFILE '/data/data_01.dbf' AUTOEXTEND OFF;
-------------------------------------
----釋放磁碟空間-----
--首先用語句查詢容量大於1G的資料段
select segment_name,sum(bytes)/1024/1024/1024 as GB from dba_segments group by segment_name having sum(bytes)/1024/1024/1024>1
/*得到如下結果:
SYS_LOB0000136091C00003$$ 255332M
SYS_LOB0000136441C00004$$ 7170M
SYS_C0082042 1305M
SYS_C0080433 1340M*/
--根據LOB段查詢該該lob段屬於哪個表
select table_name,segment_name from dba_lobs where segment_name='SYS_LOB0000136091C00003$$'
/*經查得知是ADU_*表佔了很多容量
3.用Dbvisulizer/plsql連到資料庫,刪除重複的資料行,但刪除這些重複的資料後,並不會釋放出磁碟空間
4.然後釋放lob型別資料佔據的空間*/
alter table adu_* move tablespace BFPICK lob(content) store as (tablespace bfpick)
--之後就釋放了重複資料所佔的空間了,然後在對該表重建索引
alter index ***** rebuild;
----------------------------------------
--查詢程式數/操作使用者--
select count(*) from v$process
select value from v$parameter where name = 'processes'
SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc
-----------------------------------------
--清理分割槽表
ALTER TABLE table_1 truncate PARTITION PART_201303;
ALTER TABLE table_1 DROP PARTITION PART_201303;
ALTER TABLE table_1 truncate PARTITION PART_201304;
ALTER TABLE table_1 DROP PARTITION PART_201304;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29510932/viewspace-1096957/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle表空間查詢Oracle
- 表空間大小查詢
- 表空間查詢資訊
- 臨時表空間和回滾表空間使用率查詢
- 查詢表空間已使用空間和空閒空間的簡單檢視
- 表空間相關查詢
- 查詢表空間的大小和使用率
- oracle 表空間,臨時表空間使用率查詢Oracle
- oracle查詢表空間的空間佔用情況Oracle
- 表空間使用量查詢
- 查詢表空間使用情況
- Oracle查詢表佔磁碟空間大小及移動表空間Oracle
- 臨時表空間的空間使用情況查詢
- oracle表空間使用率查詢Oracle
- Oracle 表空間查詢相關sqlOracleSQL
- Oracle查詢表空間使用情況Oracle
- 查詢表空間的使用率
- ORACLE查詢所有表空間使用情況Oracle
- 查詢表空間中的extent數量
- 查詢表空間是否具備自動擴充套件空間套件
- Oracle 查詢表大小以及表空間使用率Oracle
- Oracle查詢表空間的每日增長量Oracle
- 查詢表空間使用情況的指令碼指令碼
- mysql 資料庫或者表空間使用查詢MySql資料庫
- 查詢使用表空間的TABLE,INDEX,INDEX SUBPARTITIONIndex
- 有關表空間查詢的sql指令碼SQL指令碼
- Oracle下查詢臨時表空間佔用率Oracle
- 查詢表的大小及表空間的使用情況
- mysql 查詢undo空間MySql
- 空間修改及查詢
- 達夢資料庫表空間等空間大小查詢方法總結資料庫
- 將字典管理表空間轉換為本地管理表空間
- 臨時表空間被佔滿的原因查詢
- 表空間使用情況查詢慢的處理
- Oracle 表空間利用率及物件大小查詢Oracle物件
- Oracle查詢表空間使用情況(經典篇)Oracle
- oracle 查詢表空間使用率的語句Oracle
- Oracle表空間管理Oracle