数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

查询Oracle数据库表空间信息的方法


发布日期:2023年10月13日
 
查询Oracle数据库表空间信息的方法

表空间是数据库中最大的逻辑单位与存储空间单位数据库系统通过表空间为数据库对象分配空间表空间在物理上体现为磁盘数据文件每一个表空间由一个或多个数据文件组成一个数据文件只可与一个表空间相联系这是逻辑与物理的统一了解表空间和数据文件的的属性及使用率是数据库管理员的一项重要职责在本文中笔者将以oracle为例详细介绍查询Oracle数据库表空间信息和数据文件信息的方法希望能帮助大家更深入了解表空间的知识和应用

如何查看Oracle数据库中表空间信息的方法

从Oracle数据库中工具入手

使用oracle enterprise manager console工具这是oracle的客户端工具当安装oracle服务器或客户端时会自动安装此工具在windows操作系统上完成oracle安装后通过下面的方法登录该工具开始菜单——程序——OracleOraHome——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择独立启动单选框——确定 —— oracle enterprise manager console独立 ——选择要登录的实例名 ——弹出数据库连接信息 ——输入用户名/口令 (一般使用sys用户)连接身份选择选择SYSDBA——确定这时已经成功登录该工具选择存储 ——表空间会看到如下的界面该界面显示了表空间名称表空间类型区管理类型为单位的表空间大小已使用的表空间大小及表空间利用率

从Oracle数据库中命令方法入手

通过查询数据库系统中的数据字典表(data dictionary tables)获取表空间的相关信息首先使用客户端工具连接到数据库这些工具可以是SQLPLUS字符工具TOADPL/SQL等连接到数据库后执行如下的查询语句

select aa 表空间名称cc 类型cc 区管理bb// 表空间大小M(bbaa)// 已使用Msubstr((bbaa)/bb*) 利用率from(select tablespace_name a sum(nvl(bytes)) a from dba_free_space group by tablespace_name) a(select tablespace_name bsum(bytes) b from dba_data_files group by tablespace_name) b(select tablespace_name ccontents cextent_management c from dba_tablespaces) cwhere aa=bb and cc=bb;

该语句通过查询dba_free_spacedba_data_filesdba_tablespaces这三个数据字典表得到了表空间名称表空间类型区管理类型为单位的表空间大小已使用的表空间大小及表空间利用率dba_free_space表描述了表空间的空闲大小dba_data_files表描述了数据库中的数据文件dba_tablespaces表描述了数据库中的表空间

上面语句中from子句后有三个select语句每个select语句相当于一个视图视图的名称分别为abc通过它们之间的关联关系我们得到了表空间的相关信息

语句执行结果如下

上面描述中分别介绍了查看Oracle数据库中表空间信息的工具方法和命令方法

查询Oracle数据库中数据文件信息的方法

查看Oracle数据库中数据文件信息的工具方法

使用上面介绍过的方法登录oracle enterprise manager console工具选择存储 ——数据文件会看到如下的界面该界面显示了数据文件名称表空间名称为单位的数据文件大小已使用的数据文件大小及数据文件利用率

查看Oracle数据库中数据文件信息的命令方法

通过查询数据库系统中的数据字典表(data dictionary tables)获取数据文件的相关信息首先使用客户端工具连接到数据库这些工具可以是SQLPLUS字符工具TOADPL/SQL等连接到数据库后执行如下的查询语句

select bfile_name 物理文件名btablespace_name 表空间bbytes// 大小M(bbytessum(nvl(abytes)))// 已使用Msubstr((bbytessum(nvl(abytes)))/(bbytes)*) 利用率from dba_free_space adba_data_files bwhere afile_id=bfile_idgroup by btablespace_namebfile_namebbytesorder by btablespace_name

上面描述中分别介绍了查看Oracle数据库中数据文件信息的工具方法和命令方法

查看临时表空间和数据库文件的方法

在oracle数据库中临时表空间主要用于用户在使用order by group by语句进行排序和汇总时所需的临时工作空间要查询数据库中临时表空间的名称大小及数据文件可以查询数据字典dba_tablespaces及dba_data_files命令如下

select atalbespace_name 表空间名称bbytes 大小bytesbfile_name 数据文件名from dba_tablespaces a dba_data_files bWhere atalbespace_name=btalbespace_name and ntents=TEMPORARY;

查询结果如下

从oracle i开始可以创建Temporary tablespace类表空间临时表空间这类表空间使用临时文件临时文件的信息被存储在数据字典V$tempfile中命令如下

Select file#statusname from V$tempfile;

查询数据字典V$tempfile结果如下

在上面介绍的方法中建议掌握命令方法因为你的环境可能没有图形工具而SQLPLUS一般情况下都是可以使用的有了命令脚本很容易得到表空间和数据文件的相关信息另外数据库管理员应该多整理命令脚本在需要时直接执行脚本以提高工作效率

在数据库管理员的日常工作中应该经常查询表空间的利用率按照数据库系统的具体情况估算表空间的增长量当表空间的利用率超过%时要及时采取措施如清理历史表历史数据以释放空间向表空间中添加新的数据文件扩展现有数据文件大小等方法来降低表空间的利用率避免表空间利用率接近%时将产生空间不够的错误

上一篇:Oracle10gR2 新视图:V$SESSION变化跟蹤

下一篇:oracle10g中unique与index的问题