我测试下面这sql语句时发现:
第一次:
select count(*)
from temperature t
where t.t_checktime >=
to_date('2013-03-21 00:00:00', 'yyyy-mm-dd HH24:MI:SS')
and t.t_checktime <=
to_date('2013-04-10 23:59:59', 'yyyy-mm-dd HH24:MI:SS');
COUNT(*)
----------
743360
执行计划
----------------------------------------------------------
Plan hash value: 4082582504
--------------------------------------------------------------------------------
-------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Tim
e |
--------------------------------------------------------------------------------
-------
| 0 | SELECT STATEMENT | | 1 | 7 | 3220 (1)| 00:
00:39 |
| 1 | SORT AGGREGATE | | 1 | 7 | |
|
|* 2 | INDEX RANGE SCAN| IDX_TEMPERATURE_2 | 76271 | 521K| 3220 (1)| 00:
00:39 |
--------------------------------------------------------------------------------
-------
第二次:
select count(*)
from temperature t
where t.t_checktime >=
to_date('2013-03-21 00:00:00', 'yyyy-mm-dd HH24:MI:SS')
and t.t_checktime <=
to_date('2013-04-11 23:59:59', 'yyyy-mm-dd HH24:MI:SS');
COUNT(*)
----------
777600
执行计划
----------------------------------------------------------
Plan hash value: 2391986960
--------------------------------------------------------------------------------
--
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
|
--------------------------------------------------------------------------------
--
| 0 | SELECT STATEMENT | | 1 | 7 | 3367 (1)| 00:00:41
|
| 1 | SORT AGGREGATE | | 1 | 7 | |
|
|* 2 | TABLE ACCESS FULL| TEMPERATURE | 79903 | 546K| 3367 (1)| 00:00:41
|
--------------------------------------------------------------------------------
--
第一次查询速度瞬间完成,第二次就等了将近十秒,查询条件只是差了一天而已,为什么会这样的?有人能告诉我一下吗?谢谢了~
oralce?sql?执行计划 sql 执行计划
------解决方案--------------------
多作几次对比看下
------解决方案--------------------