¸ßЧSQL²éѯ֮Ë÷Òý£¨III£©
ÏÈ˵˵ÕâЩÎóÇø¡£Ëùν“ÎóÇø”£¬ÓÐһЩÊÇÐÂÊÖºÜÈÝÒ×·¸µÄ´íÎó»òÕߺÜÈÝÒ׺öÂÔµÄÎÊÌ⣬ÁíÍâһЩ£¬ÔòÊÇÏñ“ºÄ×Ó³ÔÁËÑλá±ä³Éòùòð”Ò»Ñù£¬ÈÃÎÒÃÇ´ÓС¾ÍÈÏΪÊÇÕýÈ·µÄÊÂÇé¡£ÈçÏ£º
1¡¢ ±íÉϲ»¹ÜÓõÃ×ÅÓò»×Å£¬¶¼¼Ó¸ö¾Û¼¯Ë÷Òý¡£
ÎÒÃÇÖªµÀ£¬±íÒÔÁ½ÖÖ·½Ê½×éÖ¯ÎïÀí´æ´¢£ºÓоۼ¯Ë÷ÒýµÄ“¾Û¼¯±í”£»Ã»Óоۼ¯Ë÷ÒýµÄ“¶Ñ”¡£ÔÚ¾Û¼¯±íÖУ¬Êý¾ÝÐа´ÕÕ¾Û¼¯Ë÷ÒýµÄ˳Ðò´æ´¢£¨ÕâÒ²ÊÇΪɶһÕűí×î¶àÖ»ÄÜÓÐÒ»¸ö¾Û¼¯Ë÷ÒýµÄÔÒò£©£»¶ÑÖУ¬Êý¾ÝÐеĴ洢¿ÉÒÔÈÏΪÊDz»È·¶¨µÄ¡£
ÔÚż¡¶Ð´ÓÐЧÂ浀 SQL ²éѯ£¨ II £©¡·ÖÐÔø¾½éÉܹý DB ÒýÇæÈçºÎÔÚ¾Û¼¯±íÖÐͨ¹ý·Ç¾Û¼¯Ë÷Òý²éÕÒÄ¿±êÊý¾Ý£º´Ó·Ç¾Û¼¯Ë÷ÒýÊ÷¸ù¿ªÊ¼ seek £¬²éÕÒµ½Ä¿±êË÷ÒýÐУ¬È»ºóͨ¹ýË÷ÒýÐÐÉÏ´æ´¢µÄ¾Û¼¯Ë÷Òý¼üÖµ£¬ÅÀ¾Û¼¯Ë÷ÒýÊ÷£¬²¢×îÖÕͨ¹ý¾Û¼¯Ë÷ÒýÐÐÉϵÄÖ¸ÕëÄõ½Ä¿±êÊý¾Ý¡£
µ«ÊǶÑÉϵķǾۼ¯Ë÷Òý´æ´¢µÄ²»ÊǾۼ¯Ë÷Òý¼üÖµ£¬Ëü´æ´¢µÄÊÇÖ¸ÏòÄ¿±êÐеÄÖ¸Õë¡£Ò²¾ÍÊÇ˵£¬Èç¹ûÔÚͬÑùµÄ±íÊǶѣ¬Í¨¹ý·Ç¾Û¼¯Ë÷Òý seek Êý¾Ý½«Ê¡µôÅÀ¾Û¼¯Ë÷ÒýÊ÷µÄËðºÄ£¬¶ø¿ÉÒÔÖ±½Óͨ¹ý·Ç¾Û¼¯Ë÷ÒýÐÐÉϵÄÐÐÖ¸ÕëÖ±½ÓÄõ½Ä¿±êÊý¾Ý¡£Ò²¾ÍÊÇ˵£¬ÔÚijЩÇé¿öÏ£¬Ê¹ÓöѿÉÒÔÌá¸ßϵͳЧÂÊ¡£
Õâ¸ö“ijЩÇé¿ö”£¬¾ÍÊÇÄãµÄÐèÇó£¬ÄãµÄϵͳÐÐΪ¡£Ò»°ãÇé¿öÏ£¬ËùÓÐÈ˶ÔÒªÔÚʲôÑùµÄ×Ö¶ÎÉÏ´´½¨¾Û¼¯Ë÷Òý¶¼·Ç³£Á˽⣻µ«ÊDz»ÊÇËùÓеÄÈ˶¼¶ÔÓ¦¸ÃÔÚʲôÑùµÄϵͳÐÐΪÏ£¬²»´´½¨¾Û¼¯Ë÷ÒýÁ˽⡣¼ÙÉèÄãµÄ±íÖÐÓÐ×ֶΠcol1, col2,col3,col4 µÈµÈ£¬ col1 ¡¢ col2 µÄ·Ö²¼ÃܶȺܵ͡£Äã¹Û²ìÁËϵͳÐÐΪ£¬·¢ÏÖÒ»°ëµÄ²éѯÊÇ XXXX where col1 = YYYY £¬ÁíÒ»°ëµÄ²éѯÊÇ XXXX where col2 = YYYY ¡£ÕâÖÖÇé¿öÏ£¬Ê¹ÓöѾÍÊǸüºÃµÄÑ¡Ôñ¡£
2¡¢ primary key ¾ÍÊǾۼ¯Ë÷Òý¡£
primary key ÉÏÊǵÃÓÐË÷Òý£¬µ«ÊÇÕâ¸öË÷Òý¿É²»¼ûµÃÒ»¶¨µÃÊǾۼ¯Ë÷Òý¡£¾¡¹ÜÓï¾ä
create table testPK
(
id int identity ( 1, 1) primary key ,
fname varchar ( 64)
)
»áÔÚ id ÁÐÉÏ´´½¨¾Û¼¯Ë÷Òý¡£µ±È»£¬Ò»°ãÖ÷¼ü¶¼ÊǾۼ¯Ë÷Òý£¬µ«Ò²½ö½öÊÇ“Ò»°ã”¶øÒÑ¡£¸öÈ˸оõ£¬¾Û¼¯Ë÷ÒýµÄΨһĿ±ê¾ÍÊÇÊý¾Ý¼ìË÷£¬ËüÓ¦¸Ã½¨ÔÚʲô×Ö¶ÎÉÏ£¬ÍêÈ«ÓÉϵͳÐÐΪ¾ö¶¨¡£“Ò»°ãÖ÷¼ü¶¼ÊǾۼ¯Ë÷Òý”Ò²½ö½öÊÇÒòΪ¶àÊýÇé¿öÏ£¬ primary key ×Ö¶ÎÉϽ¨ËùÓиüÓÐÒæÓÚЧÂʶøÒÑ¡£
create table testPK
(
Ïà¹ØÎĵµ£º
ÎÒÃÇÒª×öµ½²»µ«»áдSQL,»¹Òª×öµ½Ð´³öÐÔÄÜÓÅÁ¼µÄSQL,ÒÔÏÂΪ±ÊÕßѧϰ¡¢ÕªÂ¼¡¢²¢»ã×ܲ¿·Ö×ÊÁÏÓë´ó¼Ò·ÖÏí£¡
£¨1£© Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
ORACLE µÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom× ......
»¹ÊÇһתÌû£¬×ܽáµÄ²»´í£¬´ó¼Ò½è¼ø¡£
ÔÍøÖ·£º
http://database.ctocio.com.cn/222/9068222.shtml
1¡¢Ã»ÓÐË÷Òý»òÕßûÓÐÓõ½Ë÷Òý(ÕâÊDzéѯÂý×î³£¼ûµÄÎÊÌ⣬ÊdzÌÐòÉè¼ÆµÄȱÏÝ)
¡¡¡¡2¡¢I/OÍÌÍÂÁ¿Ð¡£¬ÐγÉÁËÆ¿¾±Ð§Ó¦¡£
¡¡¡¡3¡¢Ã»Óд´½¨¼ÆËãÁе¼Ö²éѯ²»ÓÅ»¯¡£
¡¡¡¡4¡¢ÄÚ´æ²»×ã
¡¡¡¡5¡¢ÍøÂçËÙ¶ÈÂý
¡¡¡¡6¡¢²éѯ³ö ......
ÓÐʱ£¬ ΪÁËÈÃÓ¦ÓóÌÐòÔËÐеøü¿ì£¬Ëù×öµÄÈ«²¿¹¤×÷¾ÍÊÇÔÚÕâÀï»òÄÇÀï×öһЩºÜСµ÷Õû¡£°¡£¬µ«¹Ø¼üÔÚÓÚÈ·¶¨ÈçºÎ½øÐе÷Õû£¡³ÙÔçÄú»áÓöµ½ÕâÖÖÇé¿ö£ºÓ¦ÓóÌÐòÖÐµÄ SQL ²éѯ²»ÄÜ°´ÕÕÄúÏëÒªµÄ·½Ê½½øÐÐÏìÓ¦¡£ËüҪô²»·µ»ØÊý¾Ý£¬ÒªÃ´ºÄ·ÑµÄʱ¼ä³¤µÃ³öÆæ¡£Èç¹ûËü½µµÍÁ˱¨¸æ»òÄúµÄÆóÒµÓ¦ÓóÌÐòµÄËٶȣ¬Óû§±ØÐëµÈ´ýµÄʱ¼ä¹ý³¤£¬ËûÃǾͻá ......
1£® ÅжÏa±íÖÐÓжøb±íÖÐûÓеļǼ
select a.* from tbl1 a
left join tbl2 b
on a.key = b.key
where b.key is null
ËäȻʹÓÃinÒ²¿ÉÒÔʵÏÖ£¬µ«ÊÇÕâÖÖ·½·¨µÄЧÂʸü¸ßһЩ
2£® н¨Ò»¸öÓëij¸ö±íÏàͬ½á¹¹µÄ±í
select * into b
from a where 1<>1
3£®betwee ......
½¨Á¢Ë÷Òý
£¨Ò»£©ÉîÈëdz³öÀí½âË÷Òý½á¹¹
ʵ¼ÊÉÏ£¬Äú¿ÉÒÔ°ÑË÷ÒýÀí½âΪһÖÖÌØÊâµÄĿ¼¡£Î¢ÈíµÄSQL SERVERÌṩÁËÁ½ÖÖË÷Òý£º¾Û¼¯Ë÷Òý£¨clustered index£¬Ò²³Æ¾ÛÀàË÷Òý¡¢´Ø¼¯Ë÷Òý£©ºÍ·Ç¾Û¼¯Ë÷Òý£¨nonclustered index£¬Ò²³Æ·Ç¾ÛÀàË÷Òý¡¢·Ç´Ø¼¯Ë÷Òý£©¡£ÏÂÃ棬ÎÒÃǾÙÀýÀ´ËµÃ÷һϾۼ¯Ë÷ÒýºÍ·Ç¾Û¼¯Ë÷ÒýµÄÇø±ð£º
Æäʵ£¬ÎÒÃǵĺºÓï ......