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²Ù×÷¡£
Ïà¹ØÎĵµ£º
Ò»´Îoracle 10g rac¹ÊÕÏ´¦Àí:
rhel4-1->crs_stat -t
Name Type Target State Host
------------ ......
Ò»Ö±ÏëѧϰÈçºÎµÃµ½Êý¾Ý¿âµÄ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Ö»²âÊ ......
²éѯµ±Ç°Ê¹ÓõÄÓαêÊý¾Ý£ºselect count(*) from v$open_cursor
²éѯµ±Ç°×î´óÓαêÊý£ºshow parameter open_cursors;
ÐÞ¸Ä×î´óÓαêÊý£ºalter system set open_cursors=1000 scope=spfile;
=========================================================
²éѯµ±Ç°×î´ó»á»°Êý£ºshow parameter sessions;
ÐÞ¸Ä×î´ó»á»°Êý£ºalt ......
Ò»¡¢ ÏȽéÉÜÒ»ÏÂoracleµÄSGA£ºÊý¾Ý¿âµÄϵͳȫ¾ÖÇø£¬SGAÖ÷ÒªÓÉÈý²¿·Ö¹¹³É£º¹²Ïí³Ø¡¢Êý¾Ý»º³åÇø¡¢ÈÕÖ¾»º³åÇø¡£ 1¡¢¹²Ïí³ØÓÖÓÉÁ½²¿·Ö¹¹³É£º¹²ÏíSQLÇøºÍÊý¾Ý×ֵ仺³åÇø¡£¹²ÏíSQLÇø×¨ÃÅ´æ·ÅÓû§SQLÃüÁoracleʹÓÃ×î½ü×îÉÙʹÓõÈÓÅÏȼ¶Ëã·¨À´¸üи²¸Ç£»Êý¾Ý×ֵ仺³åÇø£¨library cache£©´æ·ÅÊý¾Ý¿âÔËÐеĶ¯Ì¬ÐÅÏ¢¡£Êý¾Ý¿âÔËÐÐÒ» ......
Êý¾Ý¿âÃû(DB_NAME)¡¢ÊµÀýÃû(Instance_name)¡¢ÒÔ¼°²Ù×÷ϵͳ»·¾³±äÁ¿(ORACLE_SID)
ÔÚORACLE7¡¢8Êý¾Ý¿âÖÐÖ»ÓÐÊý¾Ý¿âÃû(db_name)ºÍÊý¾Ý¿âʵÀýÃû(instance_name)¡£ÔÚORACLE8i¡¢9iÖгöÏÖÁËеIJÎÊý£¬¼´Êý¾Ý¿âÓòÃû(db_domain)¡¢·þÎñÃû(service_name)¡¢ÒÔ¼°²Ù×÷ϵͳ»·¾³±äÁ¿(ORACLE_SID)¡£ÕâЩ¶¼´æÔÚÓÚͬһ¸öÊý¾Ý¿âÖеıêʶ£¬ÓÃÓÚ ......