会员登陆  支付方式  联系我们  在线客服  网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> ORACLE数据库技术 >> ORACLE碎片整理(2)
 
精华文章
    一步一步教你Oracle 9...  
    ORACLE碎片整理(2)  
    ORACLE碎片整理(1)  
    关于Oracle 对 Linux ...  
    ORACLE之常用FAQ V1.0...  
    ORACLE之常用FAQ V1.0...  
    Oracle平台应用数据库...  
    Oracle的空间数据库管...  
    Oracle传统基本体系结...  
    Oracle平台下的数据分...  
    Oracle密码文件的创建...  
    Oracle数据库的安全策...  
    双机容错环境Oracle数...  
    Oracle数据库系统使用...  
    ORACLE常见错误代码分...  
    Oracle数据库管理脚本...  
    Oracle中一个日期查找...  
    在ORACLE里用存储过程...  
    Oracle数据库逻辑备份...  
    Oracle数据库系统的安...  
    Oracle数据库处理身份...  
    Oracle数据库的备份及...  
    Oracle数据库表空间恢...  
    案例讨论:Oracle两表...  
    Oracle数据库系统性能...  
    优化Oracle网络设置的...  
    Oracle9i RMAN备份及恢...  
    弥补Oracle数据库访问...  
  更多>>  
   ORACLE数据库技术
 ORACLE碎片整理(2)
4、自由范围的碎片整理 



1)表空间的 pctincrease 值为非 0 



可以将表空间的缺省存储参数 pctincrease 改为非 0 。一般将其设为 1 ,如: 



alter tablespace temp 



default storage(pctincrease 1); 



 

这样 SMON 便会将自由范围自动合并。也可以手工合并自由范围: 



alter tablespace temp coalesce; 



5、段的碎片整理 



我们知道,段由范围组成。在有些情况下,有必要对段的碎片进行整理。要查看段的有关信息,可查看数据字典 dba_segments ,范围的信息可查看数据字典 dba_extents 。如果段的碎片过多,将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。这个过程可以用 Import/Export (输入 / 输出)工具来完成。 



Export ()命令有一个(压缩)标志,这个标志在读表时会引发 Export 确定该表所分配的物理空间量,它会向输出转储文件写入一个新的初始化存储参数 -- 等于全部所分配空间。若这个表关闭, 则使用 Import ()工具重新生成。这样,它的数据会放入一个新的、较大的初始段中。例如: 



exp user/password file=exp.dmp compress=Y grants=Y indexes=Y 



tables=(table1,table2); 



 若输出成功,则从库中删除已输出的表,然后从输出转储文件中输入表: 



imp user/password file=exp.dmp commit=Y buffer=64000 full=Y 



这种方法可用于整个数据库。 



以上简单分析了 Oracle 数据库碎片的产生、计算方法及整理,仅供参考。数据库的性能优化是一项技术含量高,同时又需要有足够耐心、认真细致的工作。 对数据库碎片的一点探讨, 



 



回复: ORACLE碎片整理[转帖] 



下面是一种如何自动处理表空间碎片的代码,希望对上大家看上文有用 



Coalesce Tablespace Automatically 

This technique comes from Sandeep Naik, a database administrator 

for GSXXI, Inc. in New York City, New York 

Here is a handy script which can be scheduled to automatically run 

and coalesces the tablespaces. 

This script is designed to run in NT but can be run in any operating system 

by slight modifications in the path where the file spools 

from the SQLPLUS environment. It assumes that the user who runs the script 

has priviledges to view the data dictionary. 

Start of code 

-------------------------------------- 

sqlplus / 

prompt this script will coalesce the tablespace automatically 

set verify off; 

set termout off; 

set head off; 

spool c: empcoalesce.log 

select alter tablespace ||TABLESPACE_NAME|| coalesce ; 

from DBA_FREE_SPACE_COALESCED where PERCENT_EXTENTS_COALESCED <100 

or PERCENT_BLOCKS_COALESCED<100 ; 

spool off; 

@ c: empcoalesce.log 

set head on; 

set termout on; 

set verify on; 

prompt Tablespaces are coalesced successfully



  • 上一篇文章: 一步一步教你Oracle 9i在Linux下的安装 (5)
  • 下一篇文章: ORACLE碎片整理(1)
  • 域浪网络ISP经营许可证 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有