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
Ïà¹ØÎĵµ£º
µ±ÄãÔÚÊý¾Ý¿âÖд´½¨Êý¾Ý±íµÄʱºò£¬ÄãÐèÒª¶¨Òå±íÖÐËùÓÐ×ֶεÄÀàÐÍ¡£ORACLEÓÐÐí¶àÖÖÊý¾ÝÀàÐÍÒÔÂú×ãÄãµÄÐèÒª¡£Êý¾ÝÀàÐÍ´óÔ¼·ÖΪ£ºcharacter, number, date, LOB, ºÍRAWµÈÀàÐÍ¡£ËäÈ»ORACLE8iÒ²ÔÊÐíÄã×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬µ«ÊÇËüÃÇÊÇ×î»ù±¾µÄÊý¾ÝÀàÐÍ¡£ÔÚÏÂÃæµÄÎÄÕÂÖÐÄ㽫Á˽⵽ËûÃÇÔÚoracle ÖеÄÓ÷¨¡¢ÏÞÖÆÒÔ¼°ÔÊÐíÖµ¡£
¡¡¡¡
¡¡¡¡ ......
¡¡
¡¡
DML Data manipulation language
SELECT
SELECT [DISTINCT] *|ÁÐxx [AS] "±ðÃûxx"[,ÁÐxx "±ðÃûxx"...]
×Ö·û´®Á¬½Ó·û ||, ×Ö·û»òÈÕÆÚÀàÐ͵Ä×Ö·û´®Óõ¥ÒýºÅ’’, ÁбðÃûÓÃË«ÒýºÅ“”¡£Èç¹û±ðÃûÖÐÓпոñ¡¢ÌØÊâ×Ö·û»òÕßÒªÇóÇø·Ö´óСд£¬±ØÐëÓÃË«ÒýºÅ¡£Ä¬ÈÏÇé¿öÏÂÁбêÌâΪ´óд£¬ ......
1£©ÊÂÎñÓëËø
µ±Ö´ÐÐÊÂÎñ²Ù×÷£¬±ÈÈç¶àÓû§Í¬Ê±½øÐвåÈë²Ù×÷ʱ£¬oracle»á¸øËùÓÐÕâЩ²åÈë²Ù×÷¼ÓÈë¶ÓÁУ¬ÏȽøÈë¶ÓÁеÄÏȽøÐвÙ×÷Ȩ£¬±ÈÈçÏÖÔÚAÓû§µÄ²Ù×÷ÊǵÚÒ»¸ö½øÈë¶ÓÁеģ¬ÄÇô´Ëʱ´Ë²Ù×÷¾Í»áÅжϲÙ×÷±íÉϵÄËøÊÇ·ñ´ò¿ª£¬Èç¹ûÊǹرյľÍ˵Ã÷ÓÐÆäËû²Ù×÷ÔÚÖ´ÐбØÐëµÈ´ýÆäÍê³É£¬Èç¹û´ò¿ªÁË£¬ÄǾͿÉÒÔÖ´Ðд˴ ......
DECODEº¯ÊýÏ൱ÓÚÒ»Ìõ¼þÓï¾ä(IF).Ëü½«ÊäÈëÊýÖµÓ뺯ÊýÖеIJÎÊýÁбíÏà±È½Ï£¬¸ù¾ÝÊäÈëÖµ·µ»ØÒ»¸ö¶ÔÓ¦Öµ¡£º¯ÊýµÄ²ÎÊýÁбíÊÇÓÉÈô¸ÉÊýÖµ¼°Æä¶ÔÓ¦½á¹ûÖµ×é³ÉµÄÈô¸ÉÐòżÐÎʽ¡£µ±È»£¬Èç¹ûδÄÜÓëÈκÎÒ»¸öʵ²ÎÐòżƥÅä³É¹¦£¬Ôòº¯ÊýÒ²ÓÐĬÈϵķµ»ØÖµ¡£Çø±ðÓÚSQLµÄÆäËüº¯Êý£¬DECODEº¯Êý»¹ÄÜʶ±ðºÍ²Ù×÷¿ÕÖµ.
Æä¾ßÌåµÄÓï·¨¸ñʽÈçÏ£º
DE ......
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 ......