当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: Oracle数据库里存放着各种各样的数据,其中有一些数据表会随着时间的推移,越来越大。
 

 

 ·nt下如何彻底删除oracle    »显示摘要«
    摘要:软件环境: 1、windows 2000+oracle 8.1.72、oracle安装路径为:c:\oracle 实现方法: 1、开始->设置->控制面板->管理工具->服务 停止所有oracle服务。 2、开始->程序->oracle - orahome81->oracle installation products-> universal installer 卸装所有or......
 ·oracle 10g 中的"回收站"    »显示摘要«
    摘要:回收站,从原理上来说就是一个数据字典表,放置用户drop掉的数据库对象信息.用户进行drop操作的对象并没有被数据库删除,仍然会占用空间.除非是由于用户手工进行purge或者因为存储空间不够而被数据库清掉.数据库有了这样的功能,能够减少很多不必要的麻烦.常常看到开发人员误把表删除,急急忙忙找dba来想办法的情况,相信,随着10g的大范围应用,这种情形应该比较少见了.dba管理上的相关信息可以从us......


在ORACLE里用存储过程定期分割表

oracle数据库里存放着各种各样的数据,其中有一些数据表会随着时间的推移,越来越大.如交友聊天的日志. 短信收发的日志.生产系统的日志.动态网站发布系统的日志等等.这样的信息又与时间紧密相关,有没有办法 让这些日志表能到时间自动分割成历史年月(如log200308,log200309)的表呢? 请看看我用存储过程定期分割表的 方法吧.

1.初学数据库时只知道用delete来删除表里的数据.但在oracle数据库里,大量delete记录后,并不能释放表 【程序编程相关:3月9日Red Hat对initscri

一.问题的引出 【推荐阅读:3月9日Red Hat对squid升级

2.用重命名(rename)表的方法 【扩展信息:3月9日Red Hat对mailman升

所占用的物理空间,这里面有一个高水位的概念,所以我们不能用delete来分割表.

(1).先建一个与原来日志表(假如是log)数据结构一模一样的新表(如log_new),建约束.索引及指定字段的默

认值;

(2).重命名表log到log_yyyymm;

要注意的问题是oltp系统可能会因为dml操作阻碍重命名执行成功,出现ora-00054资源正忙的错误提示,

需要试多次才能成功.

(3).重命名表log_new到log.

这样应用程序不用修改(受影响的时间仅几秒钟),日志表就被截断分割了.

上述步骤可以在oracle里可以用存储过程来实现它们.

二.用存储过程来分割表

可以看到在重命名表的方法中,步骤(2)是个关键.

下面这个rename_table过程会在有锁阻碍的情况下用递归的方式重试100次.
...   下一页
 ·sql*plus常用命令列表    »显示摘要«
    摘要:假设当前执行命令为:select * from tab;(a)ppend 添加文本到缓冲区当前行尾a order by tname 结果:select * from tab order by tname;(注:a后面跟2个空格)(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;(c)hange/text从当前行删......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE