达梦数据库查看对象的存储空间信息

达梦数据库为了展示所有物理对象(文件、页)和逻辑对象(表空间、簇、段)的存储空间信息。通过 DBMS_SPACE包来获取表空间(不包含HUGE表空间)、文件、页、簇、段的内容。

使用包内的过程和函数之前,如果还未创建过系统包。请先调用系统过程P_CREATE_SYSTEM_PACKAGES (1)创建系统包。

1 获取表空间信息

包括表空间ID、表空间名、表空间类型(1 DB 类型,2 临时文件组)、表空间状态、表空间的最大空间、表空间的总大小(页)、包含文件的个数。

使用方法:
TS_LOAD/ TS_GET
根据输入的表空间 ID,获得表空间信息。过程和函数功能相同。

语法如下:
PROCEDURE TS_LOAD(
TSID IN SMALLINT,
TS_ARR OUT TS_ARR_T
);

语法如下:
FUNCTION TS_GET (
TSID IN SMALLINT
)RETURN TS_ARR_T;

参数详解
TSID 表空间 ID。
TS_ARR_T 表空间记录类型数组。

案例分析:查看MAIN表空间的相关信息。

SQL> set serveroutput on;
DECLARE
TS_INFO DBMS_SPACE.TS_ARR_T;
BEGIN
TS_INFO = DBMS_SPACE.TS_GET(4);
IF TS_INFO IS NOT NULL
THEN
SELECT * FROM ARRAY TS_INFO;
ELSE PRINT 'TABLESPACE IS NULL';
END IF;
END;
/

在这里插入图片描述

2 获得数据库中表空间的个数

使用方法:
TS_N_LOAD / TS_N_GET
获得数据库中表空间的个数。过程和函数功能相同。

语法如下:
PROCEDURE TS_N_LOAD(
NUMBER OUT INT
);

语法如下:
FUNCTION TS_N_GET
RETURN INT;

参数详解
NUMBER 表空间的个数。

案例分析:查数据库的表空间个数

SQL> set serveroutput on;
DECLARE
TS_NUM INT;
BEGIN
TS_NUM = DBMS_SPACE.TS_N_GET;
PRINT 'TS_NUM:';
PRINT TS_NUM;
END;
/

结果:
个数根据实际表空间个数不同而不同,不包括 HUGE 表空间。

3 获得文件信息

文件路径、文件创建时间、文件读写状态: (1 读,2 写)、文件修改的时间、修改的事务 ID 、文件的总大小(M)、文件的空闲大小(M)、数据文件中连续空白页的起始页号、读页个数、写页个数、页大小(K)、读请求个数、写请求个数、文件可扩展标记、文件最大大小(M)、文件每次扩展大小(M)、文件包含的总描述页的数目。

使用方法:
FILE_LOAD/ FILE_GET
根据输入的表空间 ID、文件 ID,获得文件信息。过程和函数功能相同。

语法如下:
PROCEDURE FILE_LOAD(
TS_ID IN SMALLINT,
FILE_ID IN SMALLINT,
FILE_ARR OUT FILE_ARR_T
);

语法如下:
FUNCTION FILE_GET(
TS_ID IN SMALLINT,
FILE_ID IN SMALLINT
) RETURN FILE_ARR_T;

参数详解
TSID 表空间 ID。
FILE_ID 文件号。
FILL_ARR_T 文件记录类型数组。

案例分析:查看MAIN表空间的文件信息。

SQL> set serveroutput on;
DECLARE
FILE_INFO DBMS_SPACE.FILE_ARR_T;
BEGIN
FILE_INFO = DBMS_SPACE.FILE_GET(4,0);
IF FILE_INFO IS NOT NULL
THEN
SELECT * FROM ARRAY FILE_INFO;
ELSE PRINT 'FILE IS NULL';
END IF;
END;
/

结果:

DBMS_SPACE 包中涉及到的变量和记录类型。如下统一说明:

包内变量和记录类型解 释
TS_T表空间记录类型,用于记录表空间的信息,包括:表空间ID、表空间名、表空间类型:1 DB 类型,2 临时文件组、表空间状态、表空间的最大空间、表空间的总大小(页)、包含文件的个数
TS_ARR_T表空间记录类型数组
TS_ALL_ARR_T表空间 ID数组
FILE_T文件记录类型,用于记录文件的信息,包括:文件路径、文件创建时间、文件读写状态 1 读,2 写文件修改的时间、修改的事务 ID 、文件的总大小(M)、文件的空闲大小(M)、数据文件中连续空白页的起始页号、读页个数、写页个数、页大小(K)、读请求个数、写请求个数、文件可扩展标记、文件最大大小(M)、文件每次扩展大小(M)、文件包含的总描述页的数目
FILE_ARR_T文件记录类型数组
FILE_ALL_ARR_T文件的 ID 数组
SEG_T段记录类型,用于记录段的信息,包括:表空间 ID、段 INODE 项的文件 ID、段 INODE 项的页号、段 INODE 项的页偏移、全满簇的个数、半满簇的个数、空闲簇的个数
SEG_ARR_T段记录类型数组
SEG_ID_ARR_T段 ID 数组
EXTENT_T簇记录类型,用于记录簇的信息,包括:表空间号、段ID、簇状态、簇的页标记位图、簇描述项的文件 ID、簇描述项所在页号、簇描述项的页偏移、簇的起始页号、簇的终止页号、下一个簇描述项的文件号 ID、下一个簇描述项的页号、下一个簇描述项的页偏移
EXTENT_ARR_T簇记录类型数组
EXTENT_SIZE簇的大小(页为单位)
PAGE_ADDR_T页地址记录类型,用于记录页地址的信息,包括:表空间ID,文件 ID,页号
PAGE_ADDR_ARR_T页地址记录类型数组
PAGE_N描述页能描述的页数

更多方法,请查看官方文档。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
达梦数据库中,模式和表空间是两个不同的概念。模式数据对象的集合,包括表、视图、索引等。而表空间是用来存储数据对象的物理空间。 在达梦数据库中,可以通过创建表空间来为数据对象提供存储空间。表空间可以分为普通表空间和混合表空间。普通表空间只能存储普通表(非HUGE表),而混合表空间既可以存储普通表又可以存储HUGE表。\[1\] 创建表空间可以使用CREATE TABLESPACE语句,可以指定表空间的数据文件路径、大小以及自动扩展的设置。例如,可以使用以下语句创建一个表空间并设置自动扩展,每次扩展1M,最大为100M: CREATE TABLESPACE TS2 DATAFILE '/mds6800/damengdb/db/DAMENG/TS2.dbf' SIZE 128 AUTOEXTEND ON NEXT 1 MAXSIZE 100;\[3\] 需要注意的是,表空间的创建、修改和删除等操作都是在数据库管理员权限下进行的。\[2\] #### 引用[.reference_title] - *1* *2* [达梦模式对象—表空间、用户、角色、权限](https://blog.csdn.net/Nelson_S/article/details/124375902)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [达梦数据库创建表空间,用户,模式](https://blog.csdn.net/qq_24011271/article/details/120101644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值