注册

表存储空间疑问?

sanynkc 2024/01/22 586 3 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:银河麒麟
【CPU】: amd R7 5800H
【问题描述】*: 表空间的空间分配情况、还有表的segment分配情况、簇的分配情况,查询数据不对应,因此疑惑。

查看表空间语句:
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;

结果:

行号 表空间名称 已使用 未使用 已分配 空闲率 使用率


1 MAIN 0 0.12 0.13 98.44% 1.56%
2 tb_test 3.07 0.04 3.11 1.19% 98.81%
3 tb_test2 0 0.1 0.1 100% 0%
4 SYSTEM 0.02 0.05 0.07 72.97% 27.03%
5 ROLL 0.03 0.09 0.13 73.44% 26.56%
6 TEMP 0 1 1 99.9% 0.1%

6 rows got
其中tb_test使用3G空间。
查看segment语句:
SQL> select SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,EXTENTS,BLOCKS,BYTES/1024/1024 from user_segments;

行号 SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME EXTENTS BLOCKS BYTES/1024/1024


1 ind1 INDEX tb_test 10741 171856 1342
2 tmov TABLE tb_test 14197 227152 1774

已用时间: 15.464(毫秒). 执行号:1202.
SQL>
查看tmov和索引占用空间为1.7G和1.3G

查看extents语句:

SQL> select OWNER,SEGMENT_NAME,TABLESPACE_NAME,EXTENT_ID,FILE_ID,BLOCK_ID,BLOCKS,BYTES/1024 from dba_extents where segment_name='TMOV';

行号 OWNER SEGMENT_NAME TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BLOCKS BYTES/1024


1 YCQ tmov tb_test 1 0 16 16 128
2 YCQ tmov tb_test 266 0 4256 16 128
3 YCQ tmov tb_test 541 0 8656 16 128
4 YCQ tmov tb_test 870 0 13920 16 128
5 YCQ tmov tb_test 1525 0 24400 16 128
6 YCQ tmov tb_test 2174 0 34784 16 128
7 YCQ tmov tb_test 2814 0 45024 16 128
8 YCQ tmov tb_test 3975 0 63600 16 128
9 YCQ tmov tb_test 4636 0 74176 16 128
10 YCQ tmov tb_test 5294 0 84704 16 128
11 YCQ tmov tb_test 6453 0 103248 16 128
12 YCQ tmov tb_test 7086 0 113376 16 128
13 YCQ tmov tb_test 7744 0 123904 16 128
14 YCQ tmov tb_test 8403 0 134448 16 128
15 YCQ tmov tb_test 1204 1 19264 16 128
16 YCQ tmov tb_test 1818 1 29088 16 128
17 YCQ tmov tb_test 2982 1 47712 16 128
18 YCQ tmov tb_test 3643 1 58288 16 128
19 YCQ tmov tb_test 4307 1 68912 16 128
20 YCQ tmov tb_test 5441 1 87056 16 128
21 YCQ tmov tb_test 6099 1 97584 16 128
22 YCQ tmov tb_test 6757 1 108112 16 128
23 YCQ tmov tb_test 7406 1 118496 16 128
24 YCQ tmov tb_test 1988 2 31808 16 128
25 YCQ tmov tb_test 2651 2 42416 16 128
26 YCQ tmov tb_test 3306 2 52896 16 128
27 YCQ tmov tb_test 4453 2 71248 16 128
28 YCQ tmov tb_test 5111 2 81776 16 128
29 YCQ tmov tb_test 5770 2 92320 16 128
30 YCQ tmov tb_test 7562 2 120992 16 128
31 YCQ tmov tb_test 8116 2 129856 2 16

31 rows got

已用时间: 18.385(毫秒). 执行号:1203.
查看簇的分配情况,每个extent才128K,一共才31个簇,如何对应1.7G空间。

其中dba_extents的作用,还有如何查看簇的分布情况。
当有多个数据文件时,簇是否均衡的分布在数据文件上?

回答 0
暂无回答
扫一扫
联系客服