无法删除Oracle索引分区 - 除了删除整个索引和重建之外的任何其他选择?

时间:2011-01-13 19:36:54

标签: oracle oracle10g partitioning indexing

所以,我有一个.NET程序通过Oracle ODP.NET使用数组绑定存储过程调用将记录批量加载到分区表中,但这既不在这里也不在那里。

我想知道的是:因为我在所述表上有一个分区索引,所以批量加载的速度非常慢。我完全理解我不能删除索引分区,但我显然不希望丢弃并重建整个索引,因为这将花费相当多的时间来执行。这是我唯一的办法吗?

是否有一种相当简单的方法来删除分区本身,然后重建分区和索引分区,这样可以节省时间并完成目标?

1 个答案:

答案 0 :(得分:1)

您是否一次加载整个分区?或者您只是将新行添加到现有分区?所有索引是否均按表格进行了分配?

通常,如果要将数据加载到分区表中,则会选择分区方案,以便每次加载都会将数据放入新分区。如果是这种情况,您可以使用分区交换来加载数据。简而言之,您将数据加载到(未编制索引)的临时表中,该表的结构与实际表匹配,您创建索引以匹配实际表上的索引,然后执行

ALTER TABLE partitioned_table
  EXCHANGE PARTITION new_partition_name
  WITH TABLE staging_table_name
  WITHOUT VALIDATION;