![]() |
1
9
这个问题很古老,但从来没有一个有效的答案,可能对很多人有用,所以这里我找到了解决这个问题的方法。 您是对的,删除LOB不会回收Tablescape中的任何存储。 在删除LOB之前和之后运行此查询将得到相同的结果
阅读 this Oracle文档,我发现您需要执行以下语句
它会收缩
现在,如果您重新执行查询
您将注意到空间已经释放到表空间,并且可以根据需要重新使用该空间。 现在,对于那些想释放磁盘空间的人,请注意,数据文件不会自动重新调整大小,并且仍将保持磁盘的完整大小。 但是,在重新调整数据文件的大小之前,请确保使用这些查询(使用所需的查询)释放段中未使用的空间(如前所述从同一个文档中窃取该空间)。
注意,
现在要重新调整数据文件的大小,
请注意,调整大小时可以收缩的最大大小是基于数据文件中最后一个数据块的位置。因此,删除大量数据后,很可能无法真正调整大小。然后,最简单的方法是导出数据并在另一个表空间中重新导入,然后删除旧的表空间。导入数据时,Oracle将尽可能多地对其进行打包。 如果您想释放更多的空间,可以清除临时表空间,该表空间有时会占用大量空间(我的数据库为5GB)。使用以下语句检查其大小:
|
![]() |
2
1
通常,一旦一个数据块分配给一个表,它就保持分配状态。如果在表中插入了其他数据,则可以重新使用表中的空白空间。但是,很难从表中回收空间,因为表可能有块1到100,空块在块50-75中,或者空块为1、3、5、7等。 问题是,您是否担心表中的空间被重用,或者您是否需要为表空间中的其他对象释放空间,或者您是否需要能够收缩表空间数据文件? |
![]() |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
![]() |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
![]() |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
![]() |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
![]() |
Anar · Oracle SQL用户定义函数 2 年前 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |