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

Oracle Shrink Table

今天在戴明明同学的一个回帖里给了个关于Shrink命令的帖子,转过来学习学习~
=============================================================================================
从10g开始,oracle开始提供Shrink的命令,假如我们的表空间中支持自动段空间管理 (ASSM),就可以使用这个特性缩小段,即降低HWM。这里需要强调一点,10g的这个新特性,仅对ASSM表空间有效,否则会报 ORA-10635: Invalid segment or tablespace type。
 
如果经常在表上执行DML操作,会造成数据库块中数据分布稀疏,浪费大量空间。同时也会影响全表扫描的性能,因为全表扫描需要访问更多的数据块。从oracle10g开始,表可以通过shrink来重组数据使数据分布更紧密,同时降低HWM释放空闲数据块。
 
segment shrink分为两个阶段:
 
1、数据重组(compact):通过一系列insert、delete操作,将数据尽量排列在段的前面。在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁。由于涉及到rowid的改变,需要enable row movement.同时要disable基于rowid的trigger.这一过程对业务影响比较小。
 
2、HWM调整:第二阶段是调整HWM位置,释放空闲数据块。此过程需要在表上加X锁,会造成表上的所有DML语句阻塞。在业务特别繁忙的系统上可能造成比较大的影响。
 
shrink space语句两个阶段都执行。
 
shrink space compact只执行第一个阶段。
如果系统业务比较繁忙,可以先执行shrink space compact重组数据,然后在业务不忙的时候再执行shrink space降低HWM释放空闲数据块。
 
shrink必须开启行迁移功能。
 
alter table table_name enable row movement ;
 
注意:alter table XXX enable row movement语句会造成引用表XXX的对象(如存储过程、包、视图等)变为无效。执行完成后,最好执行一下utlrp.sql来编译无效的对象。
============================================================================================
utlrp.sql and utlprp.sql
The utlrp.sql and utlprp.sql scripts are provided by Oracle to recompile all invalid objects in the database. They are typically run after major database changes such as upgrades or patches. They are located in the $ORACLE_HOME/rdbms/admin directory and provide a wrapper on the UTL_RECOMP package. The utlrp.sql script simply calls the ut


相关文档:

Oracle 存储过程中使用cursor 游标遍历数据

 先定义一个cursor:
Procedure  P_MYPROC (
                                    PI_PARAM VARCHAR2
)IS
VI_A&nb ......

oracle单行函数

单行函数:
函数类别:
    单行:返回单个结果:substr,length
    多行:返回多个结果,any,all
单行的分类:
    字符类,日期类,数字类,转换类,通用类
1.字符类
转换大小写:
lower:转换为小写
Select ENAME,LOWER(ENAME) from EMP
upper:转换为大写
Select upper( ......

ORACLE自增长字段实现(转)

项目中,需要建立自增长字段,但碰到oracle本身不支持此种类型的字段,只好用别的办法。 
ORACLE自增长字段实现(转)
     首先,你要有一张表!
       CREATE TABLE example(
          &nbs ......

C#备份Oracle代码

项目开发中,需要远程备份数据库,以下为C#远程备份数据库的代码
 /// <summary>
/// 数据库备份
/// </summary>
/// <param name="fileName">dmp文件名称</param>
/// <param name="logFileName">log文件名称</param>
/// <re ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号