我这里有一个08年的利用oracle 9.2.0.6 的数据库,原先软件的一个功能是不常用的功能,所以用的那个数据库也没有分区。就是一个平常的表。但现在这个功能已经经常在用了。数据库记录非常的多,并且这个软件主要功能是将图片放到库里面存放。几乎最长3天就要TRUNCATE TABLE 一次。要不整个系统就会很慢慢。所以现在我有以下问题,
一、能否在不改变软件访问方式(软件太老,厂家不提供支持,无法改动)的情况下,对这个表以每天的日期进行分区。
二、如果第一个无法实现的话,是否可以有个脚本自动删除3天以前的数据。并且自动释放表空间?
对于oracle不懂,请各们大大们指点。
一、能否在不改变软件访问方式(软件太老,厂家不提供支持,无法改动)的情况下,对这个表以每天的日期进行分区。
二、如果第一个无法实现的话,是否可以有个脚本自动删除3天以前的数据。并且自动释放表空间?
对于oracle不懂,请各们大大们指点。
解决方案 »
- 数据库表关联查询
- ORACLE 添加 删除字段怎么弄?
- oracle中clob显示乱码,怎么解决?
- 主键索引一定是number列吗
- 循环中的动态SQL报错,为什么啊
- 关于ORA-00604/ORA-04031问题
- 用select语句检索一个表中的前100条记录,这个select语句该怎么写?
- 如何从多个文件中取数据并合并导到一个ORACLE表中
- "...Where A.ClassId like B.TypeId || '%' ORDER BY..."什么意思?
- 将A用户下某表下的某个字段的查询权限赋给B用户?
- SQL语句求指导
- 麻烦大家推荐一本 经典的oracle olap 开发方面的书籍!谢谢大家
where 字段 < sysdate - 3下边是个例子。--创建触发器删除时,删除对应的全部字段
CREATE TRIGGER Delete_Group ON [GroupPerson] --要创建的触发器名称和作用在GroupPerson表上
FOR DELETE
AS
declare @AutoId int --定义删除参数AutoId(唯一ID)
select @AutoId = AutoId from deleted --参数赋值
delete from Group_TextTemp where GroupId = @AutoId --删除临时保存内容表
Go
2,然后对 TB_B 按日期进行区间分区,如果还有其他特性的话,可以考虑建个组合分区。
3,把 TB_A 的数据导入到 TB_B 。
4,确认无问题后,将TB_B rename 成 TB_A 。
2、UNIX crontab 定时任务,客户端的定时任务,oracle的dbms_job定时任务都可以定时删除
3、如果数据重要的话,还是要注意备份 create table XXX_YYMMDD as select * from XXX
execute immediate“truncate table XXX”
2 也可以实现,编写删除的存储过程,写job3天执行一次就可以了