C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■88614 / 親階層)  ORACLE 11gと12cの違い
□投稿者/ k3user (47回)-(2018/09/11(Tue) 09:44:49)

分類:[データベース全般] 

あるSQLがORACLE 11Gでは1分以内で終了していたのですが、
12Cで実行すると3分ほどかかるようになってしまいました。
色々と調べたのですが、原因がわからず
たまたまORDER BYを外して実行すると15秒程度で
完了しました。
問題は解決したのでよかったのですが、明確な
理由がわからずモヤモヤとしています。
11Gと12CではORDER BYの仕組みが異なるのでしょうか?

●環境
    OS:Windows 2008 Server
		CPU INTEL 2.2GH(2core)
		MEMORY 9GB
    ORACLE Ver:12.1.0.2.0
        SGA:4GB

●SQLの概要
SELECT 
    A.COLUMN1,
    A.COLUMN2,
    A.COLUMN3,
    A.COLUMN4,
    B.COLUMN1,
    B.COLUMN2,
    C.COLUMN1,
    D.COLUMN1,
    E.COLUMN1
FROM VIEW1  A,
TBL1 B,
(SELECT COLUMN1..... FROM TBL1 WHERE COLUMN4 = (SELECT COLUMN_A FROM INTBL1 WHERE INKEY= **1)) C,
(SELECT COLUMN1..... FROM TBL1 WHERE COLUMN4 = (SELECT COLUMN_A FROM INTBL1 WHERE INKEY= **2)) D,
(SELECT COLUMN1..... FROM TBL1 WHERE COLUMN4 = (SELECT COLUMN_A FROM INTBL1 WHERE INKEY= **3)) E
WHERE A.KEY1(+) = B.KEY1
AND   A.KEY1(+) = C.KEY1
AND   A.KEY1(+) = D.KEY1
AND   A.KEY1(+) = E.KEY1
AND   A.YMD >= '20180911'
ORDER  BY A.SORTCOLUMN1

●VIEW1の概要
    ・複数のテーブル(15テーブル)から必要な項目を抜き出して共通するキーで外部結合
    ・3000件程度

●その他テーブルの概要
    ・2000件程度

●確認したこと
	 

    ・ORDER BYがある時のコストは5254(データ量は1747898625)
    ・ORDER BYがある時の操作は
         SELECT STATEMENT 
            ┗MERGE JOIN OUTER
                ┗MERGE JOIN OUTER
                以下MERGE JOINが続く

    ・ORDER BYがない時のコストは5243(データ量は1758578250)
    ・ORDER BYがない時の操作は
          SELECT STATEMENT 	OPTIMIZER_MODE = ALL_ROWS
              ┗HASH JOIN RIGHT OUTER	
                 ┗INDEX FAST FULL SCAN	IDXMST999
                以下HASH JOINが続く

	・alter session set "_optimizer_undo_cost_change"='11.2.0.4'にてオプティマイザを11Gにしてみたが
      処理時間は変わらなかった。



編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: ORACLE 11gと12cの違い /k3user
 
上記関連ツリー

ORACLE 11gと12cの違い / k3user (18/09/11(Tue) 09:44) #88614 ←Now
Re[1]: ORACLE 11gと12cの違い / k3user (18/09/14(Fri) 08:14) #88652 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信