易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle数据库降低HWM的几种方法

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;    


相关文档:

ORACLE锁的管理

ORACLE里锁有以下几种模式:
0:none
1:null 空
2:Row-S 行共享(RS):共享表锁,sub share
3:Row-X 行独占(RX):用于行的修改,sub exclusive
4:Share 共享锁(S):阻止其他DML操作,share
5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive
6:exclusive 独占(X):独立访问使用,exclusive ......

Windows Oracle 10G手工创建数据库

在Oracle中建库,通常有两种方法。一是使用Oracle的建库工
且DBCA,这是一个图形界面工且,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。在Windows系统中,这个工具可以在Oracle程序组中打开(”开始”—“程序”—“ Oracle OraDb10g_home1”&mdash ......

Oracle系列:LOB大对象处理

 Oracle系列:LOB大对象处理
 主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。
 主要介绍字符类型和二进制文件类型LOB数据的存储,单独介绍二进制类型LOB数据的存储。
 
一,Oracle中的LOB数据类型分类
 1,按存储数据的类型分:
  ①字符类型:
 &nbs ......

【转】Oracle Tablespace创建

 Tablespace
ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.
  因此,在创建对象之前,首先要分配存储空间.  
  分配存 ......

oracle forall语句

 FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。
1:
用FORALL来增强DML的处理能力
Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理
;BULK COLLE ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号