中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
Oracle10G新功能验证体会
作者:佚名 时间:2004-07-08 10:40 出处:互连网 责编:chinaitpower
              摘要:Oracle10G新功能验证体会

  我们知道当我们对表进行大量的delete操作后,系统的性能会有明星的下降.
  在10G以前我们是怎么做的呢?
  
  1.exp/imp
  2.alter table xxx move
  
  
  10g提供一个新的功能
      alter table tablenm shrink space
  
  他可以释放表空间里的多余空间
  
  他还适用于
      Index
      物理View
      物理View log
  
  ◆环境
  Linux 2.4.9-e.24enterprise
  Oracle10g EE Release 10.1.0.2.0
  
  ◆Segment缩小命令
  
  SQL> select owner,segment_name,bytes,blocks,extents from dba_segments
  where segment_name = 'EMP';
  
  OWNER SEGMENT_NAME   BYTES   BLOCKS  EXTENTS
  ----- ------------ ---------- ---------- ----------
  SCOTT EMP      53477376    6528     66
  
  SQL> alter table emp shrink space;
  
  ORA-10636: ROW MOVEMENT is not enabled
  
  ※Segment缩小命令必须开启行移动功能
  
  SQL> alter table emp enable row movement;
  
  Table altered.
  
  
  SQL> alter table emp shrink space;
  
  Table altered.
  
  SQL> select owner,segment_name,bytes,blocks,extents from dba_segments
  where segment_name = 'EMP';
  
  OWNER SEGMENT_NAME   BYTES   BLOCKS  EXTENTS
  ----- ------------ ---------- ---------- ----------
  SCOTT EMP        65536     8     1
  
  如果是这样的话和alter table xxx move的功能基本上还是一样的,他必定有更强大的地方
  
  ◆alter table xxx shrink space VS. alter table xxx move
  
  ◇1. 在线的shrink
  
  SES1>alter table emp move;
  
  
  SES2>select l.oracle_username,o.name objname,l.locked_mode from v$locked_object l,obj$ o where l.object_id=o.obj#;
  
  ORACLE_USERNAME        OBJNAME            LOCKED_MODE
  ------------------------------ ------------------------------ -----------
  SCOTT             EMP                   6
  
  SES2>select rownum from scott.emp where rownum=1 for update nowait;
  
  ORA-00054:
  
  SES1> alter table emp shrink space;
  
  
  SES2> select l.oracle_username,o.name objname,l.locked_mode from v$locked_object l,obj$ o
     where l.object_id=o.obj#;
  
  ORACLE_USERNAME        OBJNAME            LOCKED_MODE
  ------------------------------ ------------------------------ -----------
  SCOTT             EMP                   3
  
  SES2>select rownum from scott.emp where rownum=1 for update nowait;
  
    ROWNUM
  ----------
       1
  
  shrink比起move最大的不同是在object上没有排他锁.可以从LOCKED_MODE列上看出,在Move命令里该值是6,即排他锁而在shrink命令里该值是3,行级锁所以在不停止业务的情况下可以对表进行重组
  
  ◇2 shrink命令执行途中即使被强行终止,也可以完成一部分的空间整理
  
  ▽dbms_space.space_usage    整理前输出
  Segment Owner   = SCOTT
  Segment Name    = EMP
  Unformatted Blocks = 16
  0 - 25% free blocks= 0
  25- 50% free blocks= 6366
  50- 75% free blocks= 0
  75-100% free blocks= 36
  Full Blocks    = 0
  
  ▽整理中终止
  SQL> alter table emp shrink space;
  
  ORA-00028: your session has been killed
  
  ▽强行终止后,表的状态
  Segment Owner   = SCOTT
  Segment Name    = EMP
  Unformatted Blocks = 16
  0 - 25% free blocks= 1
  25- 50% free blocks= 2808
  50- 75% free blocks= 0
  75-100% free blocks= 1004
  Full Blocks    = 2553
  
  ▽再次使用shrink,并正常完成
  Segment Owner   = SCOTT
  Segment Name    = EMP
  Unformatted Blocks = 0
  0 - 25% free blocks= 1
  25- 50% free blocks= 2
  50- 75% free blocks= 0
  75-100% free blocks= 0
  Full Blocks    = 4567
  
  
  使用dbms_space.space_usage可以推算出表shrink的状况
  
  1.整理前
  没有Full Blocks,许多25%空的block
  
  2.强行终止后
  已经有Full Blocks,空的block在减少
  
  3.正常完成后
  free blocks没有了
  
  适用表,索引,大对象,IOT,物化视图
  
  alter table tbname row movement
  保持HWM
  alter table tbname shrink space compact;
  回缩表与HWM
  alter table tbname shrink space;
  回缩表与相关索引
  alter table tbname shrink space cascade;
  回缩索引
  alter index idxname shrink space;
  
  限制
  cluster中的表
  有long类型的表
  有on_commit物化视图的表
  有基于rowid物化视图的表
  大对象(LOB)索引
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有