【问题标题】:Oracle split partition to a different tablespaceOracle 将分区拆分到不同的表空间
【发布时间】:2018-11-02 04:01:33
【问题描述】:

是否可以拆分一个分区并将新的子分区移动到不同的表空间?

假设我有表空间 t1 和 t2。对于表 x,我只有一个位于 t1 中的分区 p1。我可以将 p1 拆分为 p1 和 p2 并仅将 p2 移动到表空间 t2 吗?以下查询是否有效?

ALTER TABLE X
SPLIT PARTITION P1 -- currently in tablespace T1
AT (10, TO_DATE('20150916000000', 'YYYYMMDDHH24MISS'))
INTO (PARTITION P2
      tablespace T2,
      PARTITION P1) PARALLEL 10;

【问题讨论】:

  • 你试过了吗?它应该可以工作,你有什么错误吗?
  • 我还没有尝试过,因为这会影响数百万行,我担心的是即使它被拆分到指定的表空间...将来对该表的查询是否会返回属于另一个表空间中的分区?
  • 查询(或任何 DML)完全独立于表空间。但你可能会问。如果你得到一个新分区会发生什么。
  • 是的!拆分到单独的表空间确实有效...并发布拆分,与新子分区中的数据有关的表上的选择语句返回预期的行。非常感谢大家!

标签: oracle split partition tablespace


【解决方案1】:

是的,在 Oracle 11g 中,可以将现有分区移动到新表空间。

所以,你可以分两步完成-

  1. 分割分区
  2. 将相关分区移至新表空间

例子-

表名 - Test_history_umts
分区名称 - sys_541
新表空间名称-data1

查询-

alter table test_history_umts move sys_541 to tablespace data1;

希望对你有帮助!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    相关资源
    最近更新 更多