|
SQLÓÅ»¯¼ò½é
Ò»°ãÔÚÓ¦ÓÃÖУ¬ Ôã¸âµÄSQLÓï¾äÊÇÔì³ÉϵͳÐÔÄܵÍϵÄ×îÖ÷ÒªÔÒò£¬ÀýÈç´óСдµÄ²»Í³Ò»¡¢Í¬ÑùµÄSQLÓï¾ä²»Í¬µÄд·¨µÈ¡£¶øÇÒ£¬Ëæ×ÅÊý¾ÝÁ¿µÄÔö¼Ó£¬Çé¿ö»á±äµÃÔ½À´Ô½ÑÏÖØ¡££¨ÌâÍâ»°£ºÓÅÐãµÄOracleÊý¾Ý¿âÓÅ»¯È˲ţ¬ÊÇÈκι«Ë¾¶¼Ï¡È±µÄ£©
SQLÓÅ»¯ÓÖ³ÆSQLµ÷½Ú£¬Æä²½ÖèÒ»°ã°üÀ¨£º

SQLµ÷½ÚµÄÄ¿±ê
SQLµ÷½Ú°üÀ¨Èý´óÄ¿±ê£º½µµÍ¸ºÔØ¡¢¾ùºâ¸ºÔغͲ¢Ðл¯¸ºÔØ¡£
l½µµÍ¸ºÔØ£º¼´Ñ°ÕÒ¸ü¸ßЧµÄ;¾¶À´Íê³ÉÏàͬµÄ¹¦ÄÜ
Èçij¸ö·Ç´ó±í(СÓÚ2000ÍòÐÐÊý¾ÝÊý¾Ý»òСÓÚ2G´óСµÄµ¥±í)£¬³£¹æ²éѯÐèÒª·ÃÎʵÄÊý¾Ýʵ¼ùÖÐ90%Çé¿öÏÂÊDz»»á³¬¹ý20%µÄ£¬´Ëʱ½¨Á¢ºÏÀíµÄË÷ÒýÊÇÓÐЧµÄ·½·¨Ö®Ò»
l¾ùºâ¸ºÔØ£º¼´Ó¦¸Ã°ÑÈÎÎñ·Öʱ¶Î¾ùºâµ÷¶È
ÈçÒ»°ãϵͳ°×ÌìÊÇ·ÃÎʸ߷壬Èç¹û´Ëʱ±¸·ÝÈÎÎñ¡¢Åú´¦ÀíÈÎÎñ»ò±¨±íÊý¾Ý³éÈ¡ÈÎÎñÒ² ¼·ÔÚÕâ¸öʱ¶ÎÔòÒ×Ôì³É¸ºÔØ·å
ÖµÏÖÏó£¬ÕýÈ·µÄ×ö·¨Ó¦¸ÃÊǰѱ¸·ÝÈÎÎñ¡¢Åú´¦ÀíÈÎÎñºÍ±¨±íÊý¾Ý³éÈ¡ÈÎÎñ·Åµ½ÍíÉϽøÐд¦Àí£¬»ò²ÉÓò¢Ðл¯²ßÂÔ
l²¢Ðл¯¸ºÔØ£º¼´´óÊý¾ÝÁ¿µÄ²éѯ·ÃÎÊÐèҪʹÓò¢·¢²ßÂÔ
ÈçÔÚÊý¾Ý²Ö¿â»·¾³ÖÐÓ¦¸Ã¶àʹÓò¢·¢²ßÂÔ£¬´Ë¾Ù¿ÉÒÔÃ÷ÏÔ¼õÉÙÏìӦʱ¼ä
SQLÓÅ»¯½×¶Î


ʹÓÃOEM·¢ÏÖ¶¥¼¶SQL


ÔÚOEMÖУ¬Ñ¡ÔñÐÔÄÜ->ÆäËü¼àÊÓÁ´½Ó->¶¨¼¶»î¶¯£¬ÈçÏÂͼ£º

