您的位置:首页 > 数据库 > Oracle

Oracle 表删除大量数据后查询变慢解决

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

来源:http://hi.baidu.com/bbz_dd_a/blog/item/1c962bf4b69666dff2d38588.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: