日期:2014-05-17  浏览次数:20660 次

对一个数据表的访问突然变得很慢?
上个周select count(*) from table1; 2秒内就可以出结果
从这个周开始,执行这条语句,要30多秒,
而且表里面的数据量只是稍微增加了一点,5%不到

请问,可能什么原因导致这个问题的?


------解决方案--------------------
频繁insert delete 导致高水位线降不下来

最简单办法 ,truncate
------解决方案--------------------
首先看是不是表里有索引,如果有索引,其实Oracle采用的是快速索引全扫描,即使高水位线也没有关系。所以,楼主建议你最好是先看下你这句话的执行计划。如果是采用快速索引扫描,则可能是因为索引块的碎片太多了,你重构下索引。如果采用的是全表扫描,则你按楼上说的,但是一定要记住备份好表数据。
------解决方案--------------------
高水位线使扫描无缘无故多执行了不少。
最简单的办法,重建。
------解决方案--------------------
先说,有多少条记录
------解决方案--------------------
还是那句话,建议楼主先看执行计划。如果采用的是索引全扫描则和高水位线没有关系,你就要重构索引。如果是全表扫描,则按楼上所说要先备份数据,然后truncate表。高水位线和全表扫描有关系,如果使用的是索引就没有关系。