Oracle ·ÖÇø±í
Oracle ·ÖÇø±í
OracleÌṩÁË·ÖÇø¼¼ÊõÒÔÖ§³ÖVLDB(Very Large DataBase)¡£·ÖÇø±íͨ¹ý¶Ô·ÖÇøÁеÄÅжϣ¬°Ñ·ÖÇøÁв»Í¬µÄ¼Ç¼£¬·Åµ½²»Í¬µÄ·ÖÇøÖС£·ÖÇøÍêÈ«¶ÔÓ¦ÓÃ͸Ã÷¡£
OracleµÄ·ÖÇø±í¿ÉÒÔ°üÀ¨¶à¸ö·ÖÇø£¬Ã¿¸ö·ÖÇø¶¼ÊÇÒ»¸ö¶ÀÁ¢µÄ¶Î£¨SEGMENT£©£¬¿ÉÒÔ´æ·Åµ½²»Í¬µÄ±í¿Õ¼äÖС£²éѯʱ¿ÉÒÔͨ¹ý²éѯ±íÀ´·ÃÎʸ÷¸ö·ÖÇøÖеÄÊý¾Ý£¬Ò²¿ÉÒÔͨ¹ýÔÚ²éѯʱֱ½ÓÖ¸¶¨·ÖÇøµÄ·½·¨À´½øÐвéѯ¡£
·ÖÇøÌṩÒÔÏÂÓŵ㣺
ÓÉÓÚ½«Êý¾Ý·ÖÉ¢µ½¸÷¸ö·ÖÇøÖУ¬¼õÉÙÁËÊý¾ÝË𻵵ĿÉÄÜÐÔ£»
¿ÉÒÔ¶Ôµ¥¶ÀµÄ·ÖÇø½øÐб¸·ÝºÍ»Ö¸´£»
¿ÉÒÔ½«·ÖÇøÓ³Éäµ½²»Í¬µÄÎïÀí´ÅÅÌÉÏ£¬À´·ÖÉ¢IO£»
Ìá¸ß¿É¹ÜÀíÐÔ¡¢¿ÉÓÃÐÔºÍÐÔÄÜ¡£
OracleÌṩÁËÒÔϼ¸ÖÖ·ÖÇøÀàÐÍ£º
·¶Î§·ÖÇø£¨range£©£»
¹þÏ£·ÖÇø£¨hash£©£»
Áбí·ÖÇø£¨list£©£»
·¶Î§£¹þÏ£¸´ºÏ·ÖÇø£¨range-hash£©£»
·¶Î§£ÁÐ±í¸´ºÏ·ÖÇø£¨range-list£©¡£
Range·ÖÇø£º
¡¡¡¡Range·ÖÇøÄØÊÇÓ¦Ó÷¶Î§±È½Ï¹ãµÄ±í·ÖÇø·½Ê½£¬ËüÊÇÒÔÁеÄÖµµÄ·¶Î§À´×öΪ·ÖÇøµÄ»®·ÖÌõ¼þ£¬½«¼Ç¼´æ·Åµ½ÁÐÖµËùÔÚµÄrange·ÖÇøÖУ¬±ÈÈç°´ÕÕʱ¼ä»®·Ö£¬2008Äê1¼¾¶ÈµÄÊý¾Ý·Åµ½a·ÖÇø£¬08Äê2¼¾¶ÈµÄÊý¾Ý·Åµ½b·ÖÇø£¬Òò´ËÔÚ´´½¨µÄʱºòÄØ£¬ÐèÒªÄãÖ¸¶¨»ùÓÚµÄÁУ¬ÒÔ¼°·ÖÇøµÄ·¶Î§Öµ£¬Èç¹ûijЩ¼Ç¼ÔÝÎÞ·¨Ô¤²â·¶Î§£¬¿ÉÒÔ´´½¨maxvalue·ÖÇø£¬ËùÓв»ÔÚÖ¸¶¨·¶Î§ÄڵļǼ¶¼»á±»´æ´¢µ½maxvalueËùÔÚ·ÖÇøÖУ¬²¢ÇÒÖ§³ÖÖ¸¶¨¶àÁÐ×öΪÒÀÀµÁУ¬ºóÃæÔÚ½²howµÄʱºò»áÏêϸ̸µ½¡£
Hash·ÖÇø£º
¡¡¡¡Í¨³£ÄØ£¬¶ÔÓÚÄÇЩÎÞ·¨ÓÐЧ»®·Ö·¶Î§µÄ±í£¬¿ÉÒÔʹÓÃhash·ÖÇø£¬ÕâÑù¶ÔÓÚÌá¸ßÐÔÄÜ»¹ÊÇ»áÓÐÒ»¶¨µÄ°ïÖú¡£hash·ÖÇø»á½«±íÖеÄÊý¾Ýƽ¾ù·ÖÅäµ½ÄãÖ¸¶¨µÄ¼¸¸ö·ÖÇøÖУ¬ÁÐËùÔÚ·ÖÇøÊÇÒÀ¾Ý·ÖÇøÁеÄhashÖµ×Ô¶¯·ÖÅ䣬Òò´ËÄã²¢²»ÄÜ¿ØÖÆÒ²²»ÖªµÀÄÄÌõ¼Ç¼»á±»·Åµ½Äĸö·ÖÇøÖУ¬hash·ÖÇøÒ²¿ÉÒÔÖ§³Ö¶à¸öÒÀÀµÁС£
List·ÖÇø£º
¡¡¡¡List·ÖÇøÓërange·ÖÇøºÍhash·ÖÇø¶¼ÓÐÀàËÆÖ®´¦£¬¸Ã·ÖÇøÓërange·ÖÇøÀàËƵÄÊÇÒ²ÐèÒªÄãÖ¸¶¨ÁеÄÖµ£¬µ«ÕâÓÖ²»Í¬Óërange·ÖÇøµÄ·¶Î§Ê½ÁÐÖµ---Æä·ÖÇøÖµ±ØÐëÃ÷È·Ö¸¶¨£¬Ò²²»Í¬Óëhash·ÖÇø---ͨ¹ýÃ÷È·Ö¸¶¨·ÖÇøÖµ£¬ÄãÄÜ¿ØÖƼǼ´æ´¢ÔÚÄĸö·ÖÇø¡£ËüµÄ·ÖÇøÁÐÖ»ÄÜÓÐÒ»¸ö£¬¶ø²»ÄÜÏñrange»òÕßhash·ÖÇøÄÇÑùͬʱָ¶¨¶à¸öÁÐ×öΪ·ÖÇøÒÀÀµÁУ¬²»¹ýÄØ£¬ËüµÄµ¥¸ö·ÖÇø¶ÔÓ¦Öµ¿ÉÒÔÊǶà¸ö¡£
¡¡¡¡ÄãÔÚ·ÖÇøʱ±ØÐëÈ·¶¨·ÖÇøÁпÉÄÜ´æÔÚµÄÖµ£¬Ò»µ©²åÈëµÄÁÐÖµ²»ÔÚ·ÖÇø·¶Î§ÄÚ£¬Ôò²åÈë/¸üоͻáʧ°Ü£¬Òò´Ëͨ³£½¨ÒéʹÓÃlist·ÖÇøʱ£¬Òª´´½¨Ò»¸
Ïà¹ØÎĵµ£º
oracleÁ¬½ÓÊý¾Ý¿â²âÊÔ´úÂë
/**
*
* ˵Ã÷£º
* £¨1£©±¾ÀýʹÓÃJDBC_ODBCÇŽøÐÐÊý¾Ý¿âÁ¬½Ó£¬¹Ê´ËÐèÒªODBCÊý¾ÝÔ´
* £¨2£©±¾ÀýÖÐSQLΪ¸üÐÂÓï¾ä£¬¹Ê´ËʹÓÃÔØÌåµÄexecuteUpdate·½·¨£¬²¢ÇÒ·µ»ØÊÜÓ°Ïì¼Ç¼Êý
* (3) ÅäÖÃÁ¬½ÓORACLEµÄodbcÊý¾ÝÔ´ora
*/ ......
а²×°ÁËһ̨Êý¾Ý¿â·þÎñÆ÷£¬°æ±¾ÊÇ10.2.0.1µÄ£¬ÒòΪÏÖÔÚ×îеÄÊÇ10.2.0.4µÄ¡£ °æ±¾µÍÁË£¬bug¶à¡£ËùÒԾͶÔÊý¾Ý¿â×öÁËÒ»¸öÉý¼¶¡£
·þÎñÆ÷ÊÇwindows 2003µÄϵͳ£¬¶¼ÊÇ¿ÉÊÓ»°²Ù×÷¡£ ÏÂÒ»²½µÄÎÊÌâ¡£ 10.2.0.4µÄpatchset ÀïÃæÒ²ÓÐÏêϸµÄ°²×°ËµÃ÷¡£ Ö®×ö¸ö×ܽá ......
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ¡£
²»ÓÃNOT IN²Ù×÷·û£¬¿ÉÒÔÓÃNOT EXISTS»òÕßÍâÁ¬½Ó+Ìæ´ú¡£
OracleÔÚÖ´ÐÐIN×Ó²éѯʱ£¬Ê×ÏÈÖ´ÐÐ×Ó²éѯ£¬½«²éѯ½á¹û·ÅÈëÁÙʱ±íÔÙÖ´ÐÐÖ÷²éѯ¡£¶øEXISTÔòÊÇÊ×Ïȼì²éÖ÷²éѯ£¬È»ºóÔËÐÐ×Ó²éѯֱµ½ÕÒµ½µÚÒ»¸öÆ¥ÅäÏî¡£NOT EXISTS±ÈNOT INЧÂÊÉԸߡ£µ«¾ßÌåÔÚÑ¡ÔñIN»òEXIST² ......
OracleÖеÄHash JoinÏé½â
Ò»¡¢ hash join¸ÅÄî
Hashjoin(HJ)ÊÇÒ»ÖÖÓÃÓÚequi-join£¨¶øanti-join¾ÍÊÇʹÓÃNOT INʱµÄjoin£©µÄ¼¼Êõ¡£
ÔÚOracleÖУ¬ËüÊÇ´Ó7.3¿ªÊ¼ÒýÈëµÄ£¬ÒÔ´úÌæsort-mergeºÍnested-loop join·½Ê½£¬
Ìá¸ßЧÂÊ¡£ÔÚCBO£¨hash joinÖ»ÓÐÔÚCBO²Å¿ÉÄܱ»Ê¹Óõ½£©Ä£Ê½Ï£¬ÓÅ»¯Æ÷¼ÆËã´ú ......
1.ÔÚORACLEÖÐʵÏÖSELECT TOP N
ÓÉÓÚORACLE²»Ö§³ÖSELECT TOPÓï¾ä£¬ËùÒÔÔÚORACLEÖо³£ÊÇÓÃORDER BY¸úROWNUMµÄ×éºÏÀ´ÊµÏÖSELECT TOP NµÄ²éѯ¡£
¼òµ¥µØ˵£¬ÊµÏÖ·½·¨ÈçÏÂËùʾ£º
SELECT¡¡ÁÐÃû£±£®£®£®ÁÐÃû£î¡¡from
(SELECT¡¡ÁÐ ......