本人用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掉了,但是数据占用的空间并没有被释放,因此查询的时候还是会查询整个空间去检索,所以查询的时间和删除之前基本是一样的