Oracle使用/不使用drop storage进行截断

时间:2009-12-28 23:39:16

标签: sql oracle truncate

试图获得更多关于此的信息,但想到我只是问......我试图用drop存储在Oracle 10g上执行表截断,但结果并不完全是我所期待的。

基本上,这个表有超过3000万条记录和超过3Gb分配给它,但不知何故,分配给它的空间似乎仍然被使用。有没有办法真正放弃使用的分配空间,或者我是以错误的方式解决它?

=== EDIT ====

我的不好......我指的是物理磁盘空间,就数据文件大小而言......目前我们的导出/备份总量大约为13GB,所以这里的意图是缩小过程中的实际文件在导出到备份文件时截断数据。

2 个答案:

答案 0 :(得分:1)

当你截断表格时,你并没有确切地说出你期望发生的事情。 请记住,如果从表/索引中取消分配存储,那么它只是作为自由空间返回到表空间。从操作系统的角度来看,磁盘上使用的空间不会变小。因此,当需要更多空间时,可以将表空间设置为“自动扩展”,但在释放空间时,它不会自动缩小。

答案 1 :(得分:0)

您使用的是哪种范围管理和segment_space_management?

select tablespace_name from user_segments
  where segment_name = 'T'   ---T here would b your table name

TABLESPACE_NAME
------------------------------
TS_USERS_01

sql > select TABLESPACE_NAME, EXTENT_MANAGEMENT, SEGMENT_SPACE_MANAGEMENT
  2     from dba_tablespaces where tablespace_name = 'TS_USERS_01';

TABLESPACE_NAME                EXTENT_MAN SEGMEN
------------------------------ ---------- ------
TS_USERS_01                    LOCAL      AUTO

您是否使用字典管理的表空间或本地管理的表空间与系统分配的段?