转
http://hi.baidu.com/wschao2005/blog/item/fe037089d5a18eb80e2444ad.html
High Water Mark (HWM)指的是當我們建立一個segment的時候,在segment內的一個指標,界定了segment 內曾經配置過的block水位。
剛建立segment時尚未insert資料,HWM通常在segment header附近,當你不斷地insert資料使用了更多的block之後,HWM自然會跟著移動。但是日後你delete資料後,雖然實際儲存資料的 block已經減少,但是HWM仍然不會改變,這就像水庫的水位曾經滿到某個刻度而留下一道水痕,雖然水位下降了但是仍然清晰可見那道高水位。
HWM之下如果存在太多空的block,最大的缺點就是當發生Full Table Scan (FTS)的時候,會造成過多無謂的IO,因為FTS會讀取segment內的block直到HWM為止,如此也會造成buffer pool的使用效率不佳。
HWM是oracle中block有没有使用的分界线,它会随着数据的insert而上升,但它并不会随数据的delete而下降,因此全表扫描的时间并不因数据的delete而减少,相反可能由于块清除反而全表扫描时间增加,可以用下面方法的任一一种来降低HWM:
第一种:shrink
适用于10g以后的版本,前提是这个表,索引,物化视图或物化视图log所在表空间segment的管理是auto的,并且表已enable row movement,如:
引用
SQL> select owner,segment_name,bytes,blocks,extents from dba_segments
where segment_name = 'EMP';
SQL> alter table emp enable row movement;
SQL> alter table emp shrink space;
SQL> select owner,segment_name,bytes,blocks,extents from dba_segments
where segment_name = 'EMP';
第二种:online redefinition
online redefinition在oracle 9i引用,10g对DBMS_REDEFINITION包做了一些调整,使用的操作起来理简单,如新增加的COPY_TABLE_DEPENDENTS,UNREGISTER_DEPENDENT_OBJECT,方法如下:
1.调用dbms_redefinition.can_redef_table procedure确认是否可以online redefinition
SQL> EXECUTE dbms_redefinition.can_redef_table ('FINANCE', 'ACCTS_PAYABLE');
2.在redefinition schema下创建interim table
3.如果redefinition一个大表,可以用下面的Statement来改善性能:
SQL> alter session force parallel dml parallel degree-of-parallelism;
SQL> alter session force parallel query parallel degree-of-parallelism;
4.调用dbms_redefinition.start_redef_table procedure开如redefinition
SQL> dbms_redefinition.start_redef_table('FINANCE', 'ACCTS_PAYABLE','ACCTS_PAYABLE_STAGE');
5.创建dependent objects on interim table
有两种方法:
调用dbms_redefinition.copy_table_dependents自动创建dependent objects;
使用create statement手动创建dependent objects,手动创建的dependents需要调用register_dependent_object注册
6.更新在redefinition过程中的更新到interim表
7.调用dbms_redefinition.finish_redef_table完成redefinition
8.删除收回空间如interim table使用的表
注:使用online redefinition需要额外的空间
第三种:alter table … move
在move时可以使用当前表空间也可以指定其他表空间,如:
SQL> alter table emp move; --使用当前表空间
SQL> alter table emp move tablespace tbs_emp; --把表移动到tbs_emp表空间上
在move的过程会锁表,类似下的语句是不能执行:
select rownum from emp where rownum=1 for update nowait;
使用move降低HWM也需要额外表的空间.
第四种:expdp/impdp或exp/imp + truncate
第五种:rename + insert append
上面这两种方法在此就不作说明了.
总结:
shrink和online redefinition是首选择方法,其他方法在降低HWM时会有较长的时间表不能访问(锁表或直接不能访问),另外表后面的四种方法都可以改变表的表空间,online redefinition可以将普通表转换为分区表.
分享到:
相关推荐
本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等
近期来,FreeList的重要作用逐渐为 Oracle DBA所认识,网上也出现一些相关的讨论。...在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。
Oracle 10g HWM原理及性能优化.pdf
当全表扫描时,Oracle会读取HWM下所有的块,即使这些块中有很多是空块,空块的存在,也即是表中碎片的存在,必将增加全表扫描额外的物理I/O开销及CPU开销,严重降低访问Oracle数据表的性能。通过对Oracle中关于表中...
NULL 博文链接:https://teddywang.iteye.com/blog/849735
在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。 缩略语: ASSM:auto segement space management HWM:high water mark DBA:data block...
HWM-14为HWM(水平风场模型)系列模型的最新版本,主要改进在120km以上高度,增加了赤道和极区地基630 nm FPI和GOCE卫星风场测量数据,填补了部分纬度和地方时覆盖范围上的空白。
理解oracle的高水位以及如何降低, 增加空间的利用
针对oracle表空间收缩的操作!请仔细查看内部的说明。对于表空间过于庞大的数据库能起到回收剩余空间,并降低高水位HWM的作用
hwm
中性大气风场模型(2014):计算中性大气风场速度
Python中的HWM93 Python≥3.6的NASA水平风模型HWM93 适用于许多Fortran编译器,包括: Gfortran≥5 英特尔ifort PGI pgf90 Nvidia flang 安装 需要诸如gfortran类的Fortran编译器。 我们使用f2py ( numpy一...
62332440_hwm840Dsl
show hwm sql sql script javascript develop
MBUS power line communication module
hwm.task 这是什么 轻量级线程池实现 特征 仅标题 使用C++标准线程 您可以指定要启动的线程数 您可以使用std::future获取要执行的任务的返回值。 样本 int main () { // ! タスクキュー // ! キューに積まれた関...
游戏“英雄的战争与金钱”(heroeswm.ru)界面的定制和功能的扩展 目前主要特点: - 战斗列表中的人物角色旁边的OA显示,艺术品的数量和制作的存在; - 狩猎名单中的中立人的生命单位总数的图像;...
如果使用:db2 list tablespaces show detail,看到某个DMS表空间的已用页数低于高水位标记,则有可能通过如下方法降低高水位标记:重组表空间的某个表;或者将某个表中的数据导出,然后将它删除,重新创建该表再将...
1 2 2 D:\ORACLE\ORADATA\XJ\UNDOTBS01.DBF 4096 3 3 3 D:\ORACLE\ORADATA\XJ\DRSYS01.DBF 4096 4 4 4 D:\ORACLE\ORADATA\XJ\EXAMPLE01.DBF 4096 5 5 5 D:\ORACLE\ORADATA\XJ\INDX01.DBF 4096 6 6 6 D:\ORACLE\...
在 Oracle 数据的存储中,可以把存储空间想象为一个水库,数据想象为水 库中的水。水库中的水的位置有一条线叫做水位线,在 Oracle 中,这条线被称为`高水位线(High-warter mark, HWM)