1. 表空間查詢:
select a.tablespace_name "表空間名"
,total /
(1024
*1024
)"表空間大小(m)"
,free /
(1024
*1024
)"表空間剩餘大小(m)"
,(total - free)/(
1024
*1024
)"表空間使用大小(m)"
,round
((total - free)
/ total,4)
*100
"使用率 %"
from
(select tablespace_name,
sum(bytes) free
from dba_free_space
group
by tablespace_name) a,
(select tablespace_name,
sum(bytes) total
from dba_data_files
group
by tablespace_name) b
where a.tablespace_name = b.tablespace_name
2. 臨時表temp查詢
select temp_used.tablespace_name,
total - used as
"free"
, total as
"total"
,round
(nvl(total - used,0)
*100
/ total,3)
"free percent"
from
(select tablespace_name,
sum(bytes_used)
/1024
/1024 used
from **_$temp_space_header
group
by tablespace_name) temp_used,
(select tablespace_name,
sum(bytes)
/1024
/1024 total
from dba_temp_files
group
by tablespace_name) temp_total
where temp_used.tablespace_name = temp_total.tablespace_name;
select tablespace_name,
round
(tablespace_size /
1024
/1024
/1024,2
)as total,
round
(free_space /
1024
/1024
/1024,2
)as free,
round
((tablespace_size - free_space)
/1024
/1024
/1024,2
) used_size,
round
(nvl(free_space,0)
*100
/ tablespace_size,3)
||'%' pct_free
from dba_temp_free_space;
每張表都是作為「段」來儲存的,可以通過user_segments檢視檢視其相應資訊。user_segments 包含的關鍵字段及含義:段(segments)的定義:如果建立乙個堆組織表,則該錶就是乙個段。
segment_name 段名,列出所有表名,索引名等
segment_type 段型別,如table, index等
table_sapce 表空間名字
bytes 位元組,分配給段的物理空間大小
例:查詢某使用者的資料使用情況
--在該使用者下執行以下sql語句
select b.segment_name "段名"
, b.segment_type "段型別"
, b.bytes "段大小g"
,tablespace_name "所屬表空間"
from (select segment_name,
segment_type,tablespace_name,
round
(sum
(bytes)
/1024
/1024
/1024,2
) bytes
from user_segments a
group
by a.segment_name, segment_type,tablespace_name)b
where b.bytes >=
0.5order
by bytes desc
擴充套件:若物件是索引,列出索引所屬的表
with b as
(select segment_name,
segment_type,
tablespace_name,
round
(sum
(bytes)
/1024
/1024
/1024,2
) bytes
from user_segments a
group
by a.segment_name,
segment_type,
tablespace_name),
c as
(select
distinct index_name, table_name from user_ind_columns)
select b.segment_name "段名"
, b.segment_type "段型別"
, c.table_name "表名"
, b.bytes "段大小g"
, tablespace_name "所屬表空間"
from b
left
join c
on b.segment_name = c.index_name
where b.bytes >=
0.5order
by b.bytes desc
dba_segments 包含的關鍵字段及含義:
segment_name 段名,列出所有表名,索引名等
segment_type 段型別,如table, index等
table_sapce 表空間名字
bytes 位元組,分配給段的物理空間大小
--需要dba許可權
select b.segment_name "段名"
, b.segment_type "段型別"
, b.bytes "段大小g"
,tablespace_name "所屬表空間"
from (select segment_name,
segment_type,tablespace_name,
round
(sum
(bytes)
/1024
/1024
/1024,2
) bytes
from dba_segments a
where tablespace_name=
'ipnet'
group
by a.segment_name, segment_type,tablespace_name)b
where b.bytes >=
0.5order
by bytes desc
oracle檢視表空間使用大小和擴充套件表空間
1.檢視所有表空間大小 select tablespace name,sum bytes 1024 1024 from dba data files group by tablespace name 2.已經使用的表空間大小 select tablespace name,sum bytes 1024...
檢視 Oracle 表空間使用率
1 用到了 sys.dba free space sys.dba data files 兩個檢視,需要被賦予在這兩個檢視物件上的查詢許可權。connect as sysdba grant select on sys.dba free space to forrest grant select on ...
表空間使用率
檢視表空間名稱 大小 使用大小 剩餘大小和使用率 select a.tablespace name 表空間名稱 total 1024 1024 表空間大小 m free 1024 1024 表空間剩餘大小 m total free 1024 1024 表空間使用大小 m total 1024 102...