ORACLEÖ´Ðмƻ®µÄһЩ»ù±¾¸ÅÄî
Ò»£®Ïà¹ØµÄ¸ÅÄî
RowidµÄ¸ÅÄrowidÊÇÒ»¸öαÁУ¬¼ÈÈ»ÊÇαÁУ¬ÄÇôÕâ¸öÁоͲ»ÊÇÓû§¶¨Ò壬¶øÊÇϵͳ×Ô¼º¸ø¼ÓÉϵġ£¶Ôÿ¸ö±í¶¼ÓÐÒ»¸örowidµÄαÁУ¬µ«ÊÇ
±íÖв¢²»ÎïÀí´æ´¢ROWIDÁеÄÖµ¡£²»¹ýÄã¿ÉÒÔÏñʹÓÃÆäËüÁÐÄÇÑùʹÓÃËü£¬µ«ÊDz»ÄÜɾ³ý¸ÄÁУ¬Ò²²»ÄܶԸÃÁеÄÖµ½øÐÐÐ޸ġ¢²åÈë¡£Ò»µ©Ò»ÐÐÊý¾Ý²åÈëÊý¾Ý¿â£¬Ôò
rowidÔÚ¸ÃÐеÄÉúÃüÖÜÆÚÄÚÊÇΨһµÄ£¬¼´¼´Ê¹¸ÃÐвúÉúÐÐǨÒÆ£¬ÐеÄrowidÒ²²»»á¸Ä±ä¡£
Recursive
SQL¸ÅÄÓÐʱΪÁËÖ´ÐÐÓû§·¢³öµÄÒ»¸ösqlÓï¾ä£¬Oracle±ØÐëÖ´ÐÐһЩ¶îÍâµÄÓï¾ä£¬ÎÒÃǽ«ÕâЩ¶îÍâµÄÓï¾ä³Æ֮Ϊ'recursive
calls'»ò'recursive SQL statements'¡£Èçµ±Ò»¸öDDLÓï¾ä·¢³öºó£¬ORACLE×ÜÊÇÒþº¬µÄ·¢³öһЩrecursive
SQLÓï¾ä£¬À´ÐÞ¸ÄÊý¾Ý×ÖµäÐÅÏ¢£¬ÒÔ±ãÓû§¿ÉÒԳɹ¦µÄÖ´ÐиÃDDLÓï¾ä¡£µ±ÐèÒªµÄÊý¾Ý×ÖµäÐÅϢûÓÐÔÚ¹²ÏíÄÚ´æÖÐʱ£¬¾³£»á·¢ÉúRecursive
calls£¬ÕâЩRecursive calls»á½«Êý¾Ý×ÖµäÐÅÏ¢´ÓÓ²Å̶ÁÈëÄÚ´æÖС£Óû§²»±È¹ØÐÄÕâЩrecursive
SQLÓï¾äµÄÖ´ÐÐÇé¿ö£¬ÔÚÐèÒªµÄʱºò£¬ORACLE»á×Ô¶¯µÄÔÚÄÚ²¿Ö´ÐÐÕâЩÓï¾ä¡£µ±È»DMLÓï¾äÓëSELECT¶¼¿ÉÄÜÒýÆðrecursive
SQL¡£¼òµ¥µÄ˵£¬ÎÒÃÇ¿ÉÒÔ½«´¥·¢Æ÷ÊÓΪrecursive SQL¡£
Row Source(ÐÐÔ´)£ºÓÃÔÚ²éѯÖУ¬ÓÉÉÏÒ»²Ù×÷·µ»ØµÄ·ûºÏÌõ¼þµÄÐеļ¯ºÏ£¬¼´¿ÉÒÔÊDZíµÄÈ«²¿ÐÐÊý¾ÝµÄ¼¯ºÏ£»Ò²¿ÉÒÔÊDZíµÄ²¿·ÖÐÐÊý¾ÝµÄ¼¯ºÏ£»Ò²¿ÉÒÔΪ¶ÔÉÏ2¸örow source½øÐÐÁ¬½Ó²Ù×÷(ÈçjoinÁ¬½Ó)ºóµÃµ½µÄÐÐÊý¾Ý¼¯ºÏ¡£
Predicate(ν´Ê)£ºÒ»¸ö²éѯÖеÄWHEREÏÞÖÆÌõ¼þ
Driving Table(Çý¶¯±í)£º¸Ã±íÓÖ³ÆΪÍâ²ã±í(OUTER TABLE)¡£Õâ¸ö¸ÅÄîÓÃÓÚǶÌ×ÓëHASHÁ¬½ÓÖС£Èç¹û¸Ãrow
source·µ»Ø½Ï¶àµÄÐÐÊý¾Ý£¬Ôò¶ÔËùÓеĺóÐø²Ù×÷ÓиºÃæÓ°Ïì¡£×¢Òâ´Ë´¦ËäÈ»·ÒëΪÇý¶¯±í£¬µ«Êµ¼ÊÉÏ·ÒëΪÇý¶¯ÐÐÔ´(driving row
source)¸üΪȷÇС£Ò»°ã˵À´£¬ÊÇÓ¦ÓòéѯµÄÏÞÖÆÌõ¼þºó£¬·µ»Ø½ÏÉÙÐÐÔ´µÄ±í×÷ΪÇý¶¯±í£¬ËùÒÔÈç¹ûÒ»¸ö´ó±íÔÚWHEREÌõ¼þÓÐÓÐÏÞÖÆÌõ¼þ(ÈçµÈÖµÏÞ
ÖÆ)£¬Ôò¸Ã´ó±í×÷ΪÇý¶¯±íÒ²ÊǺÏÊʵģ¬ËùÒÔ²¢²»ÊÇÖ»ÓнÏСµÄ±í¿ÉÒÔ×÷ΪÇý¶¯±í£¬Õýȷ˵·¨Ó¦¸ÃΪӦÓòéѯµÄÏÞÖÆÌõ¼þºó£¬·µ»Ø½ÏÉÙÐÐÔ´µÄ±í×÷ΪÇý¶¯±í¡£ÔÚÖ´ÐÐ
¼Æ»®ÖУ¬Ó¦¸ÃΪ¿¿ÉϵÄÄǸörow source£¬ºóÃæ»á¸ø³ö¾ßÌå˵Ã÷¡£ÔÚÎÒÃǺóÃæµÄÃèÊöÖУ¬Ò»°ã½«¸Ã±í³ÆΪÁ¬½Ó²Ù×÷µÄrow source 1¡£
Probed Table(±»Ì½²é±í)£º¸Ã±íÓÖ³ÆΪÄÚ²ã±í(INNER
TABLE)¡£ÔÚÎÒÃÇ´ÓÇý¶¯±íÖеõ½¾ßÌåÒ»ÐеÄÊý¾Ýºó£¬ÔڸñíÖÐÑ°ÕÒ·ûºÏÁ¬½ÓÌõ¼þµÄÐС£ËùÒԸñíÓ¦µ±Îª´ó±í(ʵ¼ÊÉÏÓ¦¸ÃΪ·µ»Ø½Ï´órow
sourceµÄ±í)ÇÒÏàÓ¦µÄÁÐÉÏÓ¦¸ÃÓÐË÷Òý¡£Ô
Ïà¹ØÎĵµ£º
·½°¸1 ÊÊÓÃÓÚoracle9iÒÔÉÏ£¡
select * from
(select row_number() over(order by sendid desc) rn,m.* from xxt_msgreceive m )
where rn <1010 and rn>=1000
·½°¸2
SELECT * from (SELECT A.*, ROWNUM RN from (SELECT * from xxt_msg where sendstatus=1 order by msgid desc) A WHERE ROWNUM < ......
ÔĶÁoracleÎĵµµÄb10743£¬¡¶conceps¡·¡£Õâ±¾±»oracle¹«Ë¾µÄ´óʦ¼¶µÄÈËÎïMichele CyranµÈÅ£ÈËËùд£¬ÕæÊÇÒ»±¾²»´íµÄÊé¼®¡£¿É̾ӢÎIJ»Ì«ºÃ£¬µ«Å¬Á¦£¬×Ü»áÓÐÊÕ»ñµÄ¡£»¹ÊÇ´ÓËûµÄÊý¾Ý¼Ü¹¹À´Ëµ°É£¡
£¨Ò»£©Data blocks £¬Extents£¬Segment
Õâ¾ÍÊÇËûÃÇÖ®¼äµÄÂß¼½á¹¹¡£
ÏÈ¿´Data blo ......
OracleÊý¾Ýµ¼Èëµ¼³öimp/expÃüÁî
Oracle Êý¾Ýµ¼Èëµ¼³öimp/exp¾ÍÏ൱ÓÚoracleÊý¾Ý»¹ÔÓ뱸·Ý¡£expÃüÁî¿ÉÒÔ°ÑÊý¾Ý´ÓÔ¶³ÌÊý¾Ý¿â·þÎñÆ÷µ¼³öµ½±¾µØµÄdmpÎļþ£¬impÃüÁî¿ÉÒÔ°Ñ dmpÎļþ´Ó±¾µØµ¼Èëµ½Ô¶´¦µÄÊý¾Ý¿â·þÎñÆ÷ÖС£ ÀûÓÃÕâ¸ö¹¦ÄÜ¿ÉÒÔ¹¹½¨Á½¸öÏàͬµÄÊý¾Ý¿â£¬Ò»¸öÓÃÀ´²âÊÔ£¬Ò»¸öÓÃÀ´ÕýʽʹÓá£
Ö´Ðл ......
¾Û¼¯(cluster)ÊÇ´æ´¢±íÊý¾ÝµÄ¿ÉÑ¡ÔñµÄ·½·¨¡£Ò»¸ö¾Û¼¯ÊÇÒ»×é±í£¬½«¾ßÓÐͬһ¹«¹²ÁÐÖµµÄÐд洢ÔÚÒ»Æ𣬲¢ÇÒËüÃǾ³£Ò»ÆðʹÓá£ÕâЩ¹«¹²Áй¹³É¾Û¼¯Âë¡£
¾³£±»Í¬Ê±·ÃÎʵıíÔÚÎïÀíλÖÃÉÏ¿ÉÒÔ´æ´¢ÔÚÒ»Æð¡£ÎªÁ˽«ËüÃÇ´æ´¢ÔÚÒ»Æ𣬾ÍÒª´´½¨Ò»¸ö´Ø( c l u s t e r )À´¹ÜÀíÕâЩ±í¡£±íÖеÄÊý¾ÝÒ»Æð´æ´¢ÔÚ´ØÖУ¬´Ó¶ø×îС»¯±ØÐëÖ´ÐеÄI ......