注册
DM表空间和数据文件使用情况查询及验证
技术分享/ 文章详情 /

DM表空间和数据文件使用情况查询及验证

山水清音 2023/08/22 2443 0 0

一、表空间使用查询DM7已验证,DM8可执行。

1.DM7 DROP表前表空间使用情况(已使用、未使用、已分配单位:G):

1.jpg

2.DM7 DROP表后新建会话查询表空间使用情况(已使用、未使用、已分配单位:G):

2.jpg

3.查询语句:

SELECT
F.TABLESPACE_NAME AS "表空间名称" ,
ROUND((T.TOTAL_SPACE - F.FREE_SPACE) / 1024, 2)AS "已使用" ,
ROUND(F.FREE_SPACE / 1024, 2) AS "未使用" ,
ROUND(T.TOTAL_SPACE / 1024, 2) AS "已分配" ,
CASE WHEN T.TOTAL_SPACE == 0 THEN '' ELSE
(ROUND((F.FREE_SPACE / T.TOTAL_SPACE), 4)* 100) || '% ' END "空闲率",
CASE WHEN T.TOTAL_SPACE == 0 THEN '' ELSE
(ROUND((T.TOTAL_SPACE - F.FREE_SPACE) / T.TOTAL_SPACE, 4) * 100)||'%' END "使用率"
FROM
(
SELECT
TABLESPACE_NAME,
ROUND(SUM(BLOCKS *
(
SELECT PARA_VALUE / 1024 FROM V$DM_INI WHERE PARA_NAME = 'GLOBAL_PAGE_SIZE'
)
/ 1024)) FREE_SPACE
FROM
DBA_FREE_SPACE
GROUP BY
TABLESPACE_NAME
)
F,
(
SELECT
TABLESPACE_NAME,
ROUND(SUM(BYTES / 1048576)) TOTAL_SPACE
FROM
DBA_DATA_FILES
GROUP BY
TABLESPACE_NAME
)
T,
(
SELECT
TABLESPACE_NAME,
ROUND(SUM(MAXBYTES / 1048576)) TOTAL_MAX_SPACE
FROM
DBA_DATA_FILES
GROUP BY
TABLESPACE_NAME
)
H
WHERE
F.TABLESPACE_NAME = T.TABLESPACE_NAME
AND F.TABLESPACE_NAME =H.TABLESPACE_NAME;

二、数据文件使用查询DM7已验证,DM8可执行。

1.DM7 DROP表后新建会话查询数据文件使用情况:

3.jpg

2.DM7 DROP表前数据文件使用情况:

4.jpg

3.查询语句:

SELECT SUBSTR(PATH, INSTR(PATH, '/', -1)+1) AS "文件路径" ,
TO_CHAR(TOTAL_SIZE*PAGE/1024/1024) AS "文件大小(MB)",
TO_CHAR(FREE_SIZE PAGE/1024/1024) AS "剩余大小(MB)",
(TO_CHAR(100 -FREE_SIZE
100/TOTAL_SIZE)) AS "使用比例" ,
CASE AUTO_EXTEND WHEN '0' THEN '未开启' WHEN '1' THEN '已开启' END AS "自动扩展" ,
NEXT_SIZE AS "扩充尺寸(MB)",
MAX_SIZE AS "扩充上限(MB)"
FROM
V$DATAFILE;

三、不同情况的下释放空间的程度:

1.如下测试环境几种操作TESTSPACE表空间使用情况:

从测试环境测试结果显示,DROP表时复用空间率最高,下来是TRUNCATE,接下来是DELETE操作;从已分配结果显示, DROP、TRUNCATE、DELETE操作不影响已分配大小,只影响已使用、未使用、空闲率和使用率。
5.jpg

2. 如下测试环境几种操作TESTSPACE表空间数据文件使用情况:

从测试环境测试结果显示,只要老数据文件还有空闲就不会往新数据文件中去写,优先写有空闲的老数据文件。
6.jpg
如上情况供参考。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服