catch-img

COMPLEX VIEW MERGING - 日本エクセム株式会社 Oracleパラメータ


目次[非表示]

  1. 1.基本情報
    1. 1.1.Parameter情報
    2. 1.2.説明
  2. 2.注意
    1. 2.1.Complex View Mergingの適用例
    2. 2.2.不適切Complex View Mergingによるパフォーマンスの低下
  3. 3.関連情報
  4. 4.外部参照

基本情報

Parameter情報

Syntax:_COMPLEX_VIEW_MERGING
設定方法:・Parameter File
     ・AALTER SYSTEM SET “_COMPLEX_VIEW_MERGING” = TRUE|FALSE
     ・ALTER SESSION SET “_COMPLEX_VIEW_MERGING” = TRUE|FALSE
バージョンとデフォルト
9iR2 : TRUE
10gR1: TRUE
10gR2: TRUE
11g  : TRUE


説明

  Complex ViewとGROUP BYやDISTINCT構文を含む複雑なビューを意味します。Complex ViewはSimple Viewに比べMergeが困難です。Complex View Mergingとは、Complex ViewをQueryの本文中にMerge機能をいいます。_COMPLEX_VIEW_MERGINGパラメータを利用してComplex View Mergingを使用かどうかを決定します。

 Oracle8iで初めてComplex View Merging機能が導入され、既定値はFalseでした。9iからデフォルト値がTrueとなっています。


注意

Complex View Mergingの適用例

 Complex View Mergingの適用例は、以下の通りです。

・Complex View。GROUP BY句を使用
CREATE VIEW avg_salary_view AS 
 SELECT department_id, AVG(salary) AS avg_sal_dept, 
   FROM employees 
   GROUP BY department_id;

・Complex Viewにアクセスするクエリ
SELECT departments.location_id, avg_sal_dept 
 FROM departments, avg_salary_view 
 WHERE departments.department_id = avg_salary_view.department_id 
   AND departments.location_id = 2400; 

・上記のクエリは、以下のように変換され、Complex View Mergingが動作したことを確認することができます。
SELECT departments.loc, AVG(salary) 
 FROM departments, employees 
 WHERE departments.department_id = employees.department_id 
   AND departments.location_id = 2400 
 GROUP BY departments.rowid, departments.location_id;


不適切Complex View Mergingによるパフォーマンスの低下

 Complex View Mergingは非常に有効な機能であり、一般的に性能を改善させる効果があります。しかし、特定のクエリ(特に複雑なクエリ)では、むしろ誤った実行計画を作成し、逆効果になります。この場合には、Complex View Mergingを無効にすることで、問題を解決することができます。具体的には、次のような方法で無効にすることができます。

・_COMPLEX_VIEW_MERGINGパラメータをFalseに変更します。
ALTER SESSION SET"_COMPLEX_VIEW_MERGING"= FALSE;
SELECT* FROM complex_view v1 WHERE a= '100';

・NO_MERGEヒントを使用します。
SELECT/*+ NO_MERGE(v1)*/* FROM complex_view v1 WHERE a= '100';


関連情報

1.NO_MERGEヒント
2._OPTIMIZER_COST_BASED_TRANSFORMATIONパラメータ
3._PUSH_JOIN_PREDICATEパラメータ
4._SIMPLE_VIEW_MERGINGパラメータ


外部参照

1.http://www.psoug.org/reference/hints.html 


CONTACT

他社に頼らず自社でデータベースを監視・運用をしませんか?
MaxGaugeがサポートします

お役立ち資料は
こちらから

不明点がある方は、
こちらからお問い合わせください

お電話でのお問い合わせはこちら

平日 10時~18時

人気記事ランキング

タグ一覧