ʹÓÃOracle¶ÁÁËÔàÊý¾Ý... - Oracle / »ù´¡ºÍ¹ÜÀí
°¸Àý˵Ã÷:»ð³µÆ±ÊÛÆ±ÏµÍ³ ͬʱÆô¶¯¶à¸öÏß³ÌÄ£ÄâÂòƱ ´°¿ÚÊ×ÏȲéѯ³ö»¹Ê£Óà¶àÉÙÕÅÆ±,ÅжÏÊÇ·ñ×ã¹»,ÔÙ½øÐиüвÙ×÷ ËùÒÔÊÇÒ»ÌõselectÓï¾ä,Ò»ÌõupdateÓï¾ä ÏÖÔÚ³öÏÖµÄÎÊÌâ: µÚÒ»¸öÈËÂòÊ×ÏȲéѯʣÓà20ÕÅ,ÂòÁË2ÕÅ,updateΪ18ÕÅ µÚ¶þ¸öÈËÔÚupdate֮ǰ¾Í¶Á³öÁË,ËùÒÔËû¶Á³öµÄÊ£ÓàÆ±ÊýÒ²ÊÇ20ÕÅ,ÂòÁË2ÕÅ,updateΪ18ÕÅ ½á¹ûÂòÁË4ÕÅ,È·Ö»¼õÉÙÁË2ÕÅ ÇëÎÊÈçºÎ½â¾öÕâ¸öÎÊÌâÄØ?
Õâ¸öÎҼǵÃÊÇÓóÌÐò¶ÎµÄÏß³Ìͬ²½À´½øÐпØÖƵÄ,Êý¾Ý¿â½øÐпØÖÆ,Àí½â¹ý¿ÉÒÔÓÃSELECT FOR UPDATEÀ´½øÐпØÖÆ,ʵ¼ÊûÓÐÓ¦Óùý, ÄãµÄÒâ˼ÊÇÓÃsynchronizedÀ´¼ÓËøÊǰÉ?ÒýÓà ÊǵÄ,¼ÇµÃ»¹ÓÐÊÓÆµ×¨Ã޲Õâ¸öÀý×ÓµÄ,ORACLEÊý¾Ý¿â¶Ë¿ØÖƵϰ, ¿ÉÓÃSELECT ƱÊý FOR update½øÐмÓËø.... ÕâÑùÊÇÒ»ÖÖ½â¾öµÄ°ì·¨!ºÇºÇ ÄÇÓÖÓиöÎÊÌâ,ÂôƱµÄʱºò¶Á²»³öÁË SQL code: --ʹÓÃfor updateÊÖ¹¤¼ÓËø£¬¼ÓËø³É¹¦Ôò¼ÌÐø£¬·ñÔòÖ»Äܵȴý select name,amount from tickets where name='aaa' for update; --ÊÛÆ±¸üРupdate tickets set amount=amount-2 where name='aaa' --Ìá½»ÊÍ·ÅËø commit;ÒýÓà ÄÇÓÖÓиöÎÊÌâ,ÂôƱµÄʱºò¶Á²»³öÁË ²»ÓÃfor update£¬°ÑÊÂÎñ¸ôÀë¼¶Éè³É¿É´®Ðл¯¡£ È»ºó select *** update *** Á½ÕߺÏÒ»Æð¹¹³ÉÒ»ÊÂÎñ£¬ ÕâÑùÓ¦¸Ã²»»á³öÏÖÔà¶Á¡£ Õâ¸öÊÂÎñÓ¦¸Ã×㹻С£¨Ïà¹ØÓï¾äÒªÓÅ»¯£©£¬Ê±¼äºÜ¶Ì£¬²»´æÔÚ¶Á²»³öÊý¾ÝµÈ´ýºÜ³¤Ê
Ïà¹ØÎÊ´ð£º
°²×°ÁËOracle 10g£¬Ä¬Èϰ²×°ÁËorclÊý¾Ý¿â£¬Õâ¸öÊý¾Ý¿âÄܲ»ÄÜɾ³ý°¡£¬»¹ÓÐÎÒÈç¹ûн¨ÁËÆäËûÊý¾Ý¿â£¬Ôõô֪µÀÔÚwebÖеǽ²»Í¬Êý¾Ý¿âµÄµØÖ·°¡£¿ 1 ¿ÉÒÔɾ³ý 2 ÔÚWEBµØÖ·À¸ÖÐÊäÈëµØÖ·µÄʱºòÖ¸¶¨Ð´´½¨µÄÊý¾Ý¿âµÄIP ......
ÎÒÓÐÒ»¸ö±í£¬½á¹¹ÊÇÕâÑù¡£ ת³ö µ¥Î» תÈ뵥λ ±ÊÊý ½ð¶î date(Ö÷) outid(Ö÷) inid(Ö÷) num amt 2009 1 2 1 500 Ϊ 1 µ¥Î» ÔÚ2009Ä ......
ÔÚϵͳÔËÐеÄʱºò×ÜÊÇÓÐÒ»¿é´ÅÅÌʼÖÕÉÁºìµÆ£¬½øÈëϵͳºó #topas²é¿´×ÜÊÇÓÐÒ»¿é´ÅÅÌ%BUSYΪ90%ÒÔÉÏ£¬ Êý¾Ý¿â°æ±¾£ºoracle 9.2.0.7 Êý¾ÝÎļþ¹ÒÔØµÄ½Úµã£º/oradata/pcs/ Âß¼¾íºÅlv04 #lslv -l lv04
......
ÎÒ°²×°ÁËoracle 10g¾¹ýÒ»·¬Å¬Á¦Äܹ»Ë³ÀûµÄÁ¬½ÓÉÏÁË£¬ µ«ÊÇÎÒÒÔǰÓõÄÊÇsql server ËûµÄÆóÒµ¹ÜÀíÆ÷ÖÐÄÜ¶Ô±í½øÐпÉÊÓ»¯¹ÜÀí ÔÚoracleÖÐÎÒÒ²¿´µ½ÁËÓпÉÊÓ»¯µÄem µ«ÊÇÎÒ¾ÍÊÇ¿´²»µ½±íµÄÄÚÈÝÀ´ ÇëÎÊÓÐûÓдóϺÄܰï°ïà ......