Chinaunix首页 | 论坛 | 博客
  • 博客访问: 772905
  • 博文数量: 180
  • 博客积分: 4447
  • 博客等级: 上校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-03 14:51
文章分类

全部博文(180)

文章存档

2014年(6)

2013年(8)

2011年(125)

2009年(35)

2008年(1)

2007年(5)

分类: Oracle

2011-01-13 16:31:50

Oracle 数据库提供了 Segment Advisor 工具,她依据方案对象(schema object)存储空间中的碎片程度来判断此对象中是否包含可回收的空间。

另见:

  • 了解段(segment)空间回收的思路
  • 了解相关 SQL 语法和语义
一般来说,在用户将一个段(segment)对应的方案对象(schema object)移除(使用 DROP TABLEDROP CLUSTER 语句)之前,此段的数据扩展(extent)不会被回收到表空间(tablespace)中,但是以下情况例外:
  • 表,簇表的所有者(owner)或拥有 DELETE ANY 权限的用户, 可以使用 TRUNCATE...DROP STORAGE 语句将表,簇表的数据清除
  • DBA 可以使用以下语法收回一个段中未使用的数据扩展:

    ALTER TABLE table_name DEALLOCATE UNUSED;
  • 如果用户为回滚段(rollback segment)设定了 OPTIMAL 参数,Oracle将周期性地从其中回收数据扩展。
当数据扩展(extent)被释放后,Oracle修改数据文件(datafile)中的位图(bitmap)(对于本地管理的表空间)或更新数据字典(对于数据字典管理的表空间),将回收的数据扩展视为可用空间。被释放的数据扩展中的数据无法继续访问。
阅读(609) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~