5 - access("CHANNELS"."SNAPSHOT_TIME">TO_DATE('11/25/2008 23:50','MM/DD/YYYY HH24:MI:SS') AND "CHANNELS"."SNAPSHOT_TIME"<=TO_DATE('12/06/2008 23:50','MM/DD/YYYY HH24:MI:SS'))
filter("CHANNELS"."SNAPSHOT_TIME">TO_DATE('11/25/2008 23:50','MM/DD/YYYY HH24:MI:SS') AND "CHANNELS"."SNAPSHOT_TIME"<=TO_DATE('12/06/2008 23:50','MM/DD/YYYY HH24:MI:SS'))
SELECT /*+ FULL(channels) */ channels.channel_record_id
,SUM(channels.max_viewers) AS viewer_sum
FROM channels
WHERE channels.snapshot_time > to_date('11/25/2008 23:50'
,'MM/DD/YYYY HH24:MI:SS')
AND channels.snapshot_time <= to_date('12/06/2008 23:50'
,'MM/DD/YYYY HH24:MI:SS')
GROUP BY channels.channel_record_id;
474 rows selected.
Elapsed: 00:12:33.59
Execution Plan
----------------------------------------------------------
Plan hash value: 4197359631
-------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
-------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 39 | 1770K (1)| 05:54:04 | | |
| 1 | HASH GROUP BY | | 1 | 39 | 1770K (1)| 05:54:04 | | |
|* 2 | FILTER | | | | | | | |
| 3 | PARTITION RANGE ITERATOR| | 1 | 39 | 1770K (1)| 05:54:04 | KEY | KEY |
|* 4 | TABLE ACCESS FULL | CHANNELS | 1 | 39 | 1770K (1)| 05:54:04 | KEY | KEY |
-------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter(TO_DATE('11/25/2008 23:50','MM/DD/YYYY HH24:MI:SS')
4 - filter("CHANNELS"."SNAPSHOT_TIME">TO_DATE('11/25/2008 23:50','MM/DD/YYYY HH24:MI:SS') AND "CHANNELS"."SNAPSHOT_TIME"<=TO_DATE('12/06/2008 23:50','MM/DD/YYYY HH24:MI:SS'))
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
2762409 consistent gets
2391028 physical reads
4236 redo size
11269 bytes sent via SQL*Net to client
833 bytes received via SQL*Net from client
33 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
474 rows processed
这次走全表了,用时12分钟左右。
没有时间仔细去找原因,猜想:
1. 可能是最新统计信息没收集
2. 由于使用了绑定变量(在这个例子中简化了,没体现出来),可能是bind varible peeking的问题