Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。
alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后,表的行号rowid会发生变化,而基于rowid的索引则会变成无效。因此该操作后必须重建索引。否则会 提示“ORA-01502: 索引'SMP.ITEMLOG_MID_IDX'或这类索引的分区处于不可用状态” 而重建索引的方法当然可以先drop掉再create ,但是这样太麻烦了,

 

用alter index XXX rebuild 这样最快了,不会改变原来的索引结构。

相关文章:

  • 2022-12-23
  • 2021-11-23
  • 2021-12-11
  • 2021-05-28
  • 2022-12-23
  • 2021-11-14
  • 2021-12-28
  • 2023-02-15
猜你喜欢
  • 2022-12-23
  • 1970-01-01
  • 2022-12-23
  • 2021-06-29
  • 2021-06-07
  • 2022-12-23
  • 2021-10-06
相关资源
相似解决方案