<Hit Return to Start Example 1a>
### Example 1a ###
### Count of SPRADDR Records ###
### No Hint ###
### Rule Based Optimizer ###
1 select count(*)
2* from spraddr
<Hit Return to Display Explain Plan>
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE
1 0
SORT (AGGREGATE)
2 1
TABLE ACCESS (FULL) OF 'SPRADDR'
<Hit Return to Execute Query>
COUNT(*)
---------
663272
real: 4296
<Hit Return to Start Example 1b>
### Example 1b ###
### Count of SPRADDR Records ###
### INDEX Hint ###
### Cost Based Optimizer ###
1 select /*+ INDEX (SPRADDR SPRADDR_KEY_INDEX)
*/ count(*)
2* from spraddr
<Hit Return to Display Explain Plan>
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE (Cost=101
Card=1)
1 0
SORT (AGGREGATE)
2 1
INDEX (FULL SCAN) OF 'SPRADDR_KEY_INDEX' (UNIQUE) (Cost=101
Card=2000)
<Hit Return to Execute Query>
COUNT(*)
---------
663272
real: 832
<Hit Return to Start Example 2a>
### Example 2a ###
### Count of Mailing Addresses for Active Constituents
###
### No Hint ###
### Rule Based Optimizer ###
1 select count(*)
2 from spriden, spraddr
3 where spriden.spriden_pidm =
spraddr.spraddr_pidm
4 and spriden.spriden_change_ind is null
5* and
spraddr.spraddr_atyp_code = 'MA'
<Hit Return to Display Explain Plan>
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE
1 0
SORT (AGGREGATE)
2 1
NESTED LOOPS
3 2
TABLE ACCESS (FULL) OF 'SPRADDR'
4 2
INDEX (RANGE SCAN) OF 'SPRIDEN_KEY_INDEX' (UNIQUE)
<Hit Return to Execute Query>
COUNT(*)
---------
476417
real: 30585
<Hit Return to Start Example 2b>
### Example 2b ###
### Count of Mailing Addresses for Active Constituents
###
### USE_HASH Hint ###
### Cost Based Optimizer ###
1 select /*+ USE_HASH(SPRIDEN SPRADDR) */
count(*)
2 from spriden, spraddr
3 where spriden.spriden_pidm =
spraddr.spraddr_pidm
4 and spriden.spriden_change_ind is null
5* and
spraddr.spraddr_atyp_code = 'MA'
<Hit Return to Display Explain Plan>
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE (Cost=7
Card=1 Bytes=31)
1 0
SORT (AGGREGATE)
2 1
HASH JOIN (Cost=7 Card=20 Bytes=620)
3
2 INDEX (FAST FULL SCAN) OF
'SPRADDR_KEY_INDEX' (UNIQUE) (Cost=3 Card=20 Bytes=320)
4 2
INDEX (FAST FULL SCAN) OF 'SPRIDEN_KEY_INDEX' (UNIQUE) (Cost=3 Card=100
Bytes=1500)
<Hit Return to Execute Query>
COUNT(*)
---------
476417
real: 16093
<Hit Return to Start Example 3a>
### Example 3a ###
### Count of Economics Majors in the 1990's ###
### No Hint ###
### Rule Based Optimizer ###
1 select count(distinct spriden.spriden_pidm)
2 from sgbstdn, spriden
3 where (sgbstdn.sgbstdn_majr_code_1 = 'ECON'
or sgbstdn.sgbstdn_majr_code_2 = 'ECON')
4 and sgbstdn.sgbstdn_term_code_eff like '199%'
5* and
sgbstdn.sgbstdn_pidm = spriden.spriden_pidm
<Hit Return to Execute Query and Display Explain Plan
and Summary Execution Statistics>
COUNT(DISTINCTSPRIDEN.SPRIDEN_PIDM)
-----------------------------------
440
real: 41750
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE
1 0
SORT (GROUP BY)
2 1
FILTER
3 2
TABLE ACCESS (BY INDEX ROWID) OF 'SGBSTDN'
4 3
NESTED LOOPS
5 4
TABLE ACCESS (FULL) OF 'SPRIDEN'
6 4
INDEX (RANGE SCAN) OF 'PK_SGBSTDN' (UNIQUE)
7 2
FILTER
8 7
TABLE ACCESS (BY INDEX ROWID) OF 'GORVRAC'
9 8
INDEX (RANGE SCAN) OF 'PK_GORVRAC' (UNIQUE)
10 7
TABLE ACCESS (FULL) OF 'GOBVBSC'
11 7
TABLE ACCESS (BY INDEX ROWID) OF 'GORVMAC'
12 11
INDEX (UNIQUE SCAN) OF 'PK_GORVMAC' (UNIQUE)
13 2
INDEX (UNIQUE SCAN) OF 'PK_GOBVUSR' (UNIQUE)
14 2
TABLE ACCESS (FULL) OF 'GOBVBSC'
15 2
TABLE ACCESS (BY INDEX ROWID) OF 'GOBVUSR'
16 15
INDEX (UNIQUE SCAN) OF 'PK_GOBVUSR' (UNIQUE)
17 2
TABLE ACCESS (BY INDEX ROWID) OF 'GORVMAC'
18 17
INDEX (UNIQUE SCAN) OF 'PK_GORVMAC' (UNIQUE)
19 2
TABLE ACCESS (BY INDEX ROWID) OF 'GORVRAC'
20 19
INDEX (RANGE SCAN) OF 'PK_GORVRAC' (UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
791864 consistent gets
5061 physical reads
0 redo size
193 bytes sent via SQL*Net to client
250 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1 rows processed
<Hit Return to Start Example 3b>
### Example 3b ###
### Count of Economics Majors in the 1990's ###
### INDEX Hint ###
### Cost Based Optimizer ###
1 select /*+ INDEX (SPRIDEN SPRIDEN_KEY_INDEX)
*/ count(distinct spriden.spriden_pidm)
2 from sgbstdn, spriden
3 where (sgbstdn.sgbstdn_majr_code_1 = 'ECON'
or sgbstdn.sgbstdn_majr_code_2 = 'ECON')
4 and sgbstdn.sgbstdn_term_code_eff like '199%'
5* and
sgbstdn.sgbstdn_pidm = spriden.spriden_pidm
<Hit Return to Execute Query and Display Explain Plan
and Summary Execution Statistics>
COUNT(DISTINCTSPRIDEN.SPRIDEN_PIDM)
-----------------------------------
440
real: 3746
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE (Cost=61
Card=1 Bytes=64)
1 0
SORT (GROUP BY)
2 1
FILTER
3 2
NESTED LOOPS (Cost=61 Card=1 Bytes=64)
4 3
TABLE ACCESS (FULL) OF 'SGBSTDN' (Cost=60 Card=1 Bytes=51)
5 3
INDEX (RANGE SCAN) OF 'SPRIDEN_KEY_INDEX' (UNIQUE) (Cost=1 Card=1
Bytes=13)
6 2
FILTER
7 6
TABLE ACCESS (BY INDEX ROWID) OF 'GORVRAC' (Cost=1 Card=1
Bytes=100)
8 7
INDEX (RANGE SCAN) OF 'PK_GORVRAC' (UNIQUE) (Cost=2 Card=1)
9 6
TABLE ACCESS (FULL) OF 'GOBVBSC' (Cost=2 Card=1 Bytes=4)
10 6
TABLE ACCESS (BY INDEX ROWID) OF 'GORVMAC' (Cost=1 Card=1 Bytes=39)
11
10 INDEX (RANGE SCAN) OF
'PK_GORVMAC' (UNIQUE) (Cost=1 Card=1)
12 2
INDEX (UNIQUE SCAN) OF 'PK_GOBVUSR' (UNIQUE) (Cost=1 Card=1
Bytes=17)
13 2 TABLE ACCESS (FULL) OF 'GOBVBSC' (Cost=2
Card=20 Bytes=40)
14 2
TABLE ACCESS (BY INDEX ROWID) OF 'GOBVUSR' (Cost=1 Card=1 Bytes=37)
15 14
INDEX (RANGE SCAN) OF 'PK_GOBVUSR' (UNIQUE) (Cost=1 Card=8)
16 2
TABLE ACCESS (BY INDEX ROWID) OF 'GORVMAC' (Cost=1 Card=1 Bytes=39)
17 16
INDEX (RANGE SCAN) OF 'PK_GORVMAC' (UNIQUE) (Cost=1 Card=1)
18 2
TABLE ACCESS (BY INDEX ROWID) OF 'GORVRAC' (Cost=1 Card=1 Bytes=37)
19 18
INDEX (RANGE SCAN) OF 'PK_GORVRAC' (UNIQUE) (Cost=2 Card=1)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4812 consistent gets
471 physical reads
0 redo size
193 bytes sent via SQL*Net to client
250 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1 rows processed