gpt4 book ai didi

oracle - 如何从 Oracle 表中删除表分区?

转载 作者:行者123 更新时间:2023-12-04 07:01:02 28 4
gpt4 key购买 nike

我发现在特定表上使用的分区会影响查询性能,因此我想从表中删除分区。是否有捷径可寻?有问题的表有 64 个分区。根据一些初步调查,我提出了以下选项。有没有更好的办法?

  1. 将数据复制到另一个表中,删除所有分区,然后将数据复制回原始表
  2. 将数据复制到另一个表中,删除原表,然后重命名新表并重建索引
  3. 使用 MERGE PARTITION 将所有分区合并为一个分区

想法?

最佳答案

我个人认为选项 2 的变体听起来是最好的方法。

  1. 创建新表作为 select * from旧表
  2. 在新表上建立索引(*)
  3. 将旧表重命名为某物不同
  4. 将新表重命名为旧表名
  5. 切换任何外键约束旧表到新表。同时转让任何赠款、同义词等。
  6. 慢速删除旧表

(*) 非分区表可能需要与分区表不同的索引。如果您特别关注索引名称,则可以在第 6 步之后使用 ALTER INDEX ... RENAME TO ... 语法。

这种方法的优点是可以最大限度地减少停机时间(基本上是第 3、4 和 5 步)。

关于oracle - 如何从 Oracle 表中删除表分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833618/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com