oracle的表如何跨表空间存储
oracle的一个表所在表空间,空间已经占满,其他表空间有剩余空间.实现表存在另外的表空间.
湖滨网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
方案一:利用原表重建分区表
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,效率相对较高,而且建表完成后数据已经分布到各个分区中.
缺点:对于数据库的一致性方面需要额外考虑.无法通过手工锁表的方式保证一致性.
适用于修改不频繁的表,在空闲时进行操作,表的数据量不宜太大.
网站标题:oracle的表如何跨表空间存储
标题来源:http://scyanting.com/article/goocgd.html