1

试图获得更多关于这方面的信息,但我想我只是问......我试图在 Oracle 10g 上使用 drop storage 执行表截断,但结果并不完全符合我的预期。

基本上,有问题的表有超过 3000 万条记录和超过 3Gb 分配给它,但不知何故,分配给它的空间似乎仍然被使用。有没有办法实际删除已分配的空间,还是我用错了方法?

===编辑====

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

4

2 回答 2

1

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

于 2009-12-29T09:20:28.713 回答
0

您正在使用什么样的范围管理和段空间管理?

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

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

于 2009-12-29T01:07:51.063 回答