Sql Oracle截断(带/不带删除存储)
我想知道更多关于这件事的信息,但我想我应该问问。。。。我曾尝试使用drop存储在Oracle 10g上执行表截断,但结果并不完全符合我的预期 基本上,该表有3000多万条记录,分配给它的空间超过了3Gb,但不知何故,分配给它的空间似乎仍在使用。是否有一种方法可以实际删除已分配的已用空间,还是我的做法是错误的 ==编辑====Sql Oracle截断(带/不带删除存储),sql,oracle,truncate,Sql,Oracle,Truncate,我想知道更多关于这件事的信息,但我想我应该问问。。。。我曾尝试使用drop存储在Oracle 10g上执行表截断,但结果并不完全符合我的预期 基本上,该表有3000多万条记录,分配给它的空间超过了3Gb,但不知何故,分配给它的空间似乎仍在使用。是否有一种方法可以实际删除已分配的已用空间,还是我的做法是错误的 ==编辑==== 我的坏…我指的是物理磁盘空间,在数据文件大小方面。。。目前,我们的导出/备份容量约为13GB,因此,我们的目的是在导出到文件进行备份时,在截断数据的过程中缩小实际文件。您使
我的坏…我指的是物理磁盘空间,在数据文件大小方面。。。目前,我们的导出/备份容量约为13GB,因此,我们的目的是在导出到文件进行备份时,在截断数据的过程中缩小实际文件。您使用的是哪种数据块管理和段空间管理
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
您使用的是字典管理的表空间还是带有系统分配段的本地管理的表空间?您使用的是哪种数据块管理和段空间管理
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
您使用的是字典管理的表空间还是带有系统分配段的本地管理的表空间?您没有确切说明截断表时会发生什么。
请记住,如果从表/索引中取消分配存储,那么它将作为可用空间返回表空间。从操作系统的角度来看,磁盘上使用的空间不会变得更小。因此,当需要更多空间时,表空间可以设置为“自动扩展”,但当释放空间时,表空间不会自动收缩。您没有确切说明截断表时会发生什么。
请记住,如果从表/索引中取消分配存储,那么它将作为可用空间返回表空间。从操作系统的角度来看,磁盘上使用的空间不会变得更小。因此,当需要更多空间时,表空间可以设置为“自动扩展”,但当释放空间时,它不会自动收缩。如何测量分配给表的空间量?还要记住,在10g中截断一个表总是会留下至少一个段。您如何衡量分配给该表的空间量?还要记住,在10g中截断一个表总是会留下至少一个段。