[SQL Server 2005] hashÁª½ÓËã·¨
SQL Server 2005 hashÁª½ÓËã·¨
Èç¹ûÁ½¸öÁª½ÓÊäÈë¶¼ºÜ´ó£¬¶øÇÒÕâÁ½¸öÊäÈëµÄ´óС²î²»¶à£¬ÔòÔ¤ÏÈÅÅÐòµÄºÏ²¢Áª½ÓÌṩµÄÐÔÄÜÓë¹þÏ£Áª½ÓÏà½ü¡£µ«ÊÇ£¬Èç¹ûÕâÁ½¸öÊäÈëµÄ´óСÏà²îºÜ´ó£¬Ôò¹þÏ£Áª½Ó²Ù×÷ͨ³£¿ìµÃ¶à¡£
¹þÏ£Áª½Ó¿ÉÒÔÓÐЧ´¦ÀíδÅÅÐòµÄ´óÐÍ·ÇË÷ÒýÊäÈë¡£ËüÃǶԸ´ÔÓ²éѯµÄÖмä½á¹ûºÜÓÐÓã¬ÒòΪ£º
· Öмä½á¹ûδ¾Ë÷Òý£¨³ý·ÇÒѾÏÔʽ±£´æµ½´ÅÅÌÉÏÈ»ºó´´½¨Ë÷Òý£©£¬¶øÇÒͨ³£²»Îª²éѯ¼Æ»®ÖеÄÏÂÒ»¸ö²Ù×÷½øÐÐÊʵ±µÄÅÅÐò¡£
· ²éѯÓÅ»¯Æ÷Ö»¹À¼ÆÖмä½á¹ûµÄ´óС¡£ÓÉÓÚ¶ÔÓÚ¸´ÔÓ²éѯ£¬¹À¼Æ¿ÉÄÜÓкܴóµÄÎó²î£¬Òò´ËÈç¹ûÖмä½á¹û±ÈÔ¤ÆÚµÄ´óµÃ¶à£¬Ôò´¦ÀíÖмä½á¹ûµÄËã·¨²»½ö±ØÐëÓÐЧ¶øÇÒ±ØÐëÊʶÈÈõ»¯¡£
ÔÀí
Hash joinÒ»°ãÓÃÓÚÒ»ÕÅС±íºÍÒ»ÕÅ´ó±í½øÐÐjoinʱ¡£Hash joinµÄ¹ý³Ì´óÖÂÈçÏ£¨ÏÂÃæËù˵µÄÄÚ´æ¾ÍÖ¸sort area£¬¹ØÓÚ¹ý³Ì£¬ºó
Ãæ»á×÷ÏêϸÌÖÂÛ£©£º
1£® Ò»ÕÅС±í±»hashÔÚÄÚ´æÖС£ÒòΪÊý¾ÝÁ¿Ð¡£¬ËùÒÔÕâÕÅС±íµÄ´ó¶àÊýÊý¾ÝÒѾפÈëÔÚÄÚ´æÖУ¬Ê£ÏµÄÉÙÁ¿Êý¾Ý±»·ÅÖÃÔÚÁÙʱ±í¿Õ¼äÖУ»
2£® ÿ¶ÁÈ¡´ó±íµÄÒ»Ìõ¼Ç¼£¬¾ÍºÍС±íÖÐÄÚ´æÖеÄÊý¾Ý½øÐбȽϣ¬Èç¹û·ûºÏ£¬ÔòÁ¢¼´Êä³öÊý¾Ý£¨Ò²¾ÍÊÇ˵ûÓжÁÈ¡ÁÙʱ±í¿Õ¼äÖеÄС±íµÄÊý¾Ý£©¡£¶øÈç¹û´ó±íµÄÊý¾ÝÓëС±íÖÐÁÙʱ±í¿Õ¼äµÄÊý¾ÝÏà·ûºÏ£¬Ôò²»Ö±½ÓÊä³ö£¬¶øÊÇÒ²±»´æ´¢ÁÙʱ±í¿Õ¼äÖС£
3£® µ±´ó±íµÄËùÓÐÊý¾Ý¶¼¶ÁÈ¡Íê±Ï£¬½«ÁÙʱ±í¿Õ¼äÖеÄÊý¾ÝÒÔÆäÊä³ö¡£
Èç¹ûС±íµÄÊý¾ÝÁ¿×㹻С£¨Ð¡ÓÚhash area size£©£¬ÄÇËùÓÐÊý¾Ý¾Í¶¼ÔÚÄÚ´æÖÐÁË£¬¿ÉÒÔ±ÜÃâ¶ÔÁÙʱ±í¿Õ¼äµÄ¶Áд¡£
Èç¹ûÊDz¢Ðл·¾³Ï£¬Ç°ÃæÖеĵÚ2²½¾Í±ä³ÉÈçÏÂÁË£º
2£®Ã¿¶ÁȡһÌõ´ó±íµÄ¼Ç¼£¬ºÍÄÚ´æÖÐС±íµÄÊý¾Ý±È½Ï£¬Èç¹û·ûºÏÏÈ×öjoin£¬¶ø²»Ö±½ÓÊä³ö£¬Ö±µ½ÕûÕÅ´ó±íÊý¾Ý¶ÁÈ¡Íê±Ï¡£Èç¹ûÄÚ´æ×ã¹»£¬JoinºÃµÄÊý¾Ý¾Í±£´æÔÚÄÚ´æÖС£·ñÔò£¬¾Í±£´æÔÚÁÙʱ±í¿Õ¼äÖС£
1,´¦Àí´óÁ¿¡¢Î´ÅÅÐò¡¢ÎÞË÷ÒýµÄÊý¾Ý
2 ,Hash JoinÒ»¸ö½Ï´óÏÞÖÆÊÇËüÖ»ÄÜÓ¦ÓÃÓÚµÈÖµÁª½á(equality join)£¬ÕâÖ÷ÒªÊÇÓÉÓÚ¹þÏ£º¯Êý¼°Æä
Ïà¹ØÎĵµ£º
GROUP BY ʵÀý
±í "Sales":
Company Amount
W3Course 6500
IBM 5500
W3Course 7300
SQL:
SELECT Company, SUM(Amount) from Sales
½á¹û:
Company SUM(Amount)
W3Course 19300
IBM 19300
W3Course 19300
ÉÏÃæµÄ´úÂëÊÇÎÞЧµÄ£¬ÕâÊÇÓÉÓÚ±»·µ»ØµÄÁÐûÓнøÐв¿·ÖºÏ¼Æ¡£GROUP BY ×Ó¾äÄܽâ¾öÕâ¸öÎÊÌ⣺
SELE ......
/***************************************************
×÷Õߣºherowang(ÈÃÄãÍû¼ûÓ°×ÓµÄǽ£©
ÈÕÆÚ£º2010.1.1
×¢£º ×ªÔØÇë±£Áô´ËÐÅÏ¢
& ......
Èç¹ûÄãÕýÔÚ¸ºÔðÒ»¸ö»ùÓÚSQL ServerµÄÏîÄ¿£¬»òÕßÄã¸Õ¸Õ½Ó´¥SQL Server£¬Äã¶¼ÓпÉÄÜÒªÃæÁÙһЩÊý¾Ý¿âÐÔÄܵÄÎÊÌ⣬ÕâÆªÎÄÕ»áΪÄãÌṩһЩÓÐÓõÄÖ¸µ¼£¨ÆäÖдó¶àÊýÒ²¿ÉÒÔÓÃÓÚÆäËüµÄDBMS£©¡£
ÔÚÕâÀÎÒ²»´òËã½éÉÜʹÓÃSQL ServerµÄÇÏÃÅ£¬Ò²²»ÄÜÌṩһ¸ö°üÖΰٲ¡µÄ·½°¸£¬ÎÒËù×öµÄÊÇ×ܽáһЩ¾Ñé----¹ØÓÚÈçºÎÐγÉÒ»¸öºÃµÄÉè¼Æ¡£Õ ......
Student(S#,Sname,Sage,Ssex) ѧÉú±í
Course(C#,Cname,T#) ¿Î³Ì±í
SC(S#,C#,score) ³É¼¨±í
Teacher(T#,Tname) ½Ìʦ±í
ÎÊÌ⣺
1¡¢²éѯ“001”¿Î³Ì±È“002”¿Î³Ì³É¼¨¸ßµÄËùÓÐѧÉúµÄѧºÅ£»
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......