2018.09.25
DUAL
目次
- 1. 概要
- 2. Analysis Case
概要
Oracleにより自動生成されたDummyテーブルです。
SYSスキーマに存在しますが、DUALという名前で、すべてのユーザーが使用することができます。
ユーザー計算やユーザー関数を使用する場合に便利であり、select1 from dual;を実行して、WASのDBとの接続を確認するために使用されることもあります。
DUALテーブル実行過多解決
DUALテーブル実行過多解決
Oracleのパフォーマンス監視/分析ソリューションであるマックスゲージのPerformance Analysisを通じて日中のログを確認して見ましょう。
図のように1分間特定のセッションがグループ化された結果、Execution回数が毎分22万回以上で表示され、DUALテーブルの繰り返し使用が発生しています。
SQL実行回数過多の問題は、Loop Queryを単一のSQLに変更することが望ましいのです。
特に、上記のようにDUAL表について繰り返し実行する場合には、DUALテーブルのルックアップの負荷を減少させるためにSYS.X$ DUALを利用する方法があります。DUAL表を多く参照する環境に便利に使うことができます。
X$ DUAL vs DUAL
SYS> create or replace view xm$dual as select dummy from sys.x$dual; SCOTT> SELECT dummy into :v_dummy FROM DUAL; SCOTT> SELECT dummy into :v_dummy FROM XM$DUAL;
それぞれのSQLを100,000回LOOP実行 DUAL= Response Time:7.6秒 XM$ DUAL= Response Time:4.3秒