查询Oracle数据库表空间和数据文件方法

2016-02-19 18:48 6 1 收藏

今天图老师小编要跟大家分享查询Oracle数据库表空间和数据文件方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

  表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。了解表空间和数据文件的的属性及使用率,是数据库管理员的一项重要职责。下面以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据文件信息的方法。

  一、查看Oracle数据库中表空间信息的方法

  1、查看Oracle数据库中表空间信息的工具方法:

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

  图1 表空间大小及使用率

  2、查看Oracle数据库中表空间信息的命令方法:

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

  select
  a.a1表空间名称,
  c.c2类型,
  c.c3区管理,
  b.b2/1024/1024表空间大小M,
  (b.b2-a.a2)/1024/1024已使用M,
  substr((b.b2-a.a2)/b.b2*100,1,5)利用率
  from
  (selecttablespace_namea1,sum(nvl(bytes,0))a2fromdba_free_spacegroupbytablespace_name)a,
  (selecttablespace_nameb1,sum(bytes)b2fromdba_data_filesgroupbytablespace_name)b,
  (selecttablespace_namec1,contentsc2,extent_managementc3fromdba_tablespaces)c
  wherea.a1=b.b1andc.c1=b.b1;

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

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

  语句执行结果如下:

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

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

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

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

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

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

  select
  b.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)利用率
  fromdba_free_spacea,dba_data_filesb
  wherea.file_id=b.file_id
  groupbyb.tablespace_name,b.file_name,b.bytes
  orderbyb.tablespace_name

  语句执行结果如下:

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

  select
  a.talbespace_name表空间名称,
  b.bytes大小bytes,
  b.file_name数据文件名
  fromdba_tablespacesa,dba_data_filesb
  Wherea.talbespace_name=b.talbespace_nameanda.contents=’TEMPORARY’;

  查询结果如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

  Select file#,status,name from V$tempfile;

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

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

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

来源:http://www.tulaoshi.com/n/20160219/1619014.html

延伸阅读
在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定。 一.表空间的自由空间 通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够。请看下列的语句 SQL select a.file_id "FileNo",a.tablespace_name"Tablespace_name",2 ...
Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。 表和视图 Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE...
这篇文章里介绍了master数据库中两个非常有用但在SQL Server在线教科书中没有提到的存储过程。 这些系统过程对于处理以下任务非常方便,如判断使用的存储空间大小、行数、用户表索引等等。 第一个过程sp_MSForEachDB对于感兴趣的服务器上的每个数据库执行三条命令。 ◆@command1:第一个执行的命令 ◆@replacechar:用另一个占...
示例表结构和数据集 为了演示和比较各种数据导入方法,我假定数据导入任务是将外部文件数据导入到 Oracle 数据库的CALLS表中,外部数据文件包含十万条呼叫中心记录,将近 6MB 的文件大小,具体的数据示例如下: 82302284384,2003-04-18:13:18:58,5001,投诉,手机三包维修质量 82302284385,2003-04-18:13:18:59,3352,咨询,供水热线的号码 82...
标签: 电脑入门
Microsoft Query 查询定义可以保存在扩展名为qdy的文件中,打开qdy文件读取外部数据后,excel默认将查询定义和数据一道保存在excel文件中的。更新数据时只要刷新数据(点击全部刷新按钮)就行了。如果没有全部刷新按钮,点击菜单工具--自定义,勾选外部数据即可。 新的查询也可以复制当前建立好查询工作表后点击菜单数据导入外部数据编辑查询进...

经验教程

897

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部