ZKX's LAB

oracle 表 高水位 oracle 为什么有的表没有高水位线?我自己建立的表没有事怎么回事?

2020-10-07知识9

什么是Oracle高水位线 在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark,HWM)。在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。也就是说,这条高水位线在日常的增删操作中只会上涨,不会下跌。

Oracle利用MOVE压缩表的高水位有何特点? 如果表的高水位线比较高,或者表经历了大数据量的产生操作,经常会使用ALTER TABLE MOVE的方法来减少表占用的空间。不过今天才发现以前对MOVE的了解一直存在偏差。看一个。

oracle 如何查看表 高水位线

oracle 分区表怎么回收高水位 重新收集oracle统计信息就行了

Oracle里面 表的高水位是怎么会事情? 就是说的HWM哪个东西 在MSSM的FREELIST下,高水位High Water Mark代表所有相关块,高水位以上就是未格式化unformatted 的数据块,INSRT数据时不能直接使用。当FREELIST中不包含可插入数据块时 HWM默认每次上升5个数据块。对于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则可以让加载数据时利用。

很精辟的oracle高水位线,终于知道DELETE和TRUNCATE为什么不一样 两个操作都是删除表数据的但是实际却又很大的不同delete只是单纯的删掉表里的数据,他可以添加删除条件,但是不会将空间回收,删除的时候有记录日志,方便恢复,但是速度比较慢truncate table是全表清空的操作,回收空间,无日志,基本上是不可恢复的

什么是oracle的高水位线? 现在解释下什么是“高水位”:oracle的逻辑存储结构:表空间—>;段—>;区—>;块 块:是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是。

oracle 自动管理段的高水位在第几个块 这个不好说的 有的时候扩展是按照4个块 我之前做过一个实验 发现在表数据比较多的时候是64的 就像1楼说的一样 要看情况。最好的办法就是把数据块down下来看看就知道了~

如何降低Oracle表的高水位 1.执行表重建指令 alter table table_name move(验证不可行,不降低水位线,但可释放表空间)当你创建了一个对象如表以后,不管你有没有插入数据,它都会占用一些块,ORACLE也会给它分配必要的空间.同样,用ALTER TABLE MOVE释放自由空间后,还是保留了一些空间给这个表.ALTER TABLE.MOVE 后面不跟参数也行,不跟参数表还是在原来的表空间,Move后记住重建索引.查询失效索引语句:select index_name,table_name,tablespace_name,status From dba_indexes Where owner='HNUNICOM' And status<;>;'VALID';重建索引语句:alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;如果以后还要继续向这个表增加数据,没有必要move,只是释放出来的空间,只能这个表用,其他的表或者segment无法使用该空间。2.执行alter table table_name shrink space;(已经验证成功,推荐使用,可释放数据库和磁盘空间空间,大表可同时降低表自身和表空间的高水位线,小表则只可以降低表自身的高水位线,原因不详)注意,此命令为Oracle 10g新增功能,执行该指令之前必须允许行移动 alter table table_name enable row movement;3.复制要保留的数据到临时表t,drop原表,然后rename。

oracle 为什么有的表没有高水位线?我自己建立的表没有事怎么回事? 高水位线是Oracle系统自行设定的,这个和数据块使用率有关系,不是人为设定的,是系统自我一种性能调整。

#oracle系统#空间数据#oracle#oracle表空间#oracle数据库

随机阅读

qrcode
访问手机版