我们今天主要描述Oracle查看表空间使用情况,愿在你学习Oracle查看表空间中以起到抛砖引玉的作用。如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。以下就是正文的就介绍。
SELECT df.tablespace_name "表空间",
(df.totalspace - NVL(fs.freespace, 0)) "已使用(MB)",
NVL(fs.freespace, 0) "剩余(MB)",
df.totalspace "合计(MB)",
ROUND(100 * (1 - NVL(fs.freespace, 0) / df.totalspace), 2) "使用率(%)"
- FROM (SELECT tablespace_name, ROUND(SUM(bytes) / 1048576) totalspace
- FROM dba_data_files
- GROUP BY tablespace_name) df,
- (SELECT tablespace_name, ROUND(SUM(bytes) / 1048576) freespace
- FROM dba_free_space
- GROUP BY tablespace_name) fs
- WHERE df.tablespace_name = fs.tablespace_name(+)
- ORDER BY 5 DESC;
- /*
Oracle查询表空间是否需压缩.SQL
rem 由于自由空间碎片是由几部分组成,如范围数量、***范围尺寸等,我们可用FSFI--Free Space Fragmentation Index(自由空间碎片索引)值来直观体现
rem 可以将表空间的缺省存储参数pctincrease改为非0。一般将其设为1, 这样SMON便会将自由范围自动合并。也可以手工合并自由范围
- rem FSFI Value Compute
- column FSFI format 999,99
- */
- select tablespace_name,sqrt(max(blocks)/sum(blocks))
*(100/sqrt(sqrt(count(blocks)))) FSFI- from dba_free_space
- group by tablespace_name order by FSFI desc;
上述的相关内容就是对 Oracle查看表空间使用情况的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】