用户名: 密码: 注册 找回密码
搜索   
收藏本站 设为主页
首页
新闻 供求 报价 技术 下载 商家 商城 博客
论坛
硬件学院 软件学院 解决方案
技术查找 
  按标题 按全文
相关技术
· 主流虚拟主机布阵方式浅...
· KVM主机切换系统轻松管理...
· 如何得到AIX系统安装时间...
· 服务器技术之负载均衡技...
· 网络应用技巧 用注册表强...
· with语句指向自身的小办...
最近头条
· 所有主流Linux发行版本已...
· 从Unix迁移到Linux是否必...
· IBM System x 服务器帮助...
· 微软云计算平台Windows ...
· Intel企业级固态硬盘开始...
· IBM花费3年打造“网络故...
相关供求
· 221692-B23/HP多模15米L...
· SUN 300-1501
· SUN工作站B2000/B1000/B...
· 各种服务器配件
· SUN连接卡 X913A/SG-XPC...
· 服务器专家品牌服务器主...
Advertisement
 首页 > 技术频道 > 软件学院 > 浏览技术 关键字: oracle  数据库 
Oracle中有效的Drop一张大表
2006-10-19 15:28:11   equalnull   来源:中华服务器网    点击:1012次   加入收藏夹

一、流程简介 

1、先不直接使用Drop table命令,取而带之用带有REUSE STORAGE子句的Tuncate table命令。因为没有Extents要被回收,Trunate table命令执行很快,只是段的highwater mark简单的被调整到段头的block上。 

2、使用带有KEEP子句的alter table命令逐渐的回收表的Extents,以减轻对Cpu的压力。 

二、以一个例子来说明: 

假定有一个表名字为BIGTAB,系统的cpu资源很有限,根据过去的经验drop这样的一张表要花掉数天的时间。如下的操作就可以在不大量耗用cpu的情形下很有效的Drop这张大表。 

1. Truncate table, 使用REUSE STORAGE子句: 

SQL> TRUNCATE TABLE BIGTAB REUSE STORAGE; 

2. 如果要花费3天(72小时) 去drop这张表,可以把时间分散到6个晚上,每个晚上drop 1/3Gb数据. 

Night 1: 
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 1707M; (2Gb*5/6) 
Night 2: 
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 1365M; (2Gb*4/6) 
Night 3: 
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 1024M; (2Gb*3/6) 
Night 4: 
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 683M; (2Gb*2/6) 
Night 5: 
SQL> ALTER TABLE BIGTAB DEALLOCATE UNUSED KEEP 341M; (2Gb*1/6) 
Night 6: 
SQL> DROP TABLE BIGTAB; 

同样的方法也对LOB段适用. 
对不起,您需要登录后才能查看全部详细内容
上一条技术: 详解Oracle 10g中MERGE功能的增强
下一条技术: Oracle数据库自动备份的实现历程


关于我们 法律声明 广告服务 友情链接 联系我们
版权所有:中华服务器网©2001-2008
粤ICP备05008160号 由深圳市七乘二四信息技术有限公司提供技术支持。
 客 服