我做的程序一开始,没有创建plan_table表 但是当过一段时间的时候发现 数据库中突然出现了plan_table表,怀疑是系统自动生成的,但是不知道为什么生成plan_table这个表,plan_table这个表又是干什么用的呢?=======================
这个表的具体字段是
=======================
=====================================================================================
-- Create table
create table PLAN_TABLE
(
  STATEMENT_ID      VARCHAR2(30),
  PLAN_ID           NUMBER,
  TIMESTAMP         DATE,
  REMARKS           VARCHAR2(4000),
  OPERATION         VARCHAR2(30),
  OPTIONS           VARCHAR2(255),
  OBJECT_NODE       VARCHAR2(128),
  OBJECT_OWNER      VARCHAR2(30),
  OBJECT_NAME       VARCHAR2(30),
  OBJECT_ALIAS      VARCHAR2(65),
  OBJECT_INSTANCE   INTEGER,
  OBJECT_TYPE       VARCHAR2(30),
  OPTIMIZER         VARCHAR2(255),
  SEARCH_COLUMNS    NUMBER,
  ID                INTEGER,
  PARENT_ID         INTEGER,
  DEPTH             INTEGER,
  POSITION          INTEGER,
  COST              INTEGER,
  CARDINALITY       INTEGER,
  BYTES             INTEGER,
  OTHER_TAG         VARCHAR2(255),
  PARTITION_START   VARCHAR2(255),
  PARTITION_STOP    VARCHAR2(255),
  PARTITION_ID      INTEGER,
  OTHER             LONG,
  DISTRIBUTION      VARCHAR2(30),
  CPU_COST          INTEGER,
  IO_COST           INTEGER,
  TEMP_SPACE        INTEGER,
  ACCESS_PREDICATES VARCHAR2(4000),
  FILTER_PREDICATES VARCHAR2(4000),
  PROJECTION        VARCHAR2(4000),
  TIME              INTEGER,
  QBLOCK_NAME       VARCHAR2(30)
)
tablespace CRM
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

解决方案 »

  1.   

    10g?plan_table用来保存SQL的执行计划。Oracle 10g中不再需要创建plan_table表,因为它会自动创建一个数据字典表PLAN_TABLE$.
      

  2.   

    没影响的。以下为原文:
    PLAN_TABLE is the default table for results of the EXPLAIN PLAN statement. It is created by utlxplan.sql, and it contains one row for each step in the execution plan.
      

  3.   

    通常是我进行 SQL执行计划的时候 才生成呢? 还是Oracle 隔一段时间自动的生成呢?
      

  4.   

    PLAN_TABLE is the default table for results of the EXPLAIN PLAN statement.
    当你使用EXPLAIN PLAN 时生成。