¡¾×ª¡¿¼òµ¥ËµÒ»Ëµ Oracle¿âµÄHang
·Ç³£ÉÙµÄÇé¿öÏ£¬ÎÒÃÇ»á¸Ð¾õÎÒÃǵĿ⡱Hang¡±ÁË£¬¼ÓÁËÒþºÅµÄÒâ˼ÊÇ˵ÓÐÊ±ÕæµÄÊÇHangÁË£¬ÓÐһЩÔò²»ÊÇ£¬ÊÇÓÉÓÚÐÔÄܵÄÎÊÌâÒýÆðµÄ¡£ÎÒÓöµ½¹ý¼¸´ÎHangµÄÇé¿ö£¬½áºÏ×ÅÍøÉÏһЩÎÄÕ£¬°Ñ¿ÉÄܵÄÔÒò¡¢µ±Ê±ÎÒÃÇÓ¦¸Ã×öµÄһЩ²Ù×÷½øÐÐÁËÈçϵÄ×ܽᣬ²»¶ÔµÄµØ·½´ó¼Ò¿ÉÒÔ·¢Mail¸øÎÒ:crane@storren.net ¡£
Ò»¡¢Êý¾Ý¿âHangʱ¿ÉÄܵÄÏÖÏó
1¡¢×îÖ±¹ÛµÄÊÇÄãµÄ´ó²¿·ÖµÄÒµÎñ²Ù×÷£¬±ÈÈç˵һ¸ö²éѯ¶¼Ê¹Óúó¤µÄʱ¼ä£¬»ò¸ù±¾¾Í·µ»Ø²»³ö½á¹û¡£ÕâºÍ¼òµ¥ÄÇÖÖËø±íÊÇÓÐÇø±ðµÄ¡£
2¡¢ÔÚ²Ù×÷ϵͳÉÏÓÃHp-unixÓÃglance¡¢AixÓÃnmon¼°ÓÃsar×ö¼à²â»á³öÏÖϵͳ¿ÕÏеļÙÏ󣬱íÃæ¿´ÆðÀ´ÏµÍ³ºÜÏУ¬Êµ¼ÊÉÏϵͳÒѾHangÁË¡£
3¡¢²év$session_wait»á³öÏÖ´óÁ¿µÄ¡±latch free¡±¡¢¡±enqueue¡±¡¢¡± free buffer waits¡±µÈµÈ´ýʼþ£¬ÓÐʱºǫ́»á³öÏÖ´óÁ¿µÄ.trcÎļþ£¬ÁíÍâÐèÒª¹Û×¢Ò»ÏÂ$ORACLE_HOME/rdbms/logÕâ¸öλÖã¬ÓÐһЩʱºîtraceÎļþ»áÉú³Éµ½ÕâÀï¡£
¶þ¡¢Oracle¿âHangʱһЩÓÐÓõIJÙ×÷ºÍ²éѯ
1¡¢Èç¹ûҪѰÇóOracleµÄ¼¼ÊõÖ§³Ö£¬ÎÒÃÇÐèÒªdumpÒ»ÏÂOracleµÄsystemstate£¬²Ù×÷ÈçÏÂ
SQL> alter session set events 'immediate trace name SYSTEMSTATE level 10';
SQL>conn / as sysdba;
SQL>set pagesize 0
SQL> SELECT * from v$parameter;
SQL>SELECT sid, id1, id2, type, lmode, request from v$lock;
SQL>SELECT * from v$session_wait ORDER BY sid; --¸ô¼¸ÃëÖØ¸´Ö´ÐÐ3´Î¡£
µ±µÃµ½OracleµÄ¿âÆæÂý»òHangʱ±£³ÖÀä¾²µÄÍ·ÄÔºÜÖØÒªµÄ£¬¿ÉÒÔ°´ÈçÏµķ½·¨½øÐÐһЩ´¦Àí£º
1¡¢Ê×ÏÈÒªµ½²Ù×÷ϵͳÉÏÈ¥£¬ÓÃglanceµÈ¹¤¾ß½øÐÐһϹ۲죬¿´Ò»ÏÂcpu¡¢ÄÚ´æ¡¢½»»»Çø¡¢´ÅÅ̵ķ±Ã¦³Ì¶ÈÓëÆ½Ê±ÊDz»ÊÇÏàËÆµÄ£¬Í¬Ê±¿´Ò»¿´ÓÐûÓÐռϵͳ×ÊÔ´ÌØ±ð´óµÄ½ø³Ì£¬ÓÐЩʱºîÊÇÕâЩ½ø³ÌÒýÆðµÄ£¬Í¨¹ýv$processºÍv$sessionÁ½¸öÊÓͼÕÒµ½ÕâOracle½ø³ÌµÄsid,serial#,°ÑËüÓÃAlter system kill session ¡®sid,serial#¡¯;ɱµô¾ÍÐÐÁË¡£Èç¹ûƽʱͬÑùµÄʱ¶ÎÄãµÄ´ÅÅ̵ķ±Ã¦³Ì¶ÈÊÇ95%£¬¶øÐ©Ê±ËüΪ20%£¬µ±È»ÊǼÙÉèÁË£¬ËµÃ÷OracleµÄ¿âÃ»×¼ÕæµÄhangÁË¡£
2¡¢Ê±¼äÀ´µÃ¼°µÄ»°Ö´ÐÐһϡ±¶þ¡±ÖеÄÓï¾äÊǺܱØÒªµÄ£¬ÕâÑù¿ÉÒÔ°ÑÕâЩÐÅÏ¢Ìá½»¸øOracleµÄsupporter£¬ÈÃÄãÃǸøÄã·ÖÎöһϣ¬²éÒ»ÏÂÔÒò¡£
3¡¢Èç¹ûÄãµÄ¿â¿ª¹éµµÁË£¬³öÏÖHangµÄʱºîÒ»¶¨Òª¿´Ò»Ï¹鵵ÈÕÖ¾µÄÎļþϵͳÊDz»ÊÇÂúÁË£¬×öÒ»¸öÍ걸һЩµÄÍø¹ÜϵͳÊǺܱØÒªµÄ¡£
4¡¢ÔÚHPϵͳÉÏ´ò¿ªÒì²½IOʱһ¶¨²»ÒªÍü¼ÇΪdbaÕâ¸ö×é¼ÓÉÏMLOCKµÄȨÏÞ£¬ÎÒ¾
Ïà¹ØÎĵµ£º
ѧϰOracle DBAÒ²°ë¸ö¶àѧÆÚÁË£¬½ñÌìÃÍÈ»²Å·¢ÏÖ£¬ÔÀ´ÎÒµÄÊ黹ÊǺÜеģ¬ÉϿβÙ×÷ʱºòÒ²Ö»ÊÇÖªµÀ´ó¸ÅÔõô×ö£¬µ«ÊÇÒªÕæµÄÈ«²¿×Ô¼º×ö£¬¶ø²»È¥·Ê黹ÊÇÓÐÒ»¶¨µÄÄѶȵģ¬ËùÒÔÄØ£¬½ñÌ쿪ʼ½«DBA´ÓÍ·¸´Ï°Ò»±é£¬Í¬Ê±ÔÙ²Ù×÷Ò»±é¡£
µÚÒ»Õ£¬Ñ§µÄÊÇOracleµÄÌåϵ½á¹¹£ ......
Èç¹ûÔÚÊÂÎñÖÐÖ´ÐÐÁËÒ»Ìõ²»Âú×ãÌõ¼þµÄupdateÓï¾ä£¬ÔòÖ´ÐÐÈ«±íɨÃ裬°ÑÐм¶ËøÉÏÉýΪ±í¼¶Ëø£¬¶à¸öÕâÑùµÄÊÂÎñÖ´Ðк󣬾ͺÜÈÝÒײúÉúËÀËø¡£
ËÀËøÒ»°ãÊÇÒò×¾ÁÓµÄÊÂÎñÉè¼Æ¶ø²úÉú insert, update, delete
1.°´Óû§Óëϵͳ»®·Ö£¬¿ÉÒÔ·ÖΪ×Ô¶¯ËøÓëÏÔÊ¾Ëø
×Ô¶¯Ëø£ºµ±½øÐÐÒ»ÏîÊý¾Ý¿â²Ù×÷ʱ£¬È±Ê¡Çé¿öÏ£¬ÏµÍ³×Ô¶¯Îª´ËÊý¾Ý¿â²Ù×÷»ñµÃËùÓ ......
ÔÎĵØÖ·£ºhttp://www.cnblogs.com/yf520gn/archive/2009/01/12/1374359.html
EXISTSµÄÖ´ÐÐÁ÷³Ì
select * from t1 where exists ( select null from t2 where y = x )
¿ÉÒÔÀí½âΪ:
for x in ( select * from t1 )
loop
if ( exists ( select null from ......
ÐòÁУ¨SEQUENCE£©ÐòÁÐÊÇÒ»Êý¾Ý¿â¶ÔÏó£¬ÀûÓÃËü¿ÉÉú³ÉΨһµÄÕûÊý¡£Ò»¸öÐòÁеÄÖµÊÇÓÉÌØÊâµÄOracle³ÌÐò×Ô¶¯Éú³É£¬Òò´ËÐòÁбÜÃâÁËÔÚÓ¦Óà ²ãʵÏÖÐòÁжøÒýÆðµÄÐÔÄÜÆ¿¾±¡£¸ÃÐòÁÐΪÉÏÉýÐòÁУ¬ÓÉ1¿ªÊ¼£¬ÔöÁ¿Îª1£¬Ã»ÓÐÉÏÏÞ¡£ÔÚÉýÐòʱ£¬ÐòÁпɴӱÈ×îСֵ´óµÄÖµ¿ªÊ¼£¬È±Ê¡ÖµÎªÐòÁеÄ×îСֵ¡£¶ÔÓÚ½µ Ðò£¬ÐòÁпÉÓɱÈ×î´óֵСµÄÖµ¿ªÊ¼£¬È±Ê¡ ......
Õâ´ÎÈ¥ÉÇÍ·ÊǸøÉÇÍ·µçÐŽ²¿Î,Ö÷½²ORACLEÊý¾Ý¿âÐÔÄÜÓÅ»¯,ΪÆÚ4Ìì.´ÓÂÞºþÆû³µÕ¾³ö·¢,×ßÉîÉǸßËÙ,´óÔ¼4,5¸öÖӾ͵½ÉÇÍ·ÁË.
³ö·¢Ê±ÊǰøÍí,³µ×ÓÔÚÉîÉǸßËÙÐнø,ϦÑôÎ÷Ï£¬ÂäÈÕµÄÓà»ÔÕÕÓ³ÔÚ¹«Â·Á½±ßµÄÇðÁê,ɽÌÁÉÏ£¬¿´ÉÏÈ¥ºÜÃÀ¡£ÉîÉǸßËٴ󲿷ÖÊÇÑØ×ź£°¶ÏßòêÑÑ£¬ËùÒÔ£¬ÓÐʱÔÚ³µÉϾÍÄܹ»¿´µ½º££¬ÂäÈÕµÄÓà»ÔÕÕÔÚ´óº£ÉÏ£¬²¨¹âÁÛÁÛ£¬¼ ......