当前位置: 代码迷 >> Oracle管理 >> 为啥一条这么简单的语句要花费这长时间,求指教
  详细解决方案

为啥一条这么简单的语句要花费这长时间,求指教

热度:144   发布时间:2016-04-24 04:14:08.0
为什么一条这么简单的语句要花费这长时间,求指教!
本人用Oracle 11g,64位WIN7。
以下是执行语句:
SELECT COUNT(*)  FROM DOC_CARD D;
该语句只需花费0.015s,DOC_CARD表才61条数据。
可一旦加上一个非索引的条件时,却出奇的慢:
SELECT COUNT(*)  FROM DOC_CARD D WHERE D.VOL_SEQ = 0;
一个只有61条数据的表,居然要花费6s的时间!
VOL_SEQ没有建索引,如果换作其他有索引的列作为条件查询的话,就只需要0.02s左右。
之前这张表里有1000W条数据,昨天早上被我DELETE了。现在一个只有60条数据的表WHERE条件查询居然跟1000W数据所用的时间差不多。
跪求指教。。。

------解决思路----------------------
高水位问题
你的数据虽然delete掉了,但是数据占用的空间并没有被释放,因此查询的时候还是会查询整个空间去检索,所以查询的时间和删除之前基本是一样的
  相关解决方案