从分区中删除一些数据会影响本地索引吗?

时间:2016-12-13 16:10:22

标签: sql oracle

我有一个分区表"闹钟"如下

  • 按范围(版本)划分;版本:1,2,3 ..
  • 每个分区在版本
  • 上都有本地索引
  • 每个分区都有一列混合作为本地索引
  • 版本是本地索引
  • 没有全球指数

由于一些业务限制,

  • 我需要从每个版本中删除一些数据(但不是所有分区数据)。
  • 旧版本不会更新,只能选择
  • 每天,我正在插入新版本数据

因此,我将删除如下:

delete /*+ full(alarms) parallel(alarms,4)*/ from alarms where version <= (number) and alarm_type = 'type1'; 

这不会删除所有分区。但可能每隔1个月,这个分区就会空了。

所以我在所有版本上都有一个过程循环,所有空分区都将按名称删除。

我的问题是:在分区不为空之前

  • 这可能影响性能?
  • 我是否需要重建索引每次删除?

1 个答案:

答案 0 :(得分:0)

  1. 这可能会影响表现吗?
  2. 我不确定你的意思。如果你的意思是&#34;将删除表中的数据会影响该表的其他并发用户,答案是肯定的,尽管不可能说出影响程度。如果你的意思是,&#34;将删除表格中的数据会对访问该表格产生长期影响&#34;,我的答案是长期影响应该很小。

    1. 每次删除都需要重建索引吗?
    2. 从表中删除数据是数据库中的正常活动,索引将得到正确维护。

      祝你好运。