●環境について
・1筐体の中にOracle 11gR2 SE ONEのインスタンスを2つ(A,Bとします)作成
(両インスタンスは初期化パラメータは同じ)
・インスタンスAにインスタンスBに対するデータベースリンク(LINKB)を作成
●質問
インスタンスA内に以下の様なインスタンスB内の表同士を結合したマテリアライズド・ビューを作成しました。
「CREATE」実行時と、「DBMS_MVIEW.REFRESH('M_TEST', 'C')」実行時で、
インスタンスAからインスタンスBに対して投げられているクエリを確認したところ、
「CREATE」では一回のクエリ、「REFRESH」では数回のクエリが投げられていました。
リモート表のみを参照しているのでリフレッシュの際も一回のクエリで投げてもらいたいのですが、
ヒント句などの指定で対応できるかご教示願います。
●マテリアライズド・ビュー
CREATE MATERIALIZED VIEW M_TEST
REFRESH COMPLETE
AS
SELECT
A.MAKER_CD,
A.MAKER_NAME,
B.CHILD_CNT
FROM
(
SELECT
MAKER_CD,
MAKER_NAME
FROM
T_MAKER@LINKB
WHERE
MAKER_KBN = 'B'
) A
LEFT JOIN
(
SELECT
MAKER_CD,
COUNT(MAKER_CD) AS CHILD_CNT
FROM
T_MAKER_CHILD@LINKB
GROUP BY
MAKER_CD
) B
ON A.MAKER_CD = B.MAKER_CD