hint OPAQUE_TRANSFORM产生的原因

来源:互联网 发布:网络兼职水军 编辑:程序博客网 时间:2024/05/01 02:34

    在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行。