感觉可能和数据库日志文件随着数据删除逐渐增大有关,日志文件删掉一些试试
解决方案 »
- 有谁了解或熟悉Oracle的HTB平台?
- SQL查询问题,从一个文件中依次读出查询条件,循环查询
- 该怎么办
- 求教一个oracle查询的问题如何取满足x0001-x0010之间的数据
- 高手帮忙,请教一个select语句
- 谁能告诉我这种SQL语句该怎么写
- "ORA-00604: 递归 SQL 层 1 出现错误 ORA-00942: 表或视图不存在" 我删除表的一列时报这样的错,有人说是权限的问题,不知是少什么权限?
- 这个语句为什么不能更新?急
- 从817中导出的dmp文件怎样导入到816的数据库中去。
- enterprise manager怎么搜索不到节点?急
- PL/SQL和eclipse上的程序操作冲突吗?
- oracle 11g r2 安装时参数设置问题
数据表在添加、更新、删除操作中会产生索引碎片,导致查询速度变慢,特别是查询大型数据表时更为明显
索引那肯定是有的,我现在是按主键的条件去删除的
1、Drop原来的索引再重建这些索引,这种方法的优点是索引彻底重建,达到最理想的状况。但是这此会阻塞所有的查询,最好是在索引碎片十分严重,并且使用REBUILD无法达到效果的情况下使用。注意:使用DROP_EXISTING子句,可以避免non-clustered index被重建两次。
2、ALTER INDEX 索引名 REBUILD 重新生成索引。
重新生成索引将会删除并重新创建索引。这将根据指定的或现有的填充因子设置压缩页来删除碎片、回收磁盘空间,然后对连续页中的索引行重新排序。该方法在一个事务中完成操作,在数据文件中需要有足够的free space来满足将所有的索引及相关的一些对象进行重建,否则操作可能失败,或者是重建的不十分彻底。对于数据量非常大的表,所需的free space也更多,应当特别注意这一点。
3、ALTER INDEX 索引名 REORGANIZE 重组索引。
使用最少系统资源重新组织索引,重新组织还会压缩索引页。可以在数据库online的情况下执行,但是整理不够彻底。