Oracle Enterprise Manager
Oracle SQL Explain Plan May 7, 2007 11:29:33 AM PDT 

Target:

    LOLI

 

Version: Oracle 9.2.0.1.0

 

Database: LOLI

 

Schema: HSP

 

Date: 07-May-07 4:00:00 PM


SQL Statement:

  
SELECT DISTINCT organization.org_key, organization.org_name
    FROM organization, assigned_exam_rpt_data
    WHERE organization.parent_org_key = 1076
      AND assigned_exam_rpt_data.organization_key = organization.org_key
      AND assigned_exam_rpt_data.subject = 1
      AND assigned_exam_rpt_data.graded_date IS NOT NULL
      AND assigned_exam_rpt_data.class_active_status = 1
      AND assigned_exam_rpt_data.student_active_status = 1

Optimizer Mode Used:

  COST ALL ROWS (optimizer: CHOOSE)

Total Cost:

  4,221

Execution Steps:

Step #Step Name
22SELECT STATEMENT
21SORT [UNIQUE]
20HASH JOIN
1HSP.CLASS_PD TABLE ACCESS [FULL]
19HASH JOIN
2HSP.EXAM TABLE ACCESS [FULL]
18HASH JOIN
16NESTED LOOPS [OUTER]
14NESTED LOOPS
12HASH JOIN
4HSP.ORGANIZATION TABLE ACCESS [BY INDEX ROWID]
3HSP.ORGANIZATION_PARENT_ORG INDEX [RANGE SCAN]
11HASH JOIN
5HSP.ASSN_EXAM_DATA TABLE ACCESS [FULL]
10HASH JOIN [OUTER]
8HASH JOIN [OUTER]
6HSP.ASSN_EXAM_STAN TABLE ACCESS [FULL]
7HSP.ASSIGNMENT TABLE ACCESS [FULL]
9HSP.BASE_USER TABLE ACCESS [FULL]
13HSP.SYS_C006878 INDEX [UNIQUE SCAN]
15HSP.SYS_C006728 INDEX [UNIQUE SCAN]
17HSP.BASE_USER TABLE ACCESS [FULL]

Step #DescriptionEst. CostEst. Rows ReturnedEst. KBytes Returned
  1   This plan step retrieves all rows from table CLASS_PD.1914,534113.547
  2   This plan step retrieves all rows from table EXAM.192,21312.967
  3   This plan step retrieves one or more ROWIDs in ascending order by scanning the B*-tree index ORGANIZATION_PARENT_ORG.1950--
  4   This plan step retrieves rows from table ORGANIZATION through ROWID(s) returned by an index.250.156
  5   This plan step retrieves all rows from table ASSN_EXAM_DATA.1,095766,18512,719.868
  6   This plan step retrieves all rows from table ASSN_EXAM_STAN.346486,56111,403.773
  7   This plan step retrieves all rows from table ASSIGNMENT.1922,885156.44
  8   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.806486,56114,729.874
  9   This plan step retrieves all rows from table BASE_USER.189159,6561,403.227
  10   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.1,592486,56119,006.289
  11   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.3,885486,56127,083.962
  12   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.3,9013,418297.072
  13   This plan step retrieves a single ROWID from the B*-tree index SYS_C006878.--10.004
  14   This plan step joins two sets of rows by iterating over the driving, or outer, row set (the first child of the join) and, for each row, carrying out the steps of the inner row set (the second child). Corresponding pairs of rows are tested against the join condition specified in the query's WHERE clause.3,9013,397308.517
  15   This plan step retrieves a single ROWID from the B*-tree index SYS_C006728.--10.003
  16   This plan step joins two sets of rows by iterating over the outer, or driving, row set (the first child of the join) and, for each row, carrying out the steps of the inner row set (the second child). Corresponding pairs of rows are tested against the join condition specified in the query's WHERE clause; in addition to the rows satisfying that condition, Oracle also returns all rows from the row set not containing the outer join operator (+) which failed to satisfy that condition.3,9013,397318.469
  17   This plan step retrieves all rows from table BASE_USER.18979,828623.656
  18   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.4,1253,397345.008
  19   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.4,1463,397364.912
  20   This plan step accepts two sets of rows, each from a different table. A hash table is built using the rows returned by the first child. Each row returned by the second child is then used to probe the hash table to find row pairs which satisfy a condition specified in the query's WHERE clause. Note: The Oracle cost-based optimizer will build the hash table using what it thinks is the smaller of the two tables. It uses the statistics to determine which is smaller, so out of date statistics could cause the optimizer to make the wrong choice.4,1763,396391.336
  21   This plan step accepts a row set (its only child) and sorts it in order to identify and eliminate duplicates.4,221182.074
  22   This plan step designates this statement as a SELECT statement.4,221182.074