²»ÒªÓÃ*´úÌæËùÓÐÁÐÃû

Ö¸¶¨½ö½öÐèÒªµÄÁÐÃûÓëʹÓÃ*¶Ô±È£º
ʱ¼ä£º359/1327=27.05% CUPºÄ·Ñ: 4092121327/6413227637=63.81%
IOºÄ·Ñ£º 29601/110117=26.88% ¿É¼û´ó·ù½µµÍI/O´Ó¶ø½µµÍÏìӦʱ¼ä£¡
SQLÓÅ»¯¼¼ÇÉ
ʹÓÃTRUNCATE´úÌæDELETE
OralceÖ´ÐÐDELETEºó»áʹÓÃUNDO±í¿Õ¼ä´æ·Å±»É¾³ýµÄÐÅÏ¢ÒÔ±ã»Ö¸´£¬Èç¹ûÖ®ºóÓû§Ê¹ÓÃROLLBACK¶ø²»ÊÇCOMMIT£¬ÔòOralce½«ÀûÓøÃUNDO±í¿Õ¼äÖеÄÊý¾Ý½øÐлָ´¡£µ±Ê¹ÓÃTRUNCATEʱ£¬Oracle²»»á½«É¾³ýµÄÊý¾Ý·ÅÈëUNDO±í¿Õ¼ä£¬Òò¶øËÙ¶ÈÒª¿ìºÜ¶à¡£µ±ÒªÉ¾³ýij¸ö±íÖеÄÈ«²¿Êý¾Ýʱ£¬Ó¦¸ÃʹÓÃTRUNCATE¶ø²»ÊDz»´øWHEREÌõ¼þµÄDELETE¡£Óï·¨ÈçÏ£º
TRUNCATE TABLE table_name [DROP|REUSE STORAGE]
DROP STORAGEΪĬÈϵķ½Ê½£¬±íʾÊջر»É¾³ýµÄ±í¿Õ¼ä
REUSER STORAGE±íʾ±£Áô±»É¾³ýµÄ¿Õ¼äÒÔ¹©¸Ã±íµÄÐÂÊý¾ÝʹÓÃ
Ó¦Óÿª·¢ÖУ¬¿ÉÒÔ±àдһ¸ö×Ó³ÌÐòÈÃÆä¶¯Ì¬µÄÇå³ý¿Õ±í£¬ÒÔ¹©µ÷Óá£
ĬÈÏPCTFREEΪ10£¬¼Ù¶¨Îª5,high-water markÊÇÒ»¸ö´æ´¢¶Î·ÖÅä¶àÉÙ´æ´¢Æ÷µÄ±ê¼Ç¡£



»îÓÃCOMMIT
PL/SQL¿éÖУ¬¾³£½«¼¸¸öÏ໥ÁªÏµµÄDMLÓï¾äдÔÚBEGIN ¡END£¬Èç¹û²»Ó°ÏìÊÂÎñµÄÍêÕûÐÔ£¬Ôò½¨ÒéÔÚÿ¸öENDÇ°ÃæÐ´Ò»¸öCOMMIT£¬ÒÔ´ïµ½ ¶ÔDMLµÄ¼°Ê±Ìá½»ºÍ ÊÍ·ÅÊÂÎñËùÕ¼µÄ×ÊÔ´µÄÄ¿µÄ¡£
COMMITÊͷŵÄ×ÊÔ´°üÀ¨£º
lUNDO¶ÎÉÏÓÃÓÚ»Ö¸´Êý¾ÝµÄÐÅÏ¢
lÊÂÎïÖÐDMLÓï¾ä»ñµÃµÄËø
lSGAÖÐÖØ×öÈÕÖ¾»º³åÇøÖеĿռä
lOracleΪ¹ÜÀíÏà¹Ø×ÊÔ´(ÈçÉÏÊö×ÊÔ´) ¶ø¿ªÏúµÄÄÚ²¿×ÊÔ´
ÌåÑéÀý×ÓÁ÷³ÌÈçÏ £º

ÌåÑéÀý×ÓÏÔʾ £º

¼õÉÙ±íµÄ²éѯ´ÎÊý
1.Ò»¸öÂß¼µ¥ÔªÖУ¬½«ÄܶÁ³öµÄÁÐÒ»´ÎÐÔ¶Á³ö£¬ÇÒ¾¡Á¿´æ·ÅÔÚ±¾µØ±äÁ¿ÖУ¬Ó¦¸Ã¶Å¾ø²»ÒªÓÃÒ»¸ö¶ÁÒ»¸ö

2.ÔÚ°üº¬×Ó²éѯµÄSQLÖУ¬ÒªÌرð×¢Òâ¼õÉÙ¶Ô±íµÄ²éѯ´ÎÊý£¬ÔÚ´úÂëÇåÎúʱ¶ÔÓÚÄܼõÉÙ²éѯ´ÎÊýµÄÓ¦¼á¾ö¼õÉÙ,¾ÙÀýÈçÏ£º

3.Ö´Ðмƻ®ÈçÏ£¬½áÂÛÊÇʲô£¿

ÒÔEXISTS´úÌæDISTINCT
¶à±íÐÅÏ¢µÄ²éѯʱ,±ÜÃâÔÚSELECT×Ó¾äÖÐʹÓÃDISTINCT. Ò»°ã¿ÉÒÔ¿¼ÂÇÓÃEXISTSÌæ»», EXISTS ʹ²éѯ¸üΪѸËÙ,ÒòΪ´ËʱRDBMSºËÐÄÄ£¿é½«ÔÚ×Ó²éѯµÄÌõ¼þÒ»µ©Âú×ãºó,Á¢¿Ì·µ»Ø½á¹û¡£

ÓÅ»¯Ç°£º 
ÓÅ»¯ºó£º 
ʹÓÃĬÈÏÖµ


ʹÓÃĬÈÏÖ®ºóµÄÖ´ÐÐʱ¼ä±ÈΪ1.063/2.657=40.01%£¬¿ìÁËÒ»±¶¶à£¡

¿É¼ûÔÚ²»º¬Ä¬ÈÏÖµ£¬ÊÇnullµÄÁÐÉÏûÓÐʹÓÃË÷Òý£¬ÊÇÈ«±íɨÃ裡¶øÊ¹ÓÃÁËĬÈÏÖµµÄÁÐÉÏʹÓÃÁËË÷Òý·¶Î§É¨Ã裡
l²»ÄÜÓÃnull×÷Ë÷Òý£¬Èκΰüº¬nullÖµµÄÁж¼½«²»»á±»°üº¬ÔÚË÷ÒýÖС£¼´Ê¹Ë÷ÒýÓжàÁеÄÇé¿öÏ£¬Ö»ÒªÕâЩÁÐÖÐÓÐÒ»Áк¬ÓÐnull£¬¸ÃÁоͻá´ÓË÷ÒýÖÐÅųý¡£Ò²¾ÍÊÇ˵Èç¹ûijÁдæÔÚ¿ÕÖµ£¬¼´Ê¹¶Ô¸ÃÁн¨Ë÷ÒýÒ²²»»áÌá¸ßÐÔÄÜ
lÈκÎÔÚwhere×Ó¾äÖÐʹÓÃis null»òis not nullµÄÓï¾äÓÅ»¯Æ÷ÊDz»ÔÊÐíʹÓÃË÷ÒýµÄ
lÈç¹ûÿÁÐȷʵ¿ÉÄÜ´æÔÚ¿ÕÖµµÄÇé¿ö£¬¿ÉÒÔʹÓÃĬÈÏÖµµÄ·½Ê½Ìæ´úÒÔ±ã³ä·ÖÀûÓÃË÷ÒýÌá¸ßÐÔÄÜ
ʹÓÃDECODEº¯Êý¼õÉÙ´¦Àí²½Öè

lʹÓÃDECODEº¯Êý¿ÉÒÔ±ÜÃâÖØ¸´É¨ÃèÏàͬ¼Ç¼»òÖØ¸´Á¬½ÓÏàͬµÄ±í.
lDECODEº¯ÊýÒ²¿ÉÒÔÔËÓÃÓÚGROUP BY ºÍORDER BY×Ó¾äÖÐ.
lÉÏÊöÀý×ÓÓÐÁ½²½ÏàËÆµÄ²Ù×÷£¬Ê¹ÓÃDECODEºó½Úʡһ°ëʱ¼ä£¬Èç¹ûÒ»×éÏàËÆµÄ²Ù×÷Ô½¶à£¬½ÚÊ¡µÄʱ¼äÔòÔ½¶à£¬¼ÆË㹫ʽΪn-1£¬ÆäÖÐnΪÏàËÆ²Ù×÷µÄ²½ÖèÊý
ͨÅä·ûµÄʹÓü¼ÇÉ


ÉÏÀýÖÐÒÑÖªÊý¾Ý%DX_ACCOUNT_TRADE%£¬Ö»ÓÐÒÔI¿ªÍ·µÄ
£º0.031/1.891=1.639%
lµ±Í¨Åä·û³öÏÖÔÚLIKEºóÃæ×Ö·û´®µÄÊ×λʱ£¬Ë÷Òý½«²»»á±»Ê¹Óã¬Òò´ËÔÚÒÑ֪ij×Ö·ûµÄÇé¿öÏ£¬LIKE²éѯÖÐÓ¦¾¡Á¿²»Òª°ÑͨÅä·ûдÔÚÊ×λ
l%´ú±í²»¶¨³¤µÄ×Ö·û£¬_´ú±í¶¨³¤µÄ×Ö·û£¬Èç¹ûÔÚÈ·¶¨ÒªÍ¨ÅäµÄ×Ö·û³¤¶Èʱ£¬Ó¦¸Ã¾¡Á¿Ê¹ÓÃ_£¬¶ø²»ÊÇ%
¶¨Òå²¢Ö´ÐÐÑϸñµÄSQL±àд¹æ·¶


ʹÓÃOracle¹²ÏíÓαêµÄÓŵãÊÇ£º
l½µµÍºÍ¼õÉÙOracle¶ÔSQLµÄ½âÎöÊýÁ¿
l¶¯Ì¬µ÷ÕûÄÚ´æ
lÌá¸ßÄÚ´æµÄʹÓÃÂÊ
·ç¸ñÇë²ÎÕÕÇ°ÃæÕ½ÚÖеġ°½¨ÒéµÄ³ÌÐò·ç¸ñ¡±

±íµÄÁ¬½Ó·½Ê½
FROM±í˳ÐòÑ¡Ôñ
ʹÓûùÓÚ¹æÔòµÄÓÅ»¯Æ÷£¨CBO£©Ê±£¬Oracle½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦ÀíFROM×Ó¾äµÄ±íÃ÷£¬¼´FROM×Ó¾äÖÐ×îºóµÄ±í£¨Çý¶¯±í£©»á×îÏȱ»´¦Àí¡£
µ±FROM×Ó¾ä°üº¬¶à¸ö±íʱ£¬½¨Ò齫¼Ç¼×îÉÙµÄ±í£¨Ò»°ãÊÇ×Öµä±í£©·ÅÔÚ×îºóÃæ¡£µ±Oracle´¦Àí¶à¸ö±íʱ£¬Ò»°ã²ÉÓÃÅÅÐò»òºÏ²¢µÄ·½Ê½Á¬½ÓÕâЩ±í£¬ÏµÍ³Ê×ÏÈ»áɨÃèFROM×Ӿ䲿·ÖµÄ×îºóÒ»¸ö±í£¬²¢¶Ô¸Ã±íµÄÊý¾ÝÐнøÐÐÅÅÐò£»È»ºóɨÃèµ¹ÊýµÚ¶þ¸ö±í£¬²¢½«´Ó¸Ã±íÖÐÈ¡³öµÄ¼Ç¼ÓëµÚÒ»¸ö±íÖеļǼ½øÐÐÆ¥ÅäºÏ²¢£¬ÒÀ´ËÀàÍÆ¡£
Èç¹ûÊÇ´óÓÚÁ½±íÏà¹ØÁª£¬×îºÃÑ¡Ôñ½»²æ±íΪÇý¶¯±í£¬½»²æ±íÊÇÖ¸±»ÆäËü±íËùÒýÓÃµÄ±í¡£



RBOģʽÏ£¬Ð¡±íΪÇý¶¯±íµÄÖ´ÐÐʱ¼äΪ´ó±íÊÇÇý¶¯µÄÖ´ÐÐʱ¼äµÄ£º
0.078/2.253 = 2.26%£¡
Çý¶¯±íµÄÑ¡Ôñ


´ËʱµÄÓÅ»¯Æ÷ģʽΪCBO£¬¶þÕßµÄÖ´ÐÐʱ¼ä½ö½öÏà²î£º
0.328-0.313=0.015ºÁÃ룬¶þÕß¼¸ºõ½Ó½ü£¬ÕâÊÇÎªÊ²Ã´ÄØ£¿ÎÒÃÇÔÙ¿´¶þÕßÖ´Ðмƻ®£º

ÎÒÃÇ·¢ÏÖ£¬´Ëʱ¶þÕßµÄÖ´Ðмƻ® һģһÑù£¡ÕâÓÖÊÇΪʲô£¿
Çý¶¯±íµÄÑ¡Ôñ
Çý¶¯±í(Driving Table)ÊÇÖ¸±»×îÏÈ·ÃÎÊµÄ±í£¬Í¨³£ÊÇÒÔÈ«±íɨÃèµÄ·½Ê½·ÃÎʵġ£
Èç¹ûÓÅ»¯Æ÷ÊÇCBO£¬ÔòÓÅ»¯Æ÷»á¼ì²éSQLÓï¾äÖÐÿ¸ö±íµÄÎïÀí´óС¡¢Ë÷Òý״̬£¬È»ºóѰÕÒ¿ªÏú×îСµÄÖ´Ðз¾¶¡£Èç¹ûÓÅ»¯Æ÷ÊÇRBO£¬ÇÒËùÓÐÁ¬½ÓÌõ¼þ¶¼ÓÐË÷Òý¶ÔÓ¦£¬ÔòÇý¶¯±íÊÇFROM×Ó¾äÖÐ×îºóÒ»¸ö±í¡£
ÎÞÂÛÈçºÎ£¬ÎÒÃǽ¨ÒéʼÖÕ½«¼Ç¼СµÄ±í£¨Èç×Öµä±í£©×÷ΪÇý¶¯±í£¬ÔòÄÜÊÊÓ¦CBOºÍRBO£¡
WHERE×Ó¾äÈçºÎд
OralceÓÅ»¯Æ÷µÄÔÀíÊDzÉÓÃ×Ô϶øÉϵÄ˳Ðò½âÎöWHERE×Ӿ䣬Òò´Ë±íÖ®¼äµÄÁ¬½Ó±ØÐëдÔÚÆäËûWHEREÌõ¼þ֮ǰ, ¿É¹ýÂ˵ô×î´óÊýÁ¿¼Ç¼µÄÌõ¼þ±ØÐëдÔÚWHERE×Ó¾äµÄĩβ ¡£
ÉÏÊöSQLÓï¾äµÄÀý×ÓËäÈ»·ûºÏÓÅ»¯¹æ·¶µÄ±È²»·ûºÏÓÅ»¯¹æ·¶µÄд·¨½ö½ö¿ìÁ˲»µ½0.4Ã룬µ«ÖØÒªµÄÊÇÕâÊÇÔÚµ±Ç°µ¥»ú»·¾³¡¢ÇÒûÓÐÈÎºÎÆäËüÊý¾Ý¿âÊÂÎñ¡¢ÒµÎñºÜ¼òµ¥¡¢Á¬½ÓµÄ±í½öÓÐÁ½¸ö±íµÄÇé¿öÏ¡£Èç¹ûÔÚʵ¼ÊµÄ´óÒµÎñÁ¿»·¾³Ï£¬ÔòÕâÖÖÓÅ»¯Ð§Ó¦½«³É ±¶Êý¼¶Ôö³¤£¡
Òò´Ë£¬ÎÒÃǽ¨ÒéÈκÎʱºò±àдSQLÓï¾äʱҪ ʹÓñíµÄ±ðÃû¡¢ ¶Ô±íµÄÁ¬½ÓÓÀÔ¶ дÔÚWHEREºóÃæµÄµÚÒ»¸öλÖ㬲¢¶Ô¹ýÂËÌõ¼þ½øÐйÀË㣬 °´ÕÕ½µÐòµÄ´óС½«ÕâЩ Ìõ¼þ´ÓWHERE×Ó¾ä×îºó²¿·ÖÍùǰÅÅÁС£
ϰÌâ
1.SQLÓÅ»¯µÄ²½Öè°üº¬ÄǼ¸²½£¿¿ÉÒÔʹÓÃÄǼ¸ÖÖ¹¤¾ß»ò·½·¨·¢ÏÖÔã¸âµÄSQL£¿
2.SQLµ÷½ÚµÄÈý´óÄ¿±êÊÇʲô£¿Çë¾ÙÀýÀ´ËµÃ÷ÈçºÎ¾ùºâ¸ºÔØ¡£
3.Ò»°ãÀ´Ëµ£¬SQLÓÅ»¯°üÀ¨Èý¸ö½×¶Î£¬·Ö±ðÊÇÓï·¨·ÖÎö¡¢ÓÅ»¯ºÍÖ´Ðн׶Ρ£ÇëÎÊ£¬Óï·¨·ÖÎö½×¶ÎµÄÖ÷ÒªÈÎÎñÊÇʲô£¿OracleÔÚÓÅ»¯½×¶ÎÓÅ»¯Æ÷Ö÷ÒªÖ´ÐеÄÈÎÎñºÍ¿¼ÂǵÄÒòËØÓÖ·Ö±ð°üº¬ÄÄЩ£¿
4.ÔÚSELECTÉÙÓÃ*£¬¶àÓþßÌåµÄÁÐÃûÆäÀíÂÛÒÀ¾ÝÊÇʲô£¿
5.Truncate°üº¬¼¸ÖÖÓ÷¨£¿»Í¼²¢½âÊÍTruncateÈçºÎ¸Ä±ä¸ßˮλÏß¡£
6.¾ÙÀý˵Ã÷ʲôÇé¿öÏÂÓ¦¸Ã¾¡Á¿¶àÓÃCOMMIT£¬Ê²Ã´Çé¿öϲ»ÄÜ¡£
7.ʹÓÃDECODEºÏ²¢¶à¸öÏàÀàËÆ²Ù×÷£¬ÆäÓë¼õÉÙ¶ÔÊý¾Ý¿âµÄ²éѯ´ÎÊýÓйØÏµÂð£¿
8.Ó¦¸Ã±ÜÃâÄÇÖÖ²»ºÏÊʵÄͨÅä·ûµÄʹÓ÷½·¨£¿
9.½âÊÍʲôÊÇÇý¶¯±í£¬Ó¦¸ÃÈçºÎÑ¡ÔñÇý¶¯±í¡£
10.ÍÆ¼öµÄFROM×Ó¾äºÍWHERE×Ó¾äÓ¦¸ÃÈçºÎд£¬²¢½âÊÍÆäÔÀí¡£ |