在一个数据库使用下面SQL找出了一批需要降低高水位线的表,其中有几个表没有数据,于是我打算用TRUNCATE来降低高水位线HWM SELECT a.owner, a.segment_name, a.segment_type, a.tablespace_name, a.blocks "real blo...
分类:
其他好文 时间:
2015-04-16 19:16:03
阅读次数:
198
下面结合官方文档和实验介绍下HWM:
以下英文摘自11gR2官方文档:
HWM(high water mark):The boundary between used and unused space in a segment.
ORACLE9i之后开始使用自动段空间管理即ASSM,它使用位图来管理段空间的使用情况,如果表空间ASSM,则表空间中的段也是ASSM.
At table c...
分类:
其他好文 时间:
2015-04-16 15:45:13
阅读次数:
242
今天查一张表的时候,查询表中某一特定类型的数据特别慢,但是查询全表特别快,也没找到原因,百度了一下下,可能感觉(很小的几率)是下面这个
四、Oracle表段中的高水位线HWM
在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HW...
分类:
数据库 时间:
2015-01-15 18:25:55
阅读次数:
194
Direct-path insert 方式的优点
(1)可以将insert数据跳过buffer_cahce,省掉了buffer block的格式化与DBWR操作,直接从PGA写入磁盘
(2)不检查表中现有的block是否有空闲空间,直接在表的高水位线(HWM)以上插入
(3)如果在数据库处于非归档模式下,或者是数据就处于归档模式,表级处于nologging状态下,只有少量的空间信息redo写入、不写入数据undo(因为要回滚时可以直接回退到高水线即可,而不需要针对insert生成delete的回滚记录),所...
分类:
其他好文 时间:
2015-01-11 21:44:58
阅读次数:
361
1概念理解由于对表空间进行频繁的DML操作,在空间的分配上势必会产生一些空间碎片影响系统效率。对磁盘碎片整理上可以使用的方法有重建表、move、shrink等。另一种情况是DELETE操作并不会回收HWM高水位线,ORACLE扫描表时依然是从第1个数据块扫描到HWM,当有新记录插入时,也是从HWM后...
分类:
其他好文 时间:
2015-01-10 19:43:28
阅读次数:
293
一、什么是水线(High Water Mark)?所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为"high water mark"或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块...
分类:
数据库 时间:
2015-01-05 10:55:43
阅读次数:
224
众所周知,随着不断地进行表记录的DML操作,会不断提高表的高水位线(HWM),DELETE操作之后虽然表的数据删除了,但是并没有降低表的高水位,除非你使用TRUNCATE操作,进行表查询的时候,Oracle会扫表高水位以下的数据块,也就是说,扫描的时间并不会有所减少。所以DELETE删除数据以后并不会提高表的查询效率。
下面通过这个例子,用来解决高水位引起的查询变慢问题:
--例子中测试表占用...
分类:
其他好文 时间:
2014-11-20 23:46:25
阅读次数:
235
在新增记录时,HWM会慢慢往上移,但是在删除记录后,HWM却不会往下移。所以在使用delete from命令删除大量数据时会导致因HWM引起的性能问题。 删除高水位的最直接的方法就是truncate Table 但是这种方式太过暴力,所...
分类:
数据库 时间:
2014-11-07 11:30:31
阅读次数:
218
众所周知,oracle段都有一个在段内容纳数据块的上限,我们把这个上限称为"High Water Mark"(HWM)。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值。HWM就像一个水库的历史最高水位,这也是为何会称之为“高水位”的缘故。实际环境中随着我们表中数据的不断增长,表的高水位也被不断的推高。当高水位达到一定程度之后,会对该表上的SQL查询效率产生负面影响,因此需要采取有效措施降低高水位。下...
分类:
其他好文 时间:
2014-09-27 19:25:20
阅读次数:
304
在新增记录时,HWM会慢慢往上移,但是在删除记录后,HWM却不会往下移。所以在使用delete from命令删除大量数据时会导致因HWM引起的性能问题。
删除高水位的最直接的方法就是truncate Table 但是这种方式太过暴力,所以用以下的方法来删除高水位线。
--删除数据
DELETE FROM GJDS_BUS_OIL_LOG
WHERE VERSION
--...
分类:
数据库 时间:
2014-08-26 17:28:26
阅读次数:
269