Oracle数据库的空间管理技巧

转载 2007年09月26日 13:15:00


在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定。

一.表空间的自由空间

通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够。请看下列的语句

SQL > select a.file_id "FileNo",a.tablespace_name
  "Tablespace_name",
  2 a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
  3 sum(nvl(b.bytes,0)) "Free",
  4 sum(nvl(b.bytes,0))/a.bytes*100 "%free"
  5 from dba_data_files a, dba_free_space b
  6 where a.file_id=b.file_id(+)
  7 group by a.tablespace_name ,
  8 a.file_id,a.bytes order by a.tablespace_name;

File Tablespace
  No _nameBytes Used Free %free
  ------ --------- -------- --------- --------- ----
  11IDX_JF .146E+09 849305600 1.297E+09 60.431806
  9 JFSJTS 2.146E+09 1.803E+09 343793664 16.016961
  10JFSJTS 2.146E+09 1.359E+09 787431424 36.685546
  2 RBS523239424 359800832 163438592 31.235909
  12RBS1.610E+09 1.606E+09 3104768 .19289495
  8 RBSJF 3.220E+09 2.716E+09 504356864 15.662396
  7 SFGLTS 2.146E+09 1.228E+09 918159360 42.776014
  6 SFSJTS 2.146E+09 1.526E+09 620093440 28.889457
  1 SYSTEM 523239424 59924480 463314944 88.547407
  3 TEMP 523239424294912 522944512 99.943637
  4 TOOLS 15728640 12582912 314572820
  5 USERS 7340032 81927331840 99.888393

12 rows selected.

可以看出,在FileNo为12的表空间RBS中,只有0.19%的分配空间未被使用,这个比例太小了,而在SYSTEM及TEMP等表空间中,高达80%以上的空间未被利用,对于生产型数据库,这个表空间的设置有些偏高。

关于自由空间的管理,有下面的一些建议:

利用Export及Import命令卸出和装入表空间可以释放大量的空间,从而缓解增加另外的数据文件的要求。

如果包含具有高插入(insert)和更新(update)活动的表的表空间中自由空间的比重下降到了15%以下,要为此表空间增加更多的空间。

对于一个基本是静态表数据的表空间,如果有多于20%的自由空间,则可以考虑减少分配给它的文件空间量。

减少SYSTEM表空间的空间量比较困难,因为那要重建数据库。http://bbs.cnw.cn/viewthread.php?tid=58813

Oracle DB 管理空间

• 介绍Oracle DB Server 如何自动管理空间 • 使用压缩节省空间 • 主动监视和管理表空间的空间使用量 • 介绍Oracle DB 中的段的创建 • 控制延迟创建段 • 使用“段指导”...
  • rlhua
  • rlhua
  • 2013年10月29日 00:10
  • 6634

Android应用将"清除数据"项变为"管理空间",自定义数据清除

在设置中可以清除应用的数据,缓存可以让用户随意清理,可是私有数据的随意清理会丢失用户的本地信息,尤其是有重要的信息。 后来发现手机管家等应用是没有“清除数据”项的,被一个“管理空间”代替了,看了一下他...
  • voler_HJL
  • voler_HJL
  • 2016年10月20日 22:02
  • 688

监控并记录Oracle数据库空间增长的简单方法

1.跟踪数据库空间增长 SELECT SUM(MB_ALLOC)/1024 GB_DB_SIZE FROM (SELECT SUM(ROUND(bytes_used/(1024*1024),...
  • wengtf
  • wengtf
  • 2016年12月05日 16:32
  • 1095

实验四 数据库模式对象管理

一、实验目的 1)  掌握表、索引、索引化表的概念及管理 2)  掌握分区的概念及分区管理 3)  掌握外部表的概念及其管理 4)  了解簇、视图、序列、同义词、数据库链接等的管理 二、预习...
  • MJ813
  • MJ813
  • 2016年12月31日 20:26
  • 789

Oracle 删除数据后释放数据文件所占磁盘空间

测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小。经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办...
  • xtdhqdhq
  • xtdhqdhq
  • 2015年05月13日 13:49
  • 5427

oracle数据库实例,用户,表空间的关系

数据库: Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。 其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一...
  • dong001687
  • dong001687
  • 2017年06月25日 15:05
  • 487

Android中如何将"清除数据"变为"管理空间",进行自定义数据清除

偶然看到在Android手机的"应用程序信息"里面腾讯管家和手机百度的不能清除数据,显示的是管理空间,感觉这个挺有意思的,可以防止用户进行数据的清除,于是就查了一下,原来实现方式很简单。 第...
  • hp910315
  • hp910315
  • 2016年05月12日 19:59
  • 1582

oracle数据占用空间过大的分析

      在CSDN使用这个博客以来,一致在写一些经济书籍的读后感,在一个技术网站写这个,感觉颇为遗憾。正好最近工作中发生了一件ORACLE数据库空间占用过大的问题,拿出来和大家分享。为了有趣些,参...
  • jjduysgmail
  • jjduysgmail
  • 2009年12月01日 18:27
  • 3424

自动段空间管理(ASSM)和手动段空间管理(MSSM)中FREELIST作用浅析

段空间管理: 手动段空间管理manual segment space management (MSSM). MSSM是Oracle的遗留实现,原先需要对控制空间分配和提供高并发性的参数数不胜数,并且需...
  • u013169075
  • u013169075
  • 2016年10月23日 22:06
  • 720

Oracle数据库中段管理的四个技巧

  在Oracle数据库中,段往往被用来存储特定逻辑对象的所有数据。如当建立数据库表或者索引时,Oracle就会为这些对象分配存储空间,以存放他们所需要的信息。段是由一个或者多个区组成的。不要看段是O...
  • feiyu84
  • feiyu84
  • 2011年05月18日 17:15
  • 718
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle数据库的空间管理技巧
举报原因:
原因补充:

(最多只允许输入30个字)