Oracle 查看表空间与数据文件信息方法 |
发表者:admin分类:数据库2022-03-29 15:12:14 阅读[494] |
Oracle 查看表空间与数据文件信息方法
1,Oracle查看表空间信息方法,采用Toad软件的SQL。
效果图如下:
SQL内容如下:
select a.tablespace_name,
round(a.bytes_alloc / 1024 / 1024) megs_alloc,
round(nvl(b.bytes_free, 0) / 1024 / 1024) megs_free,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024) megs_used,
round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100) Pct_Free,
100 - round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100) Pct_used,
round(maxbytes/1048576) Max,
c.status, c.contents
from ( select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible, 'YES',f.maxbytes,'NO', f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
( select f.tablespace_name,
sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b,
dba_tablespaces c
where a.tablespace_name = b.tablespace_name (+)
and a.tablespace_name = c.tablespace_name
union all
select h.tablespace_name,
round(sum(h.bytes_free + h.bytes_used) / 1048576) megs_alloc,
round(sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / 1048576) megs_free,
round(sum(nvl(p.bytes_used, 0))/ 1048576) megs_used,
round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / sum(h.bytes_used + h.bytes_free)) * 100) Pct_Free,
100 - round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / sum(h.bytes_used + h.bytes_free)) * 100) pct_used,
round(sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes) / 1048576)) max,
c.status, c.contents
from sys.v_$TEMP_SPACE_HEADER h,
sys.v_$Temp_extent_pool p,
dba_temp_files f,
dba_tablespaces c
where p.file_id(+) = h.file_id
and p.tablespace_name(+) = h.tablespace_name
and f.file_id = h.file_id
and f.tablespace_name = h.tablespace_name
and f.tablespace_name = c.tablespace_name
group by h.tablespace_name, c.status, c.contents
ORDER BY 1
2,查看数据文件信息,采用Toad软件的SQL。
效果图如下:
可以根据需要选择字段,SQL如下:
SELECT t.tablespace_name, 'Datafile' file_type,
t.status tablespace_status, d.status file_status,
d.bytes - NVL(f.sum_bytes, 0) used_bytes,
NVL(f.sum_bytes, 0) free_bytes, t.initial_extent,
t.next_extent, t.min_extents, t.max_extents, t.pct_increase,
d.file_name, d.file_id, d.autoextensible, d.maxblocks,
d.maxbytes, nvl(d.increment_by,0) increment_by, t.block_size
FROM (SELECT tablespace_name, file_id, SUM(bytes) sum_bytes
FROM DBA_FREE_SPACE
GROUP BY tablespace_name, file_id) f,
DBA_DATA_FILES d,
DBA_TABLESPACES t
WHERE t.tablespace_name = d.tablespace_name
AND f.tablespace_name(+) = d.tablespace_name
AND f.file_id(+) = d.file_id
GROUP BY t.tablespace_name, d.file_name, d.file_id, t.initial_extent,
t.next_extent, t.min_extents, t.max_extents,
t.pct_increase, t.status, d.bytes, f.sum_bytes, d.status,
d.AutoExtensible, d.maxblocks, d.maxbytes, d.increment_by, t.block_size
UNION ALL
SELECT h.tablespace_name,
'Tempfile',
ts.status,
t.status,
SUM(NVL(p.bytes_used, 0)),
SUM((h.bytes_free + h.bytes_used) - NVL(p.bytes_used, 0)),
-1, -- initial extent
-1, -- initial extent
-1, -- min extents
-1, -- max extents
-1, -- pct increase
t.file_name,
t.file_id,
t.autoextensible, t.maxblocks, t.maxbytes, nvl(t.increment_by, 0) increment_by, ts.block_size
FROM sys.V_$TEMP_SPACE_HEADER h, sys.V_$TEMP_EXTENT_POOL p, sys.DBA_TEMP_FILES t, sys.dba_tablespaces ts
WHERE p.file_id(+) = h.file_id
AND p.tablespace_name(+) = h.tablespace_name
AND h.file_id = t.file_id
AND h.tablespace_name = t.tablespace_name
and ts.tablespace_name = h.tablespace_name
GROUP BY h.tablespace_name, t.status, t.file_name, t.file_id, ts.status,
t.autoextensible, t.maxblocks, t.maxbytes, t.increment_by, ts.block_size
ORDER BY 1, 5 DESC
转载请标明出处【Oracle 查看表空间与数据文件信息方法】。
《www.micoder.cc》
虚拟化云计算,系统运维,安全技术服务.
Tags: | [阅读全文...] |
最新评论