मैं अभी बनाया टेबल विभाग और ईएमपी पालन की तरह दृश्य materializedके लिए प्रतिबद्ध पर तेजी से ताज़ा
create materialized view log on emp with rowid;
create materialized view log on dept with rowid;
create materialized view empdept_mv refresh fast on commit as
select a.rowid dept_rowid, b.rowid emp_rowid, a.dept_no,b.emp_no
from dept a, emp b
where a.dept_no=b.dept_no ;
select * from emp;
EMP_NO DEPT_NO
---------- ----------
1 10
2 20
3 30
select * from dept;
DEPT_NO DEPT_NAME DEPT_DESC
---------- -------------------------------- --------------------------------
10 it desc1
20 hr desc2
30 it desc3
select * from empdept_mv;
DEPT_ROWID EMP_ROWID DEPT_NO EMP_NO
------------------ ------------------ ---------- ----------
AAAli5AABAAAPZ6AAA AAAli7AABAAAQs6AAA 10 1
AAAli5AABAAAPZ6AAB AAAli7AABAAAQs6AAB 20 2
मैंने एक नया रिकॉर्ड डाला और COMMIT किया; ..पर फिर भी जब मैं भौतिक दृश्य की जांच करता हूं, तो नया रिकॉर्ड भौतिक दृश्य में नहीं दिखाया जाता है।
insert into dept values (30,'it','desc3');
commit;
insert into emp values (3,30);
commit;
select * from empdept_mv;
DEPT_ROWID EMP_ROWID DEPT_NO EMP_NO
------------------ ------------------ ---------- ----------
AAAli5AABAAAPZ6AAA AAAli7AABAAAQs6AAA 10 1
AAAli5AABAAAPZ6AAB AAAli7AABAAAQs6AAB 20 2
अब, जब मैं per के रूप में तेजी से और पूर्ण ताज़ा करने के लिए प्रक्रिया चलाने के लिए, तेजी से ताज़ा Mview अपडेट नहीं करता लेकिन पूरा ताज़ा करता है। (नोट: लेकिन Mview अभी भी ताज़ा करने पर COMMIT है)
execute DBMS_MVIEW.REFRESH('empdept_mv', 'F', '', TRUE, FALSE, 0,0,0,FALSE, FALSE);
PL/SQL procedure successfully completed.
DEPT_ROWID EMP_ROWID DEPT_NO EMP_NO
------------------ ------------------ ---------- ----------
AAAli5AABAAAPZ6AAA AAAli7AABAAAQs6AAA 10 1
AAAli5AABAAAPZ6AAB AAAli7AABAAAQs6AAB 20 2
execute DBMS_MVIEW.REFRESH('test_mview2', 'C', '', TRUE, FALSE, 0,0,0,FALSE, FALSE);
PL/SQL procedure successfully completed.
DEPT_ROWID EMP_ROWID DEPT_NO EMP_NO
------------------ ------------------ ---------- ----------
AAAli5AABAAAPZ6AAA AAAli7AABAAAQs6AAA 10 1
AAAli5AABAAAPZ6AAB AAAli7AABAAAQs6AAB 20 2
AAAli5AABAAAPZ6AAC AAAli7AABAAAQs6AAC 30 3
DBMS_MVIEW.EXPLAIN_MVIEW उत्पादन से पता चला है: (capability_name --Possible-- msgtxt)
- पीसीटी --N- -
- REFRESH_COMPLETE --Y--
- REFRESH_FAST --Y--
- पुनर्लेखन --N--
- PCT_TABLE --N-- ओरेकल त्रुटि: RELATED_NUM और RELATED_TEXT देख विवरण
- REFRESH_FAST_AFTER_INSERT --Y--
- REFRESH_FAST_AFTER_ONETAB_DML --Y--
- REFRESH_FAST_AFTER_ANY_DML --Y--
- REFRESH_FAST_PCT के लिए - N-- पीसीटी मेटर में विस्तार से किसी टेबल पर संभव नहीं है
- REWRITE_FULL_TEXT_MATCH --N-- ओरेकल त्रुटि: RELATED_NUM और जानकारी के लिए RELATED_TEXT देख
- REWRITE_FULL_TEXT_MATCH --N-- क्वेरी पुनर्लेखन घ है पर isabled दृश्य
- REWRITE_PARTIAL_TEXT_MATCH --N-- दृश्य materialized समर्थन नहीं कर सकता materialized क्वेरी किसी भी प्रकार का पुनर्लेखन
- REWRITE_PARTIAL_TEXT_MATCH --N-- क्वेरी पुनर्लेखन अक्षम किया गया है पर दृश्य
- REWRITE_GENERAL --N materialized - materialized दृश्य क्वेरी किसी भी प्रकार का पुनर्लेखन
- REWRITE_GENERAL --N-- क्वेरी पुनर्लेखन
- REWRITE_PCT --N-- सामान्य पुनर्लेखन संभव या पीसीटी नहीं है materialized दृश्य पर अक्षम है समर्थन नहीं कर सकता नहीं एक
- PCT_TABLE_REWRITE पर संभव है --N-- ओरेकल त्रुटि: RELATED_NUM और विवरण
के लिए RELATED_TEXT देखना मैं कैसे कमिट पर तेजी से ताज़ा प्राप्त कर सकते हैं?
ओरेकल संस्करण विवरण इस प्रकार हैं:
एनएलएसआरटीएल 10.2.0.4।0 उत्पादन
Oracle डाटाबेस 10g 10.2.0.4.0 64 बिट उत्पादन
PL/SQL 10.2.0.4.0 उत्पादन
लिनक्स के लिए टीएनएस: 10.2.0.4.0 उत्पादन
यह मेरे लिए काम करता है। हो सकता है कि आप अपना 'निर्माण सामग्री दृश्य लॉग ...' और अपने आवेषण जोड़ना चाहें ताकि हम इस मुद्दे को पूरी तरह पुन: उत्पन्न कर सकें। –
आपने कोई डेटा नहीं दिखाया है, न ही यह बताया है कि आपने किस तालिका को पंक्ति में डाला है। क्या आप नई पंक्ति देखते हैं जब आप चयन कथन चलाते हैं जो एमवी क्वेरी को परिभाषित करता है? –
मैंने सभी सम्मिलित बयान शामिल किए हैं। हां, मैं तालिका में सम्मिलित करने के बाद नई पंक्ति देख पा रहा हूं। –