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ºÃµÄÊý¾Ý¾Í±£´æÔÚ
Ïà¹ØÎĵµ£º
SQL*LOADERÊÇORACLEµÄÊý¾Ý¼ÓÔØ¹¤¾ß£¬Í¨³£ÓÃÀ´½«²Ù×÷ϵͳÎļþÇ¨ÒÆµ½ORACLEÊý¾Ý¿âÖС£SQL*LOADERÊÇ´óÐÍÊý¾Ý
²Ö¿âÑ¡ÔñʹÓõļÓÔØ·½·¨¡£
¡¡¡¡ÔÚNTÏ£¬SQL*LOADERµÄÃüÁîΪSQLLDR£¬ÔÚUNIXÏÂÒ»°ãΪsqlldr/sqlload¡£
¡¡¡¡ÈçÖ´ÐУºd:\oracle>sqlldr
SQL*Loader: Release 8.1.6.0.0 - Production on ÐÇÆÚ¶þ 1ÔÂ 8 11:06:42 2 ......
¡¡Ëæ×ÅÏÖ´úÊý¾Ý¿â¿ÉÓÃÌØÕ÷¼¯µÄѸËÙÔö¼Ó£¬ºÜÄÑÇø·ÖÊëºÃÊ뻵¡£ÀýÈçOracleÀï¾ÍÓÐÐí¶àÄã¿ÉÄÜ´ÓÀ´¶¼²»ÐèÒªµÄ¸ß¼¶Êý¾Ý²Ö¿âÌØÕ÷¡£´ËÍâÒ²¿ÉÄÜÓÐһЩÆäËü²»¿É»òȱµÄÌØÕ÷±ÈÈçACIDÊÂÎñÌØÐÔ¡£ÎÒÃÇÀ´¿´Ò»¿´Ö÷ÒªµÄÒ»Ð©ÌØÕ÷£¬±ÈÈç´æ´¢¹ý³Ì£¬ÊÓͼ£¬¿ìÕÕ£¬±íÊý¾ÝÀàÐͺÍÊÂÎñµÈµÈ¡£Í¬Ê±ÎÒÃÇ·ÖÎöÒ»ÏÂPostgresql£¬MySQLºÍOracleÕ⼸¸öÊý¾Ý¿â£¬È»º ......
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 ......
oracleÁ¬½ÓÊý¾Ý¿â²âÊÔ´úÂë
/**
*
* ˵Ã÷£º
* £¨1£©±¾ÀýʹÓÃJDBC_ODBCÇŽøÐÐÊý¾Ý¿âÁ¬½Ó£¬¹Ê´ËÐèÒªODBCÊý¾ÝÔ´
* £¨2£©±¾ÀýÖÐSQLΪ¸üÐÂÓï¾ä£¬¹Ê´ËʹÓÃÔØÌåµÄexecuteUpdate·½·¨£¬²¢ÇÒ·µ»ØÊÜÓ°Ïì¼Ç¼Êý
* (3) ÅäÖÃÁ¬½ÓORACLEµÄodbcÊý¾ÝÔ´ora
*/ ......
1.µ¼ÈëÊý¾ÝÃüÁimp userid=fkprod/fkprod full=y file=xxx.dmp
2.µ¼³öÊý¾Ý¿â¶ÔÏóÃüÁ
ʹÓÃtools--->export user objectÖ»Äܵ¼³öÊý¾Ý±í½Å±¾²»ÄÜ´ø³öÊý¾Ý,
»òÕßʹÓÃexp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y
×¢Ò⣺Èç¹ûÄãÒªÔ¶³ÌµÇ¼µ½Êý¾Ý¿â·þÎñÆ÷µ¼³ö£¬¿ÉÒÔÔÚ±¾µØSQLPLUS×öÈçÏÂÃüÁ ......