重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在MSSM的FREELIST下, 高水位High Water Mark代表所有相关块, 高水位以上就是未格式化unformatted 的数据块,INSRT数据时不能直接使用。当FREELIST中不包含可插入数据块时 HWM默认每次上升5个数据块。
成都创新互联公司主营图木舒克网站建设的网络公司,主营网站建设方案,成都APP应用开发,图木舒克h5小程序开发搭建,图木舒克网站营销推广欢迎图木舒克等地区企业咨询
对于ASSM管理的BITMAP 数据段而言,Oracle允许在数据段的中部出现unformatted blocks未格式化的数据块, 基于以下的原因:
一、在以前 HWM以下的数据块必然是formatted , 为了维护这一点代价是昂贵的:
长时间持有HW enqueue 队列锁对并发的抑制
过于频繁的持有HW enqueue在Oracle研发看来是罪恶的
上涨HWM 而不格式化 这样的话更有效率,因为格式化往往涉及到 IO,是一种较慢的操作
二、 在直接路径加载过程中,最后的一个extent中的数据块将被全部format 格式化,而如果下一次还是direct load直接路径加载数据的话,它不会从Freelist上获取数据块,而是使用HWM以上新的数据盘区extent。 如果这个数据段是典型的一直在direct load加载数据的话,则可能在freelist上有很多unused block从来不被使用,而被浪费了。 这可能造成空间的浪费,尤其是在Extent size 很大的时候 或者 数据段几乎从来不传统路径插入数据的时候。保留这些数据块为unformatted则可以让加载数据时利用到这些空间空洞
如果自己搞不定可以找ASKMACLEAN专业ORACLE数据库修复团队成员帮您恢复!
最笨最简单也最管用的方法,就是重建表。建立一个新表将原表的数据插入到新表,删除原表,将新表重命名就OK。
无法是 老生常谈的 truncate 、move 、shrink space
实际上 大多数表不需要降高水位,不要迷信高水位