ここでは、Oracleデータベースのリモート結合最適化機能の例を示します。
注意:
Oracle以外のシステムからの表を使用するEXPLAIN PLANは、ローカルまたはリモートのOracle表スキャンを使用する同様の文とは異なる場合があります。これは、Oracle以外の表についてOracleで使用可能な統計に制限があるためです。最も重要なのは、Oracle以外の表の非一意索引には列を選択できないことです。使用可能な統計に制限があるため、次の例はリモート結合を実際に実行したときの内容とは異なる場合があり、あくまでも一例にすぎません。
次に例を示します。
EXPLAIN PLAN FOR SELECT e.ename, d.dname, f.ename, f.deptno FROM dept d, emp@remote_db e, emp@remote_db f WHERE e.mgr = f.empno AND e.deptno = d.deptno AND e.empno = f.empno; @utlxpls
次のような出力が表示されます。
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost
| Inst |IN-OUT|
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2000 | 197K| 205 |
|* 1 | HASH JOIN | | 2000 | 197K|
205 |
| 2 | TABLE ACCESS FULL | DEPT | 21 | 462 | 2 |
|* 3 | HASH JOIN | | 2000 | 154K|
201 |
| 4 | REMOTE | | 2000 | 66000
| 52 |
| 5 | REMOTE | | 2000 | 92000
| 52 |
---------------------------------------------------------------------------
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Query Block Name / Hint Alias (identified by operation id):
-----------------------------------------------------------
1 - sel$1 / D
2 - sel$1 / D
3 - sel$1 / F
4 - sel$1 / F
5 - sel$1 / E
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
---------------------------------------------------
1 - access("E"."DEPTNO"="D"."DEPTNO")
3 - access("E"."MGR"="F"."EMPNO" AND "E"."EMPNO"="F"."EMPNO")
次の文を発行します。
SET long 300 SELECT other FROM plan_table WHERE operation = 'REMOTE';
次のような出力が表示されます。
OTHER -------------------------------------------------------------------------------- SELECT "EMPNO","ENAME","DEPTNO" FROM "EMP" SELECT "EMPNO","ENAME","MGR","DEPTNO" FROM "EMP" SELECT "EMPNO","ENAME","DEPTNO" FROM "EMP" SELECT "EMPNO","ENAME","MGR","DEPTNO" FROM "EMP"