您的位置:首页 > 数据库 > Oracle

oracle 表空间维护

2011-09-26 19:27 288 查看
检查表空间大小,如果有表空间超过80%,则需要清理或扩展。查询语句:

SELECT df.tablespace_name "Tablespace",

df.bytes / (1024 * 1024) "Total Size(MB)",

SUM(fs.bytes) / (1024 * 1024) "Free Size(MB)",

round(SUM(fs.bytes) * 100 / df.bytes) "% Free",

round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used",

ROUND(100 * SQRT(MAX(fs.bytes) / SUM(fs.bytes)) * (1 / SQRT(SQRT(COUNT(fs.bytes)))), 2) "% FSFI"

FROM dba_free_space fs,

(SELECT tablespace_name,

SUM(bytes) bytes

FROM dba_data_files

GROUP BY tablespace_name) df

WHERE fs.tablespace_name = df.tablespace_name

GROUP BY df.tablespace_name,

df.bytes

注意:

如果从检查结果看,是UNDO表空间占用高,需要用下面语句再次查询,如果EXPIRED足够,UNDO空间就没有问题:

SELECT DISTINCT STATUS, SUM(BYTES), COUNT(*) FROM DBA_UNDO_EXTENTS GROUP BY STATUS;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: