Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¸ßЧSQL²éѯ֮Ë÷Òý£¨VI£©

ÎÒÃÇÏÈ¿´ NestedLoop ºÍ MergeJoin µÄËã·¨£¨ÒÔÏÂΪÒýÓ㬼û RicCC µÄ¡¶ ͨÍùÐÔÄÜÓÅ»¯µÄÌìÌà - µØÓü JOIN ·½·¨ËµÃ÷ ¡· ):
==================================
NestedLoop:
   foreach rowA in tableA where tableA.col2=?
    {
    search rowsB from tableB where tableB.col1=rowA.col1 and tableB.col2=? ;
    if(rowsB.Count<=0)
        discard rowA ;
    else
        output rowA and rowsB ;
    }
MergeJoin:
Á½¸ö±í¶¼°´ÕÕ¹ØÁª×Ö¶ÎÅÅÐòºÃÖ®ºó£¬ merge join ²Ù×÷´Óÿ¸ö±íȡһÌõ¼Ç¼¿ªÊ¼Æ¥Å䣬Èç¹û·ûºÏ¹ØÁªÌõ¼þ£¬Ôò·ÅÈë½á¹û¼¯ÖУ»·ñÔò£¬½«¹ØÁª×Ö¶ÎÖµ½ÏСµÄ¼Ç¼Åׯú£¬´ÓÕâÌõ¼Ç¼¶ÔÓ¦µÄ±íÖÐÈ¡ÏÂÒ»Ìõ¼Ç¼¼ÌÐø½øÐÐÆ¥Å䣬ֱµ½Õû¸öÑ­»·½áÊø¡£
==================================
ÎÒÃÇͨ¹ý×î¼òµ¥µÄÇé¿öÀ´¼ÆËã NestedLoop ºÍ MergeJoin µÄÏûºÄ£º
Á½Õűí A ¡¢ B £¬·Ö±ðÓÐ m ¡¢ n ÐÐÊý¾Ý£¨ m < n £©£¬Õ¼Óûù´¡±íÎïÀí´æ´¢¿Õ¼ä·Ö±ðΪ a ¡¢ b Ò³£¬¾Û¼¯Ë÷ÒýÊ÷·ÇÒ¶½Úµã¶¼ÊÇÁ½²ã£¨Ò»²ã¸ù½Úµã£¬Ò»²ãÖм伶½Úµã£©£¬ A ¡¢ B µÄ¾Û¼¯Ë÷Òý½¨ÔÚ A.col1 ¡¢ B.col1 ÉÏ¡£Ò»Ìõ²éѯÓï¾ä£º
select A.col1, B.col2 from A inner join B where A.col1 = B.col1 ¡£
Ö´ÐÐ NestedLoop ²Ù×÷ £º
A ×÷Ϊ outer input £¬ B ×÷Ϊ inner input ʱ£º A ´øÀ´µÄ IO Ϊ a £»Ã¿´Îͨ¹ý clustered index seek Ö´ÐÐÄÚ²¿Ñ­»·£¬»¨·Ñ 3( Ò»¸ö¸ù½Úµã¡¢Ò»¸öÖм伯½áµã¡¢Ò»¸öÒ¶½Úµã¡£µ±È»Ò²¿ÉÄÜÖ±½Ó´Ó¸ù½Úµã¾ÍÄõ½ÒªµÄÊý¾Ý£¬ÎÒÃÇÖ»¿¼ÂÇ×µÄÇé¿ö£©£¬ÕâÑùÖ´ÐÐÕû¸öǶÌ×Ñ­»·¹ý³ÌÏûºÄ IO Ϊ a + 3*m ¡£Èç¹û B ×÷Ϊ inner input £¬ A ×÷Ϊ outer input ·ÖÎöÀàËÆ¡£
Ö´ÐÐ MergeJoin :
MergeJoin Òª°Ñ A ¡¢ B Á½Õűí×ö¸ö Scan £¬È»ºó½øÐÐ Merge ²Ù×÷¡£ËùÒÔ A ¡¢ B ·Ö±ð´øÀ´ IO Ϊ a + b ¾ÍÊÇ×ܵÄÂß¼­ IO ¿ªÏú¡£
´ÓÉÏÊö·ÖÎöÀ´¿´£¬Èô a + 3*m << a + b £¬¼´ 3*m << b £¬ÄÇô NestedLoop ÐÔÄÜÊǼ«¼ÑµÄ¡£µ±È»£¬ÎÒÃÇ±È½Ï A ±íµÄÐÐºÍ B ±íËùÕ¼Êý¾ÝÒ³´óС¿´ÉÏÈ¥Óеã¿äÕÅ£¬µ«ÊÇÁ¿»¯·ÖÎöȷʵÈç´Ë¡£ÔÚÕâÀÎÒÃÇûÓмÆËã NestedLoop ºÍ MergeJoin ±¾ÉíµÄ cpu ¼ÆË㿪Ïú£¬ÌرðÊǺóÕߣ¬Õⲿ·Ö²¢²»ÄÜÍêÈ«ºöÂÔ£¬µ«ÊÇÒ²À´µÃÓÐÏÞ¡£
OK £¬ÏÖÔÚÎÒÃÇÊÔͼִÐÐʵ¼ÊµÄÓï¾äÑéÖ¤ÎÒÃǵĹ۵㣬¿´¿´ÄÜ·¢ÏÖʲô¡£


Ïà¹ØÎĵµ£º

sql 2005 ²»Í¬Êý¾Ý¿âµÄÊý¾Ý±í¸´ÖÆ

 sql 2005±íµÄ¸´ÖÆÓÐÁ½ÖÖ£ºÒ»ÖÖ¾ÍÊǰÑÕû¸ö±í¸´ÖƹýÈ¥£¬¾ÍºÃÏñ¸´ÖÆÎļþ²¢ÇÒÖØÃüÃû¡£±ðÍâÒ»ÖÖ¾ÍÊǰѱíµÄÄÚÈݸ´Öƹý³ö.
select * into newtable form oldtable;°Ñoldtabel¸´ÖƵ½newtableÇÒnewtable²»´æÔÚ,·ñÔò³ö´í.;
insert into newtable select * from oldtable°ÑoldtableµÄÄÚÈݲåÈëµ½newtable, newtableÒ»¶¨Òª´æÔÚ, ......

[SQL Server 2008]SQL Server 2008 °²×°Ê¾ÀýÊý¾Ý¿â

ÏÂÔØµØÖ·£ºhttp://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=19353
ÎÒÏÂÔØµÄÊÇSQL2008.AdventureWorks_All_Databases.x86.msi£¬±¾²»ÏëÏÂÔØÕâÖÖ°²×°Îļþ£¬µ«½Å±¾Îļþ×ÜÊÇÖ´Ðгö´í£¬Ô­Òòû¾ßÌåÉ¡£ÕâÖÖ°²×°Îļþ°²×°ºó»á´´½¨Áù¸ö¿âAdventureWorks¡¢AdventureWorks2008¡¢AdventureWorksDW¡¢Ad ......

SQL 2005 ´æ´¢¹ý³Ì µ÷ÊÔ

SQL 2005 µÄ´æ´¢¹ý³ÌºÍ´¥·¢Æ÷µ÷ÊԴ󷨣¨Ô­´´£©
www.chengchen.net ³Ì³¿
       ×òÌìÍíÉÏÎÒÕÒ±éÁË»¥ÁªÍøÒ²Ã»Óз¢ÏÖ¹ØÓÚSQL2005´æ´¢¹ý³ÌºÍ´¥·¢Æ÷µÄµ÷ÊÔ·½·¨£¬Ñо¿µ½Á賿2µã¶àÖÓ£¬ÖÕÓÚÕÒµ½·½·¨ÁË£¬²»¸É¶ÀÏí£¬ÄóöÀ´·ÖÏí¡£Èç¹ûÒª×ªÔØ£¬Çë±£Áô°æÈ¨£¬Ð»Ð»£¡
     &nbs ......

SQL SERVERÐÔÄÜÓÅ»¯ ·ÖÇø±í

±¾ÎÄÑÝʾÁË SQL Server 2008 ·ÖÇø±íʵÀý;
1. ´´½¨²âÊÔÊý¾Ý¿â £»
2.   ´´½¨·ÖÇøº¯Êý;
3.   ´´½¨·ÖÇø¼Ü¹¹;
4.  ´´½¨·ÖÇø±í;
5.  ´´½¨·ÖÇøË÷Òý ;
6.  ·ÖÇøÇл» ;
7.  ²éѯÄÄЩ±íʹÓÃÁË·ÖÇø±í£»
-- ×÷³ÉÕß   leno
-- ÈÕÆÚ: 2009-06-06 23:50:01.700
-- ......

DB2 SQLÐÔÄÜÓÅ»¯Ïà¹ØµÄ10´óÒªËØ

ÏÂÃæÌá³öÁË10ÌõºÍDB2 SQLÐÔÄÜÏà¹ØµÄ10ÌõÒòËØ£º
1¡¢ÌṩÊʵ±µÄͳ¼ÆÐÅÏ¢
¶ÔDB2ÓÅ»¯¹ÜÀíÆ÷£¨otimizer£©¶øÑÔ£¬ÈçºÎ¸ü¼ÓÓÐЧµÄÖ´ÐÐSQLÓï¾äÊÇÓÉ´æÔÚÓÚDB2 catalogÖеÄͳ¼ÆÐÅÏ¢¾ö¶¨µÄ£¬ÓÅ»¯Æ÷ÀûÓÃÕâЩÐÅÏ¢¾ö¶¨×îÓÅ»¯µÄ·¾¶¡£
Òò´Ë£¬ÎªÁ˱£³ÖϵͳÄܹ»×ö³ö×î¼ÑÑ¡Ôñ£¬ÐèÒª¾­³£µÄÔËÐÐRunstatsÃüÁÀ´±£³Öϵͳͳ¼ÆÐÅÏ¢µÄ¼°Ê±ÓÐЧ¡£Ô ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