¹ØÓÚoracleµÄÐм¶Ëø
¹ØÓÚoracleµÄÐм¶Ëø
¡¡¡¡ÔÚoracleÖÐ,Ðм¶ËøÖ»¶ÔÓû§ÕýÔÚ·ÃÎʵÄÐнøÐÐËø¶¨¡£
¡¡¡¡Èç¹û¸ÃÓû§ÕýÔÚÐÞ¸ÄijÐУ¬ÄÇôÆäËûÓû§¾Í¿ÉÒÔ¸üÐÂͬһ±íÖиÃÐÐÖ®ÍâµÄÊý¾Ý¡£
¡¡¡¡Ðм¶ËøÊÇÒ»ÖÖÅÅËûËø£¬·ÀÖ¹ÆäËûÊÂÎñÐ޸ĴËÐУ¬µ«ÊDz»»á×èÖ¹¶ÁÈ¡´ËÐеIJÙ×÷
¡£
¡¡¡¡ÔÚʹÓÃINSERT¡¢UPDATE¡¢DELETE ºÍSELECT…FOR UPDATE µÈÓï¾äʱ£¬Oracle
»á×Ô¶¯Ó¦ÓÃÐм¶ËøËø¶¨¡£SELECT...FOR UPDATE
Óï¾äÔÊÐíÓû§Ã¿´ÎÑ¡Ôñ¶àÐмǼ½øÐиüУ¬ÕâЩ¼Ç¼»á±»Ëø¶¨£¬ÇÒÖ»ÄÜÓÉ·¢Æð²éѯµÄÓû§½øÐб༡£Ö»ÓÐÔڻعö»òÌá½»ÊÂÎñÖ®ºó£¬Ëø¶¨²Å»áÊÍ·Å£¬ÆäËûÓû§²Å¿ÉÒÔ±à
¼ÕâЩ¼Ç¼¡£
¡¡¡¡SELECT...FOR UPDATE Óï¾äµÄÓï·¨ÈçÏ£º
¡¡¡¡SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];
ÆäÖУº
¡¡¡¡OF ×Ó¾äÓÃÓÚÖ¸¶¨¼´½«¸üеÄÁУ¬¼´Ëø¶¨ÐÐÉϵÄÌØ¶¨ÁС£
¡¡¡¡WAIT ×Ó¾äÖ¸¶¨µÈ´ýÆäËûÓû§ÊÍ·ÅËøµÄÃëÊý£¬·ÀÖ¹ÎÞÏÞÆÚµÄµÈ´ý¡£
¡¡¡¡“ʹÓÃFOR UPDATE WAIT”×Ó¾äµÄÓŵãÈçÏ£º
¡¡¡¡£±·ÀÖ¹ÎÞÏÞÆÚµØµÈ´ý±»Ëø¶¨µÄÐУ»
¡¡¡¡£²ÔÊÐíÓ¦ÓóÌÐòÖжÔËøµÄµÈ´ýʱ¼ä½øÐиü¶àµÄ¿ØÖÆ¡£
¡¡¡¡£³¶ÔÓÚ½»»¥Ê½Ó¦ÓóÌÐò·Ç³£ÓÐÓã¬ÒòΪÕâЩÓû§²»Äܵȴý²»È·¶¨
¡¡¡¡£´ ÈôʹÓÃÁËskip locked£¬Ôò¿ÉÒÔÔ½¹ýËø¶¨µÄÐУ¬²»»á±¨¸æÓÉwait n Òý·¢µÄ‘×ÊԴæ’Òì³£±¨¸æ
ʾÀý:
create table t(a varchar2(20),b varchar2(20));
insert into t values('1','1');
insert into t values('2','2');
insert into t values('3','3');
insert into t values('4','4');
ÏÖÔÚÖ´ÐÐÈçϲÙ×÷£º
ÔÚplsql developeÖдò¿ªÁ½¸ösql´°¿Ú£¬
ÔÚ1´°¿ÚÖÐÔËÐÐsql
select * from t where a='1' for update;
ÔÚ2´°¿ÚÖÐÔËÐÐsql1
1. select * from t where a='1'; ÕâÒ»µãÎÊÌâҲûÓУ¬ÒòΪÐм¶Ëø²»»áÓ°Ïì´¿´âµÄselectÓï¾ä
ÔÙÔËÐÐsql2
2. select * from t where a='1' for update; ÔòÕâÒ»¾äsqlÔÚÖ´ÐÐʱ£¬ÓÀÔ¶´¦Óڵȴý״̬£¬³ý·Ç´°¿Ú1ÖÐsql±»Ìá½»»ò»Ø¹ö¡£
ÈçºÎ²ÅÄÜÈÃsql2²»µÈ´ý»òµÈ´ýÖ¸¶¨µÄʱ¼äÄØ£¿ ÎÒÃÇÔÙÔËÐÐsql3
3. select * from t where a='1' for update nowait; ÔòÔÚÖ´ÐдËsqlʱ£¬Ö±½Ó±¨×ÊԴæµÄÒì³£¡£
ÈôÖ´ÐÐ select * from t where a='1' for update wait 6; ÔòÔڵȴý6Ãëºó£¬±¨ ×ÊԴæµÄÒì³£¡£
Èç¹ûÎÒÃÇÖ´ÐÐsql4
4. select * from t where a='1' for update nowait skip Locked; ÔòÖ´ÐÐsqlʱ£¬¼´²»µÈ´ý£¬Ò²²»±¨×ÊԴæÒì³£¡£
ÏÖÔÚÎÒÃÇ¿´¿´Ö´ÐÐÈçϲÙ×÷½«»á·¢ÉúÊ²Ã´ÄØ£¿
Ïà¹ØÎĵµ£º
<Ò»>ʵÏÖɱËÀij¸öÓû§µÄ¿Í»§¶ËÁ¬½Ó½ø³Ì
1.ÒÔ¹ÜÀíÔ±Éí·ÝµÇ¼ºó²é¿´V$SESSIONµÄÊÓͼ½á¹¹
SQL> desc v$session;
Ãû³Æ &n ......
±¾µØ¹ÜÀí±í¿Õ¼äÓë×Öµä¹ÜÀí±í¿Õ¼äÏà±È´ó´óÌá¸ßÁ˹ÜÀíЧÂʺÍÊý¾Ý¿âÐÔÄÜ£¬ÆäÓŵãÈçÏ£º
1.¼õÉÙÁ˵ݹé¿Õ¼ä¹ÜÀí
±¾µØ¹ÜÀí±í¿Õ¼äÊÇ×Ô¼º¹ÜÀí·ÖÅ䣬¶ø²»ÊÇÏó×Öµä¹ÜÀí±í¿Õ¼äÐèҪϵͳÀ´¹ÜÀí¿Õ¼ä·ÖÅ䣬±¾µØ±í¿Õ¼äÊÇͨ¹ýÔÚ±í¿Õ¼äµÄÿ¸öÊý¾ÝÎļþÖÐά³ÖÒ»¸öλͼÀ´¸ú×ÙÔÚ´ËÎļþÖпéµÄÊ£Óà¿Õ¼ä¼°Ê¹ÓÃÇé¿ö¡£²¢¼°Ê±×ö¸üС£ÕâÖÖ¸üÐÂÖ»¶Ô ......
Oracle 11gµÄLinux°æ±¾ÔÚÐÞ¸ÄÁËMEMORY_TARGET»òÕßSGA_TARGETºóÆô¶¯¿ÉÄܻᱨ´í£º
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
Õâ¸öÎÊÌâÊÇÓÉÓÚÉèÖÃSGAµÄ´óС³¬¹ýÁ˲Ù×÷Ï ......
¸ù¾ÝǰЩÌìΪij´ó·É»ú¹«Ë¾µ¼Èëij´ó·É»úÉú²úÊý¾ÝµÄ¾Àú£¬×¼±¸Ð´Æª¹ØÓÚOracleµ¼³öÎļþDMP¸ñʽµÄ·ÖÎö£¬½á¹ûÔÚ±¾»úµ¼³öÒ»×éÑÝʾÊý¾Ýʱºò£¬³öÏÖÁË´íÎó£¬Ë³±ã½â¾öÏ¡£
±¾»ú×°µÄÊÇOracle 11g 32bit(11.0.6)µÄClient£¬Ö÷ÒªÊÇΪÁËʹÓÃODT.Net 11.0.6.21£¬Ö§³ÖVS2008¡£µ«ÊDzÉÓÃEXPÃüÁîµ¼³öÊý¾Ý¿âµÄʱºò£¬³öÏÖÁËЩ¹îÒìµÄ´íÎó¡£
Ö´Ð ......
¼Ì9Ô·ݹúÄÚÄ³ÖØÒªITÃÅ»§ÍøÕ¾±¬³ö¡¶520ÍòOracle ERPÏîĿʧ°ÜÖ®ÃÕ¡·µÄ“Ìì¼Û·ç²¨”Ö®ºó£¬11Ô·ݣ¬¹úÄÚijӰÏì×î´óµÄITרҵƽýÔÙ±¬¡¶¼×¹ÇÎÄÅöײ±ùɽ£º²¢¹ºSun½øÍËÁ½ÄÑ¡·¡£Á½Æª±¨µÀ´Ó²»Í¬½Ç¶È½Ò¶ÁËOracleÔÚÖйúµÄ¼Û¸ñ“Òþ˽”¡¢ÇþµÀÂÒÏ󡢿ͻ§Á÷ʧµÈ¾½Ïà¡£×ÅʵÈÃOracleÖйú¹«Ë¾µÄ¹«¹ØÃÇæ»îÁ˺ÃÒ ......