OracleÖеÄHash JoinÏé½â
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²Å¿ÉÄܱ»Ê¹Óõ½£©Ä£Ê½Ï£¬ÓÅ»¯Æ÷¼ÆËã´ú¼Ûʱ£¬
Ê×ÏȻῼ ÂÇhash join¡£¿ÉÒÔͨ¹ýÌáʾuse_hashÀ´Ç¿ÖÆÊ¹ÓÃhash join£¬
Ò²¿ÉÒÔͨ¹ýÐ޸ĻỰ»òÊý¾Ý¿â²ÎÊýHASH_JOIN_ENABLED=FALSE£¨Ä¬ÈÏΪTRUE£©Ç¿ÖƲ»Ê¹ÓÃhash join¡£
Hash joinµÄÖ÷Òª×ÊÔ´ÏûºÄÔÚÓÚCPU£¨ÔÚÄÚ´æÖд´½¨ÁÙʱµÄhash±í£¬²¢½øÐÐhash¼ÆË㣩£¬¶ømerge joinµÄ×ÊÔ´ÏûºÄÖ÷ÒªÔÚÓÚ´ËÅÌIO£¨É¨Ãè±í»òË÷Òý£©¡£ÔÚ²¢ÐÐϵͳÖУ¬
hash join¶ÔCPUµÄÏûºÄ¸ü¼ÓÃ÷ÏÔ¡£ËùÒÔÔÚCPU½ôÕÅʱ£¬×îºÃÏÞÖÆÊ¹ÓÃhash join¡£
ÔÚ¾ø´ó¶àÊýÇé¿öÏ£¬hash joinЧÂÊ±ÈÆäËûjoin·½Ê½Ð§Âʸü¸ß£º
ÔÚSort-Merge Join(SMJ)£¬Á½ÕűíµÄÊý¾Ý¶¼ÐèÒªÏÈ×öÅÅÐò£¬È»ºó×ömerge¡£Òò´ËЧÂÊÏà¶Ô×î²î£»
Nested-Loop Join(NL)ЧÂʱÈSMJ¸ü¸ß¡£ÌرðÊǵ±Çý¶¯±íµÄÊý¾ÝÁ¿ºÜ´ó£¨¼¯µÄÊÆ¸ß£©Ê±¡£ÕâÑù¿ÉÒÔ²¢ÐÐɨÃèÄÚ±í¡£
Hash joinЧÂÊ×î¸ß£¬ÒòΪֻҪ¶ÔÁ½ÕűíɨÃèÒ»´Î¡£Hash joinÒ»°ãÓÃÓÚÒ»ÕÅС±íºÍÒ»ÕÅ´ó±í½øÐÐjoinʱ¡£Hash joinµÄ¹ý³Ì´óÖÂÈçÏ£¨ÏÂÃæËù˵µÄÄÚ´æ¾ÍÖ¸sort area£¬¹ØÓÚ¹ý³Ì£¬ºóÃæ»á×÷ÏêϸÌÖÂÛ£©£º
1£® Ò»ÕÅС±í±»hashÔÚÄÚ´æÖС£ÒòΪÊý¾ÝÁ¿Ð¡£¬ËùÒÔÕâÕÅС±íµÄ´ó¶àÊýÊý¾ÝÒѾפÈëÔÚÄÚ´æÖУ¬Ê£ÏµÄÉÙÁ¿Êý¾Ý±»·ÅÖÃÔÚÁÙʱ±í¿Õ¼äÖУ»
2£® ÿ¶ÁÈ¡´ó±íµÄÒ»Ìõ¼Ç¼£¬¾ÍºÍС±íÖÐÄÚ´æÖеÄÊý¾Ý½øÐбȽϣ¬Èç¹û·ûºÏ£¬ÔòÁ¢¼´Êä³öÊý¾Ý£¨Ò²¾ÍÊÇ˵ûÓжÁÈ¡ÁÙʱ±í¿Õ¼äÖеÄС±íµÄÊý
¾Ý£©¡£¶øÈç¹û´ó±íµÄÊý¾ÝÓëС±íÖÐÁÙʱ±í¿Õ¼äµÄÊý¾ÝÏà·ûºÏ£¬Ôò²»Ö±½ÓÊä³ö£¬¶øÊÇÒ²±»´æ´¢ÁÙʱ±í¿Õ¼äÖС£
3£® µ±´ó±íµÄËùÓÐÊý¾Ý¶¼¶ÁÈ¡Íê±Ï£¬½«ÁÙʱ±í¿Õ¼äÖеÄÊý¾ÝÒÔÆäÊä³ö¡£
Èç¹ûС±íµÄÊý¾ÝÁ¿×㹻С£¨Ð¡ÓÚhash area size£©£¬ÄÇËùÓÐÊý¾Ý¾Í¶¼ÔÚÄÚ´æÖÐÁË£¬¿ÉÒÔ±ÜÃâ¶ÔÁÙʱ±í¿Õ¼äµÄ¶Áд¡£
Èç¹ûÊDz¢Ðл·¾³Ï£¬Ç°ÃæÖеĵÚ2²½¾Í±ä³ÉÈçÏÂÁË£º
2£® ÿ¶ÁȡһÌõ´ó±íµÄ¼Ç¼£¬ºÍÄÚ´æÖÐС±íµÄÊý¾Ý±È½Ï£¬Èç¹û·ûºÏÏÈ×öjoin£¬¶ø²»Ö±½ÓÊä³ö£¬Ö±µ½ÕûÕÅ´ó±íÊý¾Ý¶ÁÈ¡Íê±Ï¡£Èç¹ûÄÚ´æ×ã¹»£¬
JoinºÃµÄÊý¾Ý¾Í±£´æÔÚ
Ïà¹ØÎĵµ£º
linux ÉϵÄoracle sqlplus ²»ÄÜÀûÓà ÉÏ, Ï ¼üÀ´²é¿´ÃüÁËÑË÷µ½½â¾öÎÊÌâµÄ°ì·¨£¬ÕûÀíÈçÏÂ
°²×°Èí¼þrlwrap¿ÉÒÔ½â¾öÕâ¸öÎÊÌ⣬¸ÃÈí¼þÊÇÓÃcдµÄ³ÌÐò
¹Ù·½ÏÂÔØµØÖ·£ºhttp://utopia.knoware.nl/~hlub/uck/rlwrap/
°²×°¹ý³Ì£º
ÎÒÃÇÒ²¿ÉÒԲ鿴½âѹºóµÄtar°ü£¬²é¿´README°ïÖúÎļþ
shell>tar -zxvf rlwrap-0.36.tar.gz
sh ......
Wait Problem Potential Fix Sequential Read Indicates many index reads—tune the code (especially joins) Scattered Read Indicates many full table scans—tune the code; cache small tables ......
http://www.cuijie.net.cn/?cat=6
¸ü¸ÄÊý¾Ý¿âµÄ¹éµµÄ£Ê½ÐèÒªÖØÐÂÆô¶¯Êý¾Ý¿â£¬ÔÚmountģʽÏÂÐ޸쬼òÒª²½Öè
1 ÒÔshutdown immediate ·½Ê½¹Ø±ÕÊý¾Ý¿â
2 Æô¶¯ÊµÀýµ½mount״̬
3 ¸ü¸ÄÔËÐÐģʽ²¢´ò¿ªÊý¾Ý¿â
²Ù×÷²½Ö裺
1 µÇ¼Êý¾Ý¿â²é¿´Êý¾Ý¿âµÄ¹éµµ×´Ì¬
S ......
а²×°ÁËһ̨Êý¾Ý¿â·þÎñÆ÷£¬°æ±¾ÊÇ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² ......