PLAN_TABLE
is automatically created as a global temporary table to hold the output of an EXPLAIN PLAN
statement for all users. PLAN_TABLE
is the default sample output table into which the EXPLAIN PLAN
statement inserts rows describing execution plans.
While a PLAN_TABLE
table is automatically set up for each user, you can use the SQL script utlxplan.sql
to manually create a local PLAN_TABLE
in your schema.
Column | Datatype | NULL | Description |
---|---|---|---|
STATEMENT_ID |
VARCHAR2(30) |
Value of the optional STATEMENT_ID parameter specified in the EXPLAIN PLAN statement |
|
PLAN_ID |
NUMBER |
Unique identifier of a plan in the database | |
TIMESTAMP |
DATE |
Date and time when the EXPLAIN PLAN statement was generated |
|
REMARKS |
VARCHAR2(4000) |
Any comment (of up to 4000 bytes) you want to associate with each step of the explained plan. This column is used to indicate whether an outline or SQL Profile was used for the query.
If you need to add or change a remark on any row of the |
|
OPERATION |
VARCHAR2(30) |
Name of the internal operation performed in this step. In the first row generated for a statement, the column contains one of the following values:
|
|
OPTIONS |
VARCHAR2(255) |
A variation on the operation described in the OPERATION column |
|
OBJECT_NODE |
VARCHAR2(128) |
Name of the database link used to reference the object (a table name or view name). For local queries using parallel execution, this column describes the order in which output from operations is consumed. | |
OBJECT_OWNER |
VARCHAR2(30) |
Owner of the table or index | |
OBJECT_NAME |
VARCHAR2(30) |
Name of the table or index | |
OBJECT_ALIAS |
VARCHAR2(65) |
Unique alias of a table or view in a SQL statement. For indexes, it is the object alias of the underlying table. | |
OBJECT_INSTANCE |
NUMBER(38) |
Number corresponding to the ordinal position of the object as it appears in the original statement. The numbering proceeds from left to right, outer to inner with respect to the original statement text. View expansion results in unpredictable numbers. | |
OBJECT_TYPE |
VARCHAR2(30) |
Modifier that provides descriptive information about the object; for example, NON-UNIQUE for indexes |
|
OPTIMIZER |
VARCHAR2(255) |
Current mode of the optimizer | |
SEARCH_COLUMNS |
NUMBER |
Not currently used | |
ID |
NUMBER(38) |
A number assigned to each step in the execution plan | |
PARENT_ID |
NUMBER(38) |
ID of the next execution step that operates on the output of the ID step |
|
DEPTH |
NUMBER(38) |
Depth of the operation in the row source tree that the plan represents. The value can be used for indenting the rows in a plan table report. | |
POSITION |
NUMBER(38) |
For the first row of output, this indicates the optimizer's estimated cost of executing the statement. For the other rows, it indicates the position relative to the other children of the same parent. | |
COST |
NUMBER(38) |
Cost of the operation as estimated by the optimizer's query approach. Cost is not determined for table access operations. The value of this column does not have any particular unit of measurement; it is merely a weighted value used to compare costs of execution plans. The value of this column is a function of the CPU_COST and IO_COST columns. |
|
CARDINALITY |
NUMBER(38) |
Estimate by the query optimization approach of the number of rows accessed by the operation | |
BYTES |
NUMBER(38) |
Estimate by the query optimization approach of the number of bytes accessed by the operation | |
OTHER_TAG |
VARCHAR2(255) |
Describes the contents of the OTHER column:
|
|
PARTITION_START |
VARCHAR2(255) |
Start partition of a range of accessed partitions:
|
|
PARTITION_STOP |
VARCHAR2(255) |
Stop partition of a range of accessed partitions:
|
|
PARTITION_ID |
NUMBER(38) |
Step that has computed the pair of values of the PARTITION_START and PARTITION_STOP columns |
|
OTHER |
LONG |
Other information that is specific to the execution step that a user might find useful (see the OTHER_TAG column) |
|
OTHER_XML |
CLOB |
Provides extra information specific to an execution step of the execution plan. The content of this column is structured using XML since multiple pieces of information can be stored there. This includes:
|
|
DISTRIBUTION |
VARCHAR2(30) |
Method used to distribute rows from producer query servers to consumer query servers
See Also: Oracle Database Data Warehousing Guide for more information about consumer and producer query servers |
|
CPU_COST |
NUMBER(38) |
CPU cost of the operation as estimated by the query optimizer's approach. The value of this column is proportional to the number of machine cycles required for the operation. For statements that use the rule-based approach, this column is NULL. | |
IO_COST |
NUMBER(38) |
I/O cost of the operation as estimated by the query optimizer's approach. The value of this column is proportional to the number of data blocks read by the operation. For statements that use the rule-based approach, this column is NULL. | |
TEMP_SPACE |
NUMBER(38) |
Temporary space (in bytes) used by the operation as estimated by the query optimizer's approach. For statements that use the rule-based approach, or for operations that do not use any temporary space, this column is NULL. | |
ACCESS_PREDICATES |
VARCHAR2(4000) |
Predicates used to locate rows in an access structure. For example, start or stop predicates for an index range scan. | |
FILTER_PREDICATES |
VARCHAR2(4000) |
Predicates used to filter rows before producing them | |
PROJECTION |
VARCHAR2(4000) |
Expressions produced by the operation | |
TIME |
NUMBER(38) |
Elapsed time (in seconds) of the operation as estimated by query optimization. For statements that use the rule-based approach, this column is NULL. | |
QBLOCK_NAME |
VARCHAR2(30) |
Name of the query block (either system-generated or defined by the user with the QB_NAME hint) |