Oracle数据库记录删除问题(50分)

  • 主题发起人 主题发起人 lvjun99
  • 开始时间 开始时间
L

lvjun99

Unregistered / Unconfirmed
GUEST, unregistred user!
删除Oracle数据库表中记录,是否是真的物理删除?
 
在未提交之间尚未真正删除,此时可以rollback取消删除,一旦提交,就彻底
山除了,再也没有办法了
 
popeye兄,
In archive log model, can I recover the database to previous point?
 
我的意思是,Oracle表记录删除是否和dBase表一样,还占着空间。
 
Oracle自己管理表,删除后commit不占空间,没有dBase撤消删除的概念。
 
at : 我的意思是如果当前表记录数为200条,大小为200K(假设全被这200条记录占
满),现在把200条记录删除,提交(问题1:表的大小会变小吗?),再插入相同的200条记录,提交,(问题2:如果表变小,当前表是200K吗?如果表不变小,当前表大小是200K还是400K?),
 
oracle中根本没有表大小的概念,它的一个表并不是一个文件,
而是所有的表共用一个或几个数据文件,这些数据文件是大文件,
可能你的数据现在根本到不了这么大。但是,一旦你开了以后,不管
你的数据有多少,这些数据文件只能变大(若你选择自动扩展功能的话),
不会缩小,而且你其中的某个表放在哪个物理块中,多大,你根本没有
必要知道,也无法知道。你只要能增删改数据,查询数据,管它数据
怎么放干啥?
 
oracle 的表的空间只会增加,不会智能减少。
你如果想要优化此表的空间使用状况,可以export it with compress options,
then import again.
 
Oracle先在磁盘上分配局够的空间,不管有没有记录,数据文件大小都不变。当插
入数据时,Oracle在数据文件的空间内分配空间来放置数据。当删除时,Oracle会自
动回收空间。不过,多次插入,删除后,空间会有碎片。如何消除碎片请参考相应
资料。
 
多人接受答案了。
 
后退
顶部