所以,我有一个.NET程序通过Oracle ODP.NET使用数组绑定存储过程调用将记录批量加载到分区表中,但这既不在这里也不在那里。
我想知道的是:因为我在所述表上有一个分区索引,所以批量加载的速度非常慢。我完全理解我不能删除索引分区,但我显然不希望丢弃并重建整个索引,因为这将花费相当多的时间来执行。这是我唯一的办法吗?
是否有一种相当简单的方法来删除分区本身,然后重建分区和索引分区,这样可以节省时间并完成目标?
答案 0 :(得分:1)
您是否一次加载整个分区?或者您只是将新行添加到现有分区?所有索引是否均按表格进行了分配?
通常,如果要将数据加载到分区表中,则会选择分区方案,以便每次加载都会将数据放入新分区。如果是这种情况,您可以使用分区交换来加载数据。简而言之,您将数据加载到(未编制索引)的临时表中,该表的结构与实际表匹配,您创建索引以匹配实际表上的索引,然后执行
ALTER TABLE partitioned_table
EXCHANGE PARTITION new_partition_name
WITH TABLE staging_table_name
WITHOUT VALIDATION;