SQL> select corp_org,count(*) from test_2 where end_dt > date'2013-05-01'
2 group by corp_org order by count(*) desc;
CORP_ORG COUNT(*)
---------- ----------
15601 236734
31170 2549
43530 1309
34001 1238
34210 1049
65100 977
58100 871
65300 566
66740 302
73100 158
10 rows selected.
SQL> select t.agmt_id,t.start_dt,t.end_dt from test_1 t where agmt_id='320100629000007';
select t.agmt_id,t.start_dt,t.end_dt from test_1 t where agmt_id='320100629000007'
AGMT_ID START_DT END_DT
---------------------------------------- ---------- ----------
320100629000007 2010-12-31 2011-01-22
320100629000007 2011-01-22 2011-02-28
320100629000007 2011-02-28 2011-08-01
320100629000007 2011-08-01 2011-12-06
320100629000007 2011-12-06 2012-02-13
320100629000007 2012-02-13 2013-04-22
320100629000007 2013-04-22 2013-05-31
320100629000007 2013-05-31 2013-06-21
320100629000007 2013-06-21 2999-12-31
9 rows selected.
SQL> select count(*) from test_2 where end_dt > date'2013-05-01';
COUNT(*)
----------
245753
SQL> select count(*) from test_2 ;
COUNT(*)
----------
1028959
create index test_2_idx2 on test_2(end_dt,corp_org)
create index test_2_idx1 on test_2(end_dt)
SQL> select * from test_2 where end_dt > date'2013-05-01'
and corp_org='15601' 2 ;
236734 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 4012525493
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5802 | 3518K| 21473 (1)| 00:04:18 |
|* 1 | TABLE ACCESS BY INDEX ROWID| TEST_2 | 5802 | 3518K| 21473 (1)| 00:04:18 |
|* 2 | INDEX RANGE SCAN | TEST_2_IDX1 | 58501 | | 159 (1)| 00:00:02 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("CORP_ORG"='15601')
2 - access("END_DT">TO_DATE(' 2013-05-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
322183 consistent gets
0 physical reads
0 redo size
71706482 bytes sent via SQL*Net to client
174094 bytes received via SQL*Net from client
15784 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
236734 rows processed
创建组合索引;
create index test_2_idx2 on test_2(end_dt,corp_org)
SQL> select * from test_2 where end_dt > date'2013-05-01'
and corp_org='15601'; 2
236734 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 2871838242
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5802 | 3518K| 2252 (1)| 00:00:28 |
| 1 | TABLE ACCESS BY INDEX ROWID| TEST_2 | 5802 | 3518K| 2252 (1)| 00:00:28 |
|* 2 | INDEX SKIP SCAN | TEST_2_IDX2 | 5802 | | 105 (1)| 00:00:02 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("END_DT">TO_DATE(' 2013-05-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss')
AND "CORP_ORG"='15601' AND "END_DT" IS NOT NULL)
filter("CORP_ORG"='15601')
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
347799 consistent gets
0 physical reads
0 redo size
71706482 bytes sent via SQL*Net to client
174094 bytes received via SQL*Net from client
15784 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
236734 rows processe
SQL> select * from test_2 where end_dt > date'2013-05-01' and corp_org='15601'; 2
236734 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 1693794533
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 55903 | 33M| 20844 (1)| 00:04:11 |
| 1 | TABLE ACCESS BY INDEX ROWID| TEST_2 | 55903 | 33M| 20844 (1)| 00:04:11 |
|* 2 | INDEX RANGE SCAN | TEST_2_IDX2 | 55903 | | 206 (1)| 00:00:03 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("END_DT">TO_DATE(' 2013-05-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss')
AND "CORP_ORG"='15601' AND "END_DT" IS NOT NULL)
filter("CORP_ORG"='15601')
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
319728 consistent gets
0 physical reads
0 redo size
71706482 bytes sent via SQL*Net to client
174094 bytes received via SQL*Net from client
15784 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
236734 rows processed
select /*+ index(test_2 test_2_idx1)*/* from test_2 where end_dt > date'2013-05-01' and corp_org='15601';
Execution Plan
----------------------------------------------------------
Plan hash value: 4012525493
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5802 | 3518K| 21473 (1)| 00:04:18 |
|* 1 | TABLE ACCESS BY INDEX ROWID| TEST_2 | 5802 | 3518K| 21473 (1)| 00:04:18 |
|* 2 | INDEX RANGE SCAN | TEST_2_IDX1 | 58501 | | 159 (1)| 00:00:02 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("CORP_ORG"='15601')
2 - access("END_DT">TO_DATE(' 2013-05-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
322183 consistent gets
0 physical reads
0 redo size
71706482 bytes sent via SQL*Net to client
174094 bytes received via SQL*Net from client
15784 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
236734 rows processed