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
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
相关文章推荐
- Oracle 表删除大量数据后查询变慢解决
- Oracle表删除大量数据后查询变慢问题
- Oracle 表删除大量数据后查询变慢问题
- Oracle 表删除大量数据后查询变慢问题
- 一次oracle大量数据删除经历
- Oracle闪回查询恢复delete删除数据
- 解决mysqldb查询大量数据导致内存使用过高的问题
- Oracle闪回查询恢复delete删除数据
- oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)
- oracle查询重复数据和删除重复记录示例分享
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- oracle查询常用的知识点之日期,重复字段,groupby,查询大量数据时优化
- oracle insert中文数据,查询出现乱码问题解决
- Oracle锁表数据查询及解决方法
- PHP查询大量数据内存耗尽问题的解决方法
- 解决Oracle删除重复数据只留一条的方法详解
- oracle sqlplus 查询大量数据不滚屏输出到文件
- MYSQL 不允许在子查询的同时删除原表数据的解决方法
- Oracle笔记——快速删除查询重复的数据
- oracle 查询及删除表中重复数据