SELECT ... FOR UPDATE£¨WAIT/NOWAIT£©ÃüÁîÓëORACLEËø
oracleËøµÄÅŶӻúÖÆ£º
ÇëÇóËø¶¨ÐèÒªÅŶӡ£Èç¹ûij¸ö»á»°ÇëÇóÒ»¸öËø¶¨£¬µ«ÊÇÓÉÓÚÆäËû»á»°ÒÑ¾Ëø¶¨ÁËÖ¸¶¨¼Ç¼»ò¶ÔÏó¶øÎÞ·¨»ñµÃËùÐèµÄËø¶¨£¬ÄÇôÕâ¸ö»á»°½«»áµÈ´ý¡£´Ëʱ£¬¿ÉÄܶà¸ö»á»°¶¼Ôڵȴý·ÃÎÊÏàͬ¼Ç¼»ò¶ÔÏó£¬ÔÚÕâÖÖÇé¿öÏ£¬ORACLE»á¸ú×ÙÕâЩ»á»°ÇëÇóËø¶¨µÄ˳Ðò¡£
Èç¹û²»Ï£Íûij¸ö»á»°ÔÚÎÞ·¨»ñµÃËø¶¨Ê±½øÐÐÅŶӵȺò£¬ÄÇô±ÜÃâÅŶӵÄΨһ·½Ê½ÊÇʹÓÃSELECT ... FOR
UPDATE(×Ó¾äWAIT/NOWAIT)ÃüÁî¡£SELECT ... FOR
UPDATEÃüÁî»á²ÉÓÃרÓõÄģʽÀ´Ñ¡ÔñºÍËø¶¨¼Ç¼¡£Èç¹ûijÌõ¼Ç¼Òѱ»Ëø¶¨£¬ÄÇôÔÚËø¶¨±»ÊÍ·Åǰ£¬SELECT ... FOR
UPDATEÓï¾ä»áÏñDMLÓï¾äÒ»Ñù½øÐÐÅŶӲ¢¹ÒÆð»á»°¡£Ê¹ÓÃ×Ó¾äNOWAIT»òWAIT
<n>¾Í¿ÉÒÔ±ÜÃâ¹ÒÆð»á»°£¬ÆäÖÐ<n>ÊÇÒÔÃëΪµ¥Î»µÄÊýÖµ¡£
ÎÒÃÇÔÚʹÓÃORACLE½øÐÐÊý¾Ý´¦ÀíµÄʱºò£¬ÓÐʱÐèÒª¶Ô²éѯ³öÀ´µÄ¼Ç¼½øÐÐËø¶¨£¬½ûÖ¹ÆäËû½ø³Ì¶Ô¸Ã¼Ç¼½øÐÐÐ޸IJÙ×÷¡£
oracleÊý¾Ý¿âÌṩÁËÒ»ÖÖÀûÓÃSELECTµÄFOR
UPDATE×Ó¾äʵÏֵķ½·¨£¨¿ÉÄÜsqlserverÒ²ÓÐÕâ¸ö¹¦ÄÜ£¬µ«ÊÇûÓвâÊÔ¹ý£©¡£Í¨¹ýselect * from ta for
update·½·¨£¬¿ÉÒÔ½«²éѯ½á¹ûÖеļǼ½øÐÐupdateËø¶¨£¬¼°²»ÔÊÐíÆäËû½øÐжÔÕâЩ¼Ç¼½øÐÐÐ޸ġ£ÎÒÃÇ»¹¿ÉÒÔͨ¹ýselect *
from a for update of a.a;£¨a±íµÄaÁУ©¶Ô¼Ç¼ÖеÄijһÁнøÐÐËø¶¨¡£
µ±ÎÒÃÇʹÓÃFOR
UPDATE×Ӿ佫¼ÇÂ¼Ëø¶¨ºó£¬ÆäËû½ø³ÌÔÚ¶ÔËø¶¨¼Ç¼½øÐÐupdate»òdelete²Ù×÷ʱ£¬¾Í»á´¦ÓÚÍ£¶Ù״̬£¬µÈ´ý½âËø¡£µ±Ëø¶¨½ø³ÌÊÍ·ÅËø¶¨ÒÔºó²Å»á¼Ì
ÐøÖ´ÐС£Èç¹û²»ÏëÆäËû½øÐнøÈëÍ£¶Ù״̬£¬¿ÉÒÔÓÃnowait×Ӿ䣬ֱ½Ó·µ»Ø²Ù×÷Òì³£ÐÅÏ¢£¬Ìáʾ²Ù×÷µÄ¼Ç¼´¦ÓÚËø¶¨×´Ì¬²»ÄܽøÐÐÐ޸ġ£
ËùÒÔÎÒÃÇÔÚ×ö¶àÏß³Ìͬ²½Ê±£¬¿ÉÒÔͨ¹ýselect * form ta for update
nowaitµÄ·½·¨·ÀÖ¹¶à¸ö½ø³Ìͬʱ²Ù×÷ͬһÊý¾Ý¡£
ÕâÖÖËø¶¨·½Ê½Êǽ¨Á¢ÔÚÊý¾Ý¿âÁ¬½ÓµÄ»ù´¡ÉÏ£¬Ò»µ©Á¬½Ó¶Ï¿ª»òÕßËø¶¨½ø³Ìcommitʱ£¬ÕâÖÖËø¶¨¾Í×Ô¶¯½â³ý¡£Í¬Ê±ÕâÖÖËø¶¨·½Ê½ÊÇÒ»ÖÖupdateËø¶¨£¬Ëø¶¨Ê±²»Ó°ÏìÆäËûµÄselect²Ù×÷¡£
Ïà¹ØÎĵµ£º
½ñÌì²Å·¢ÏÖÁËwmsys.wm_concatÕâ¸öÓÐȤÓÐÓõĺ¯Êý£¬ËüµÄ×÷ÓÃÊÇÒÔ','Á´½Ó×Ö·û¡£
Àý×ÓÈçÏ£º
SQL> create table idtable (id number,name varchar2(30));
Table created
SQL> insert into idtable values(10,'ab');
1 row inserted
SQL> insert into idtable values(10,'bc');
1 row inserted
SQL> insert ......
Ò»Ö±ÏëѧϰÈçºÎµÃµ½Êý¾Ý¿âµÄIOÊý¾Ý£¬ORIONÊÇÒ»¸ö²»´íµÄ·ÂÕæ²âÊÔOracle IOµÄ¹¤¾ß¡£
ÏÂÃæÊÇÎҵIJâÊԵIJ½Ö裺
1 ´ÓoracleµÄÍøÕ¾ÉÏÏÂÔØORIONµÄÈí¼þ£¨11.1.0.7£©
2 ½âѹorion_linux_x86-64.gz
3 ½¨Á¢²ÎÊýÎļþ mytest.lun£¬ ÕâÀïµÄÁгöµÄÊÇ·ÖÇøÉ豸£¬ÎÒÔÚÉÏÃæ½¨Á¢ÁËasmÎļþϵͳ¡£ÒòΪÓÐÊý¾ÝÔÚÀïÃæ£¬ËùÒÔÎÒÓÃwrite=0Ö»²âÊ ......
дЩ»ù´¡µÄ! ¶Ô×Ô¼º»¹ÊÇÓкô¦µÄ.
shutdownÓÐËĸö²ÎÊý£ºnormal¡¢transactional¡¢immediate¡¢abort¡£È±Ê¡²»´øÈκβÎÊýʱ±íʾÊÇnormal
Ò»:
shutdown normal:
²»¶Ï¿ªÏÖÔÚÁ¬½ÓµÄÓû§,×èÖ¹ÈκÎÓû§½¨Á¢ÐµÄÁ¬½Ó£¬°üÀ¨¹ÜÀíÔ±ÔÚÄÚ¡£ÒѾÁ¬½ÓµÄÓû§Äܹ»¼ÌÐøËûÃǵ±Ç°µÄ¹¤×÷,ÈçµÝ½»ÐµĸüÐÂÊÂÎñ,Ö±µ½´ËÓ ......
oracle´´½¨±í¿Õ¼ä£¬´´½¨Óû§(ת)
¹Ø¼ü×Ö: oracle ±í¿Õ¼ä Óû§
//´´½¨ÁÙʱ±í¿Õ¼ä
create temporary tablespace test_temp
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//´´½¨Êý¾Ý±í¿Õ¼ä
create ta ......
OracleÌṩÁË´óÁ¿Ë÷ÒýÑ¡Ïî¡£ÖªµÀÔÚ¸ø¶¨Ìõ¼þÏÂʹÓÃÄĸöÑ¡Ïî¶ÔÓÚÒ»¸öÓ¦ÓóÌÐòµÄÐÔÄÜÀ´Ëµ·Ç³£ÖØÒª¡£Ò»¸ö´íÎóµÄÑ¡Ôñ¿ÉÄÜ»áÒý·¢ËÀËø£¬²¢µ¼ÖÂÊý¾Ý¿âÐÔÄܼ±¾çϽµ»ò½ø³ÌÖÕÖ¹¡£¶øÈç¹û×ö³öÕýÈ·µÄÑ¡Ôñ£¬Ôò¿ÉÒÔºÏÀíʹÓÃ×ÊÔ´£¬Ê¹ÄÇЩÒѾÔËÐÐÁ˼¸¸öСʱÉõÖÁ¼¸ÌìµÄ½ø³ÌÔÚ¼¸·ÖÖÓµÃÒÔÍê³É£¬ÕâÑù»áʹÄúÁ¢¿Ì³ÉΪһλӢÐÛ¡£ÕâÆªÎÄÕ¾ͽ«¼òµ¥µÄ ......