下载此文档

oracle 高水位线详解.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
oracle 高水位线详解一、 oracle 高水位线详解一、什么是水线(High Water Mark)? 所有的 oracle 段(segments , 在此, 为了理解方便, 建议把 segmen t 作为表的一个同义词) 都有一个在段内容纳数据的上限, 我们把这个上限称为"high water mark" 或 HWM 。这个 HWM 是一个标记,用来说明已经有多少没有使用的数据块分配给这个 segment 。 HWM 通常增长的幅度为一次 5 个数据块, 原则上 HWM 只会增大, 不会缩小, 即使将表中的数据全部删除, HWM 还是为原值, 由于这个特点,使 HWM 很象一个水库的历史最高水位, 这也就是 HWM 的原始含义, 当然不能说一个水库没水了, 就说该水库的历史最高水位为 0。但是如果我们在表上使用了 truncate 命令,则该表的 HWM 会被重新置为 0。二、 HWM 数据库的操作有如下影响: a) 全表扫描通常要读出直到 HWM 标记的所有的属于该表数据库块, 即使该表中没有任何数据。 b) 即使 HWM 以下有空闲的数据库块,键入在插入数据时使用了 append 关键字,则在插入时使用 HWM 以上的数据块,此时 HWM 会自动增大。三、如何知道一个表的 HWM ? a) 首先对表进行分析: ANALYZE TABLE <tablename> PUTE STATISTICS; b) SELECT blocks, empty_blocks, num_rows FROM user_tables WHERE table_name = <tablename>; 说明: BLOCKS 列代表该表中曾经使用过得数据库块的数目,即水线。 EMPTY_BLOCKS 代表分配给该表,但是在水线以上的数据库块,即从来没有使用的数据块。让我们以一个有 28672 行的 BIG_EMP1 表为例进行说明: 1) SQL> SELECT segment_name, segment_type, blocks FROM dba_segments WHERE segment_name='BIG_EMP1'; SEGMENT_NAME SEGMENT_TYPE BLOCKS ----------------- -------------- --------- BIG_EMP1 TABLE 1024 1 row selected. 2) SQL> ANALYZE TABLE big_emp1 ESTIMATE STATISTICS; Statement processed. 3) SQL> SELECT table_name,num_rows,blocks,empty_blocks FROM user_tables WHERE table_name='BIG_EMP1'; TABLE_NAME NUM_ROWS BLOCKS EMPTY_BLOCKS ---------- -------- ------- ------------- BIG_EMP1 28672 700 323 1 row selected. 注意: BLOCKS + EMPTY_BLOCKS (700+323=1023) 比 少 1 个数据库块,

oracle 高水位线详解 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-05-14