ORACLEÎﻯÊÓͼ Query RewriteµÄÒ»°ãÀí½âÖ®Èý
ÔÚQuery RewriteÖдó¼Ò¿´µ½Õâ¸ö¼¼ÊõÀë²»¿ªÒ»Ñù¶«Î÷, ʵÌ廯ÊÓͼ, ¼ò³ÆMVIEW. ÕâÊÇOracleÔÚ8iÖÐÊ×ÏÈÍÆ³öµÄ¼¼Êõ, MVIEW³ýÁËÔÚQuery RewriteÖÐʹÓÃÍâ, »¹ÔÚMaster - Slave¸´ÖÆÖÐÓкÜÖØÒªµÄ×÷ÓÃ, ÔÚÕâ¶ùÎÒÃÇÖ÷Òª¹ØÐÄQuery RewriteÏà¹ØµÄµØ·½, OracleÔÚQuery Rewrite·½ÃæÔ½À´Ô½Ç¿ÁË, ÔÚOracle 8iÖлù±¾ÉÏÊÇText MatchµÄQuery Rewrite, ÔÚ9i/10gÖÐÓкܴóµÄ¸üÐÂÁË, »¹Ö§³ÖÒ»°ãµÄQuery Rewrite(Ö¸Text MatchÒÔÍâµÄ), Èç¿ÉÒÔÊÔÒ»ÏÂ×îºóÒ»¸öSQLÓï¾ä, ÔÚ8iÖв»ÄÜrewrite, ¶øÔÚ9iÖÐÈ´¿ÉÒÔ:
SQL> desc mvtest8
Name Null? Type
------------------------------ -------- -----------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SQL> create materialized view mv8_test
2 enable query rewrite
3 as
4 select owner,count(*) rowcnt from mvtest8
5 group by owner;
SQL> select count(*) from mvtest8 where owner='SYS';
ÔÚÓ¦ÓÃMVIEWʵÏÖQuery Rewriteʱ, ÐèÒª¶ÔMVIEWÓÐÒ»¸ö»ù±¾µÄÁ˽â, Ö÷ÒªÒªÀí½âÒÔÏÂÁ½µã:
1, MVIEWµÄÉè¼Æ, ¿ÉÒÔÂú×ã¶àÉÙSQLµÄRewrite.
2, MVIEWµÄË¢ÐÂ, MIVEWÊÇÒ»¸öÖмä±í, Êý¾Ý²»Ò»¶¨ÄÜ×îÐÂ, ¶ÔÓÚ´óÁ¿µÄÊý¾Ýˢз½·¨Ò²ÊǺÜÖØÒªµÄ.
ÆäʵÔÚÕâÁ½µãÖ®¼äÊÇÓÐЩ³åÍ»µÄ, ҪʵÏÖµÚÒ»µã, ¿ÉÄܸ´ÔÓµÄMVIEW¶¨ÒåÓÐÀûÓÚÌá¸ßQuery RewriteºóµÄÖ´ÐÐЧÂÊ, µ«¸´ÔÓµÄMVIEWÿ´Îˢж¼¿ÉÄÜÒª³ÃèÈ«²¿¼Ç¼, ¶ÔÓÚMVIEWË¢ÐÂ, ÔÚÓÐMVIEW LOGÓÐÇé¿öÏÂ, MVIEW¿ÉÒÔʵÏÖÔöÁ¿Ë¢ÐµÄ, Ò»°ãÀ´ËµÒªÊµÏÖÔöÁ¿Ë¢ÐÂÐèÒªÂú×ãÏÂÃæÕâÑùµÄÌõ¼þ:
1, MVIEWµÄSQLÖв»Äܰüº¯·µ»ØÖµ²»È·¶¨µÄº¯Êý, Èçsysdate, rown
Ïà¹ØÎĵµ£º
1£©ÊÂÎñÓëËø
µ±Ö´ÐÐÊÂÎñ²Ù×÷£¬±ÈÈç¶àÓû§Í¬Ê±½øÐвåÈë²Ù×÷ʱ£¬oracle»á¸øËùÓÐÕâЩ²åÈë²Ù×÷¼ÓÈë¶ÓÁУ¬ÏȽøÈë¶ÓÁеÄÏȽøÐвÙ×÷Ȩ£¬±ÈÈçÏÖÔÚAÓû§µÄ²Ù×÷ÊǵÚÒ»¸ö½øÈë¶ÓÁеģ¬ÄÇô´Ëʱ´Ë²Ù×÷¾Í»áÅжϲÙ×÷±íÉϵÄËøÊÇ·ñ´ò¿ª£¬Èç¹ûÊǹرյľÍ˵Ã÷ÓÐÆäËû²Ù×÷ÔÚÖ´ÐбØÐëµÈ´ýÆäÍê³É£¬Èç¹û´ò¿ªÁË£¬ÄǾͿÉÒÔÖ´Ðд˴ ......
MViewÖØÒªÊÓͼÔÚÔ´Êý¾Ý¿â¶ËµÄÏà¹ØÊÓͼDBA_BASE_TABLE_MVIEWSDBA_REGISTERED_MVIEWSDBA_MVIEW_LOGSÔÚMViewÊý¾Ý¿â¶ËµÄÏà¹ØÊÓͼDBA_MVIEWSDBA_MVIEW_REFRESH_TIMESDBA_REFRESHºÍDBA_REFRESH_CHILDRENMViewÏà¹Ø°üһЩMViewά»¤µÄÏà¹ØÎÊÌâSNAPSHOT vs. Materialized ViewÇåÀíÎÞЧµÄMView Log²éѯMView LogµÄ´óС¼ì²éMVµÄˢмæ ......
itpubÂÛ̳ÖÐÔøÓÐÐÖµÜ˵¹ýmaterialized viewÊÇÒԿռ任ʱ¼ä£¬ÎÒÈÏΪ·Ç³£ÌùÇС£ÎﻯÊÓͼʵ¼Ê¾ÍÊÇ»ùÓÚ²éѯµÄÊý¾Ý¿½±´£¬ÆäÐÎʽ
¼òµ¥Àí½âµÄ»°¿ÉÒÔ¿´³ÉÊÇcreate table table_name as select * from table¡£
ºÇºÇ£¬ÈËÃÇ×ÜÊÇÏ£ÍûÊÂÇéÔ½¼òµ¥Ô½ºÃÂÓÚÊǵ±°³¿´µ½Õâ¸ö¶«Î÷Õâô¼òµ¥£¬Í·ÄÔÒ»·¢ÈÈÒ²ÆÈ²»¼°´ý³åÁ˹ýÔÆ£¬ÏÂÃæÎҾ;ßÌåÃè ......
ÔÚOracleµÄQuery RewriteÖÐÖ÷ÒªÓÐÈýµã, µÚÒ»ÊÇҪʹÓÃCBO; µÚ¶þÊÇÒªÉèÖÃquery rewrite enabled²ÎÊýΪTRUE; µÚÈýÊÇÒªÏÈÔñÉèÖÃquery rewrite integrity²ÎÊýµÄÖµ(stale_tolerated, trusted, enforced). ¶ÔÓÚµÚÒ»µã, ÎÒÃÇ×îºÃanalyzeÏà¹ØµÄ±í¼°Ë÷Òý¼°MV; ¶ÔÓÚµÚ¶þµã,Õâ¸ö²ÎÊýÖ»ÓÐÁ½¸öÖµ(true, false), ºÜ¼òµ ......
SET NEWPAGE NONE HEADING OFF SPACE 0 PAGESIZE 0 TRIMOUT ON TRIMSPOOL ON LINESIZE 2500 colsep | feedback off termout off pages 0
set colsep |
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
set feedback on
declare cursor cur_no is
select beginno,endno from hm where 1=1;
b ......