在我的应用程序中删除,我们上传的庞大数据。如果任何错误上传的数据那么我们就可以删除data.So,无论数据删除的空间时,将收回的数据?。就是有什么对性能的影响有没有办法在Oracle中大量删除后回收空间?如何回收空间?回收后大的空间在Oracle
回答
在Oracle中,删除数据不会自动回收磁盘空间。数据库将保留其存储空间,直到您执行某些对表空间的管理。这种行为的期望是,如果你一次需要存储空间,你可能会再次需要它,因此简单地保留分配会更有效率。
至于性能的影响,要处理的数据少一般会进行查询走得更快。 :)
要回收空间,你有几个选择。 This article from ORACLE-BASE对这种情况有一个相当全面的看法。
而且,你为什么会插入数据,然后确定它是“坏”来然后将其删除?难道你最好避免将数据从一开始放入?
这是我们的发展环境,迫使我们去创造一个新的数据库的一个重大问题,每6 -8个月,并放弃旧的。为了测试/开发目的,我们每晚添加10-15个新用户,并在一周后删除旧用户。表空间回收的问题在于,如果任何一块数据位于表空间中并靠近文件末尾,则无法回收中间的任何空闲空间。实际上这很烦人。 – tsells 2012-02-26 01:02:28
如果你经常丢弃/创建用户并且有很多怪异的用法模式,那么为什么不给每个用户自己的表空间? – 2012-02-27 14:07:39
这是一种选择 - 在查看这个最新版本之后,我确实为“自动”用户提供了自己的表空间 - 所以我可以删除它们并删除表空间,而不必删除数据库。我不确定我想要为每个用户创建表空间,但同意这是一个可行的选择。感谢您的输入..... !!! – tsells 2012-02-27 17:58:05
删除后无法回收空间。但如果之后删除剩余数据的尺寸比较小,然后创建一个与数据的新表,删除旧表和新表重命名为旧名称
你需要研究的High Water Mark(HWM)。
基本上它是特定表曾经使用过的块的最大数量,如果你加载大量数据,你可能会增加HWM,删除那些记录不会减少HWM。
Here是关于如何调整HWM的一篇很好的文章,如果一旦你理解它,你认为它可能会影响你的环境,那么使用包含的提示减少你的HWM。
希望它可以帮助...
sysdba.wordpress.com的链接不再可用。 – 2017-02-15 07:12:28
我知道这是一个老问题,但以备将来参考:
- 删除空表,但空间已经“锁定”为未来的馅料
- TRUNCATE TABLE可以做到这一点(你需要禁用引用表的所有外键才能工作)。
- 1. Oracle 11:在将BLOB设置为NULL后回收空间
- 2. Oracle在用户级联后回收磁盘空间
- 3. 中止git add后回收空间?
- 4. MongoDB磁盘空间回收
- 5. CTAS与回收表空间
- 6. 归档oracle表使用收缩空间
- 7. oracle中真正的表空间大小
- 8. 在mysql中删除数据库之后回收磁盘空间
- 9. 在WP7/XAML翻译后收缩空间
- 10. 更改数据类型后回收SQL 2005表中的空间?
- 11. 下载表后Redshift回收磁盘空间
- 12. 从MongoDB回收可用空间3.2
- 13. cassandra斑点,墓碑和空间回收
- 14. Windows会回收堆栈空间吗?
- 15. oracle-undo表空间
- 16. Oracle空间 - 落区
- 17. Oracle中的表空间
- 18. 在git中添加备用项后如何回收磁盘空间?
- 19. 在SQL 2014+ VLDB上PAGE数据压缩后回收磁盘空间
- 20. 科特林Android的片段空回收视图后回
- 21. 回收站视图项目之间的空间
- 22. 删除回收站物品之间的空间
- 23. 在oracle中释放USERS表空间的未使用空间
- 24. 回收未使用的空间在SQL Server 2008
- 25. Oracle收缩空间问题 - alter table <table>由于基于函数的索引,收缩空间返回错误ORA-10631。任何解决方法存在?
- 26. 如何删除在Android的回收站视图中删除项目后剩下的空白空间?
- 27. RecyclerView物品后23.2.0空间很大
- 28. 多大太大的空间
- 29. 升级到Oracle后Oracle ORA_ROWSCN为空11
- 30. NodeJS在Angular中的空回收
参见http://stackoverflow.com/questions/10934037/shrink-a-database-in-oracle-11g – Vadzim 2017-03-02 12:16:53