hint OPAQUE_TRANSFORM产生的原因


在AWR报告中经常看到一个hint /*+ OPAQUE_TRANSFORM */,感到莫名其妙。原因是什么引起的呢?如果在数据库B的AWR中看到这种hint,原因是其他数据库通过DB link访问数据库B,且用的是insert into table_name select * from table_name@dblink_name的方式访问。

SQL> explain plan for insert into test select * from REMOTE_SMALL_TAB@DBLINK_TEST;

已解释。

SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------------------
Plan hash value: 1788691278
-----------------------------------------------------------------------------------------------------
| Id  | Operation        | Name            | Rows  | Bytes | Cost (%CPU)| Time    | Inst  |IN-OUT|
-----------------------------------------------------------------------------------------------------
|  0 | INSERT STATEMENT |                  | 72229 |  6842K|  186  (1)| 00:00:03 |        |      |
|  1 |  REMOTE          | REMOTE_SMALL_TAB | 72229 |  6842K|  186  (1)| 00:00:03 | DBLIN~ | R->S |
-----------------------------------------------------------------------------------------------------
Remote SQL Information (identified by operation id):
----------------------------------------------------
  1 - SELECT /*+ OPAQUE_TRANSFORM */ "OWNER","OBJECT_NAME","SUBOBJECT_NAME","OBJECT_ID","DAT
      A_OBJECT_ID","OBJECT_TYPE","CREATED","LAST_DDL_TIME","TIMESTAMP","STATUS","TEMPORARY","GENERA
      TED","SECONDARY","NAMESPACE","EDITION_NAME" FROM "REMOTE_SMALL_TAB" "REMOTE_SMALL_TAB"
      (accessing 'DBLINK_TEST.EYGLE.COM' )
已选择17行。

推荐阅读:

利用Oracle DBLink进行表同步

Oracle DBLink使用

Oracle通过DBLink访问GreenPlum

ORA-01017/ORA-02063 DBLink建立错误问题分析及解决

Oracle 创建DBLink 报错:ORA-01017、ORA-02063

Oracle中dblink创建的两种方式

相关内容