Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

62

积分

0

好友

3

主题
1#
发表于 2012-3-23 14:07:48 | 查看: 5420| 回复: 3
数据库是11g ,我把plan_table给drop掉还是存在。因为公司有些业务表与此表长得相似,所以想把表给删掉。或能不能把表改下名,来存储执行计划。
学海无涯,技术至上!
2#
发表于 2012-3-23 14:30:10
ODM TEST:

SQL> select * from v$VERSION;   

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production


SQL> select object_name,object_type,owner from dba_objects where object_name='PLAN_TABLE';

OBJECT_NAME
--------------------------------------------------------------------------------
OBJECT_TYPE         OWNER
------------------- ------------------------------
PLAN_TABLE
SYNONYM             PUBLIC


SQL> col object_name for a30
SQL> set linesize 200 pagesize 1400
SQL> select object_name,object_type,owner from dba_objects where object_name='PLAN_TABLE';

OBJECT_NAME                    OBJECT_TYPE         OWNER
------------------------------ ------------------- ------------------------------
PLAN_TABLE                     SYNONYM             PUBLIC

SQL>         
SQL> select * from dba_synonyms where synonym_name='PLAN_TABLE';

OWNER                          SYNONYM_NAME                   TABLE_OWNER                    TABLE_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
DB_LINK
--------------------------------------------------------------------------------------------------------------------------------
PUBLIC                         PLAN_TABLE                     SYS                            PLAN_TABLE$



SQL> drop public synonym plan_table;

Synonym dropped.

SQL> set autotrace traceonly exp;


SQL> select * from dual;
ERROR:
ORA-00942: table or view does not exist


SP2-0612: Error generating AUTOTRACE EXPLAIN report


SQL> create public synonym PLAN_TABLE FOR PLAN_TABLE$;

Synonym created.

SQL> set autotrace traceonly exp;
SQL> select * from dual;

Execution Plan
----------------------------------------------------------
Plan hash value: 272002086

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------

在11.2中
PLAN_TABLE是 PLAN_TABLE$的同义词,  PLAN_TABLE$是全局的临时表, 不清楚你是怎么drop plan_table的

-- Create table
create global temporary 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,
  OTHER_XML         CLOB,
  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)
)
on commit preserve rows;
-- Grant/Revoke object privileges
grant select, insert, update, delete on PLAN_TABLE$ to PUBLIC;

回复 只看该作者 道具 举报

3#
发表于 2012-3-23 14:48:49
PLAN_TABLE$  FROM $ORACLE_HOME/rdbms/admin/catplan.sql

Rem NOTE: the plan table was not upgraded when the other_xml has been added
Rem       in 10.2. This means that upgraded databases to 10.2 or post 10.2
Rem       will not have this column which will invalid all packages and
Rem       funtionalities which use the column.
Rem       This is the main reason the table is recreated in here.
drop table plan_table$;

create global temporary 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    numeric,
        object_type        varchar2(30),
        optimizer          varchar2(255),
        search_columns     number,
        id                 numeric,
        parent_id          numeric,
        depth              numeric,
        position           numeric,
        cost               numeric,
        cardinality        numeric,
        bytes              numeric,
        other_tag          varchar2(255),
        partition_start    varchar2(255),
        partition_stop     varchar2(255),
        partition_id       numeric,
        other              long,
        other_xml          clob,
        distribution       varchar2(30),
        cpu_cost           numeric,
        io_cost            numeric,
        temp_space         numeric,
        access_predicates  varchar2(4000),
        filter_predicates  varchar2(4000),
        projection         varchar2(4000),
        time               numeric,
        qblock_name        varchar2(30)
) on commit preserve rows
/

Rem
Rem Add necessary privileges and make plan_table$ the default for
Rem everyone
Rem
grant select, insert, update, delete on plan_table$ to public
/
create or replace public synonym plan_table for plan_table$
/

回复 只看该作者 道具 举报

4#
发表于 2012-3-23 16:40:36
非常感谢。我drop 的plan_table表可能是开发建的。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-24 10:09 , Processed in 0.046606 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569