oracle的表如何跨表空间存储

发布时间:2020-07-28 17:16:06 作者:sunhuabin2016
来源:网络 阅读:288

oracle的一个表所在表空间,空间已经占满,其他表空间有剩余空间.实现表存在另外的表空间.

方案一:利用原表重建分区表

1:原表temp,存在字段id,time;

2:temp存在纪录;

3:根据原表temp创建新的分区表temp_new

CREATE TABLE temp_new (ID, TIME) PARTITION BY RANGE (TIME)

  PARTITION P1 VALUES LESS THAN (TO_DATE('2004-7-1', 'YYYY-MM-DD')) TABLESPACE space01,

  PARTITION P2 VALUES LESS THAN (TO_DATE('2005-1-1', 'YYYY-MM-DD')) TABLESPACE space02,

  PARTITION P3 VALUES LESS THAN (TO_DATE('2005-7-1', 'YYYY-MM-DD')) TABLESPACE space03,

  PARTITION P4 VALUES LESS THAN (MAXVALUE) TABLESPACE space04

)

AS SELECT ID, TIME FROM temp;

4:重命名表名

RENAME temp TO temp_old;

RENAME temp_new TO temp;

5:查询分区纪录存储情况

SELECT COUNT(1) FROM temp PARTITION (space01);

SELECT COUNT(1) FROM temp PARTITION (space02);

SELECT COUNT(1) FROM temp PARTITION (space03);

SELECT COUNT(1) FROM temp PARTITION (space04);

 


SELECT COUNT(1) FROM temp_old;

--分区存储纪录数之和与原纪录数相同,跨表空间分区存储成功.

有点:方法简单易用,采用DDL语句,不会产生UNDO,而只会产生少量REDO,效率相对较高,而且建表完成后数据已经分布到各个分区中.

缺点:对于数据库的一致性方面需要额外考虑.无法通过手工锁表的方式保证一致性.

适用于修改不频繁的表,在空闲时进行操作,表的数据量不宜太大.


推荐阅读:
  1. Oracle中分区表中表空间属性
  2. Oracle 审计表AUD$迁移表空间及创建清理job

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

分区表 partition by

上一篇:有哪些大数据开发常用的工具

下一篇:微信公众号新增功能背后有哪些设计逻辑

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》