Sam*_*han 2 performance oracle oracle-11g-r2 plsql partitioning performance-tuning
我正在尝试从备份表中恢复一个分区。两个表都有同名的分区。我的目标是从备份表分区 x 中抓取数据并将其放入原始表分区 x。x 是分区的名称。
我试图通过使用辅助表来做到这一点。有没有办法直接交换它们或任何其他性能更好的解决方案?
你见过这个吗? https://community.oracle.com/thread/889338?start=0&tstart=0
它指出您只能将分区从分区表交换到非分区表,反之亦然。
您需要暂时将分区交换到临时的非分区表中,然后再交换到目标分区表中。
上面广泛阐述的规则有一些有趣的皱纹;请参阅以下摘自 Oracle 文档的摘录:
exchange_partition_subpart
使用 EXCHANGE PARTITION 或 EXCHANGE SUBPARTITION 子句交换以下数据和索引段:
一张未分区的表,其中包含:
一个范围、列表或哈希分区
一个范围、列表或散列子分区
一个范围分区表,具有范围范围或列表范围复合分区表分区的范围子分区
一个散列分区表,其中包含范围散列或列表散列复合分区表分区的散列子分区
一个列表分区表,其中包含范围列表或哈希列表复合分区表分区的列表子分区
在所有情况下,表的结构和被交换的分区或子分区,包括它们的分区键,都必须相同。在列表分区和子分区的情况下,相应的值列表也必须匹配。