1. 查看所有表空間大小
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
group by tablespace_name;
2. 未使用的表空間大小
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
group by tablespace_name;
3. 所以使用空間可以這樣計算
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;
4. 下面這條語句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
5. 還有在命令行情況下如何將結果放到一個文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off
6.如何查看oracle臨時表空間當前使用了多少空間的大小?
不是占用量,是當前正在使用的臨時表空間大小
SELECT SE.USERNAME,
SE.SID,
SU.EXTENTS,
SU.BLOCKS * TO_NUMBER(RTRIM(P.VALUE)) AS SPACE,
TABLESPACE,
SEGTYPE,
SQL_TEXT
FROM V$SORT_USAGE SU, V$PARAMETER P, V$SESSION SE, V$SQL S
WHERE P.NAME = 'db_block_size'
AND SU.SESSION_ADDR = SE.SADDR
AND S.HASH_VALUE = SU.SQLHASH
AND S.ADDRESS = SU.SQLADDR
ORDER BY SE.USERNAME, SE.SID;
查詢所有的表空間
select tablespace_name from dba_tablespaces
查看表空間中分布的用戶信息
select tablespace_name, owner,sum(bytes) from dba_segments
group by tablespace_name, owner
增加表空間大小的四種方法
Meathod1:給表空間增加數據文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
Meathod2:新增數據文件,並且允許數據文件自動增長
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允許已存在的數據文件自動增長
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改變已存在數據文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;