
FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'),
(SELECT undoblks/((end_time-begin_time)*86400) AS UPS
FROM v$undostat
WHERE undoblks = (SELECT MAX(undoblks) FROM v$undostat)),
(SELECT block_size AS DBS
FROM dba_tablespaces
WHERE tablespace_name = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace'))
您好,Oracle数据库存储空间的最小存储单位是数据块(Data Block)。数据块是Oracle数据库中最基本的存储单位,是在磁盘上分配和管理存储空间的最小单位。每个数据块的大小是固定的,通常为多个字节的倍数,例如8KB、16KB等。在Oracle数据库中,数据块是由Oracle引擎自动管理的,它们被用来存储表、索引、视图、存储过程等数据库对象的数据。数据块的大小是根据应用程序需要和数据库性能进行权衡而确定的,一般来说,较小的数据块可以提高数据库的并发性和响应速度,但也会增加系统开销和存储空间的浪费。除了数据块,Oracle数据库还有其他存储单位,例如段(Segment)、表空间(Tablespace)等。段是由数据库对象占用的一组数据块组成的逻辑单位,例如表、索引、视图等。表空间是由一个或多个数据文件组成的逻辑存储单元,它用于存储数据库对象的数据和元数据。在Oracle数据库中,表空间是分配和管理存储空间的最高级别单位,它可以跨多个物理设备和 *** 作系统文件系统。
selectb.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name
该语句通过查询dba_free_space,dba_data_files,dba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。dba_free_space表描述了表空间的空闲大小,dba_data_files表描述了数据库中的数据文件,dba_tablespaces表描述了数据库中的表空间。
上面语句中from子句后有三个select语句,每个select语句相当于一个视图,视图的名称分别为a、b、c,通过它们之间的关联关系,我们得到了表空间的相关信息。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)