µÚ 2 ÖÜ:»Ø¹ö¼àÊÓ
»¹Òª¶à³¤Ê±¼ä£¿£º»Ø¹ö¼àÊÓ
ΪÓû§Ìṩ¶Ô»Ø¹ö²Ù×÷ʱ¼äµÄ׼ȷÆÀ¹À
ÎÒÃÇ»¹ÔÚÕâµØ·½Â𣿻¹Òª¶à³¤Ê±¼ä£¿
ÌýÆðÀ´ÊìϤÂð£¿ÕâЩÎÊÌâ¿ÉÄÜÊÇÄúÔÚǰÍùº¢×ÓÃÇ×îϲ°®µÄÖ÷Ì⹫԰µÄ·ÉÏ£¬´ÓÆû³µºó×ùÉÏÌá³öÀ´µÄ£¬²¢ÇÒ¾³£ÊDz»¶ÏµØ¡¢Ô½À´Ô½Æµ·±µØÌá³öÀ´¡£Äú²»Ïë¸æËßËûÃÇ»¹È·ÇÐÐèÒª¶à³¤Ê±¼äÂ𠡪 »òÕ߸ü¼òµ¥Ð©£¬Äú×Ô¼ºÖªµÀ´ð°¸Âð£¿
ͬÑù£¬Ôڻعö³¤ÆÚÔËÐеÄÊÂÎñʱ£¬¾³£»áÓÐЩÓû§²»Í£µØÑ¯ÎÊÏàͬµÄÎÊÌâ¡£ÕâЩÎÊÌâÊǺÏÀíµÄ£¬ÒòΪ¸ÃÊÂÎñ½øÐÐÁËËø¶¨£¬Õý³£µÄ´¦Àí¾³£Êܵ½»Ø¹ö½ø³ÌµÄÓ°Ïì¡£
ÔÚ Oracle 9i Database ¼°¸üµÍµÄ°æ±¾ÖУ¬Äú¿ÉÒÔÖ´Ðвéѯ
SELECT USED_URECFROM V$TRANSACTION;
¸ÃÓï¾ä·µ»ØÓɵ±Ç°ÊÂÎñËùʹÓõÄÖØ×ö¼Ç¼µÄÊýÁ¿£¬¶øÈç¹ûÖØ¸´µØÖ´ÐиÃÓï¾ä£¬½«»áÏÔʾÁ¬Ðø¼õÉÙµÄÊýÖµ£¬ÒòΪ»Ø¹ö½ø³ÌÔÚÆä´¦Àí¹ý³ÌÖлáÊÍ·ÅÖØ×ö¼Ç¼¡£ËæºóÄú¿ÉÒÔͨ¹ý¶ÔÒ»¶Î¼ä¸ô½øÐпìÕÕÀ´¼ÆËãÆäËÙÂÊ£¬È»ºóÍÆ¶Ï³öÆÀ¹À½áÊøÊ±¼äµÄ½á¹û¡£
ËäÈ»ÔÚÊÓͼ V$TRANSACTION ÖÐÓÐÒ»¸öÃûΪ START_TIME µÄÁУ¬µ«¸ÃÁÐÖ»ÏÔʾÕû¸öÊÂÎñµÄÆðʼʱ¼ä£¨Ò²¾ÍÊÇÔڻعöÖ´ÐÐ֮ǰ£©¡£Òò´Ë£¬³ýÁËÍÆ¶Ï£¬ÄúûÓа취֪µÀ»Ø¹öʵ¼ÊÉÏÊÇÔÚʲôʱ¼äÖ´Ðеġ£
ÊÂÎñ»Ø¹öµÄÀ©Õ¹Í³¼ÆÐÅÏ¢
ÔÚ Oracle Database 10g ÖУ¬ÕâÖÖ²Ù×÷ºÜ¼òµ¥¡£µ±ÊÂÎñ»Ø¹öʱ£¬Ê¼þ±»¼Ç¼ÔÚÊÓͼ V$SESSION_LONGOPS ÖУ¬¸ÃÊÓͼÏÔʾ³¤ÆÚÔËÐеÄÊÂÎñ¡£ÓÃÓڻعö£¬Èç¹û½ø³ÌºÄʱ³¬¹ýÁùÃ룬Ôò¼Ç¼³öÏÖÔÚ¸ÃÊÓͼÖС£ÔڻعöÖ´ÐÐÒÔºó£¬Äú¿ÉÄÜ»áÒþ²ØËù²é¿´µÄ¼àÊÓÆÁÄ»²¢Ö´ÐÐÒÔϵIJéѯ£º
select time_remainingfrom v$session_longopswhere sid =
¼ÈÈ»ÄúÒâʶµ½Õâ¸öÊÓͼ V$SESSION_LONGOPS µÄÖØÒªÐÔ£¬¾ÍÈÃÎÒÃÇÀ´¿´Ëü±ØÐëÌṩµÄÆäËûÐÅÏ¢¡£¸ÃÊÓͼÔÚ Oracle Database 10g µÄÔ¤ÀÀ°æÖÐÌṩ£¬µ«Ã»Óв¶»ñ¹ØÓڻعöÊÂÎñµÄÐÅÏ¢¡£ÎªÁËÒÔÒ»ÖÖÒ×¶ÁµÄ·½Ê½ÏÔʾËùÓеÄÁУ¬ÎÒÃǽ«Ê¹ÓÃÓÉ Tom Kyte ÔÚ AskTom.com ÖÐËùÃèÊöµÄ PRINT_TABLE º¯Êý¡£´Ë¹ý³Ì¼òµ¥µØÒÔ±í¸ñ·½Ê½¶ø²»Êdz£ÓõÄÐз½Ê½À´ÏÔʾÁС£
SQL> set serveroutput on size 999999SQL> exec print_table('select * from v$session_longops where sid = 9')SID : 9SERIAL# : 68OPNAME :Transaction RollbackTARGET :TARGET_DESC :xid:0x000e.01c.00000067SOFAR : 20554TOTALWORK : 10234UNITS :BlocksSTART_TIME :07-dec-2003 21:20:07LAST_UPDATE_TIME :07-dec-2003 21:21:24TIME_REMAINING : 77ELAPSED_SECONDS : 77CONTEXT : 0MESSAGE :Transaction Rollback:xid:0x000e.01c.00000067 :10234 out of 20554 Blocks doneUSERNAME £ºSYSSQL_ADDRESS :00000003B719ED08SQL_HASH_VALUE : 1430203031SQL_ID :306w9c5amyanrQCSID : 0
×¢Ò⣬´Ë´¦ÏÔʾ¶ÔÐеÄËùÓиü¸Ä£¬¼´Ê¹É¾³ý²¢ÖØÐ²åÈëÐÐʱҲÊÇÈç´Ë¡£VERSION_OPERATION ÁÐÏÔʾ¶Ô¸ÃÐÐÖ´ÐеIJÙ×÷ (Insert/Update/Delete)¡£Íê³ÉÕâЩ²Ù×÷²»ÐèÒªÀúÊ·±í»ò¶îÍâµÄÁС£
ÈÃÎÒÃÇ×Ðϸ¼ì²éÕâЩÁÐÖеÄÿһÁС£ÔڻỰÖпÉÄÜ»áÓг¬¹ý¶à¸ö³¤ÆÚÔËÐвÙ×÷ ¡ª ÌØ±ðÊÇÒòΪÊÓͼÖаüº¬ÒÔǰµÄ»á»°ÖÐËùÓг¤ÆÚÔËÐвÙ×÷µÄÀúÊ·¡£ÁÐ OPNAME ÏÔʾ¸Ã¼Ç¼ÓÃÓÚ¡°ÊÂÎñ»Ø¹ö¡±£¬ÕâΪÎÒÃÇÖ¸³öÁËÕýÈ·µÄ·½Ïò¡£ÁÐ TIME_REMAINING ÏÔʾËùÆÀ¹ÀµÄÊ£Óàʱ¼äÃëÊý£¬ÕâÔÚÇ°ÃæÒѾÃèÊö¹ý£¬¶øÁÐ ELAPSED_SECONDS ÏÔʾµ½Ä¿Ç°ÎªÖ¹ËùÏûºÄµÄʱ¼ä¡£
ÄÇô¸Ã±íÈçºÎÌṩ¶ÔÊ£Óàʱ¼äµÄÆÀ¹ÀÄØ£¿¿ÉÒÔÔÚÁÐ TOTALWORK ÖÐÕÒµ½ÏßË÷£¬¸ÃÁÐÏÔʾҪÍê³ÉµÄ¡°¹¤×÷¡±×ÜÁ¿£¬»¹ÓÐ SOFAR ÏÔʾµ½Ä¿Ç°ÎªÖ¹ÒѾÍê³ÉÁ˶àÉÙ¹¤×÷¡£¹¤×÷µÄµ¥Î»ÏÔʾÔÚÁÐ UNITS ÖС£ÔÚ±¾ÀýÖÐÒÔÊý¾Ý¿éΪµ¥Î»£»Òò´Ë£¬µ½Ä¿Ç°ÎªÖ¹ÒѾ»Ø¹öÁË 20,554 ¸öÊý¾Ý¿éÖй²¼Æ 10,234 ¸öÊý¾Ý¿é¡£´Ë²Ù×÷µ½Ä¿Ç°ÎªÖ¹ÒÑÏûºÄÁË 77 Ãë¡£Òò´Ë£¬Ê£ÓàÊý¾Ý¿é½«ÏûºÄ£º
77 * ( 10234 / (20554-10234) ) Ü 77 Ãë
µ«Äú²»±ØÀûÓÃÕâÖÖ·½·¨À´»ñµÃ¸ÃÊýÖµ£¬ËüÒѾÇå³þµØÏÔʾ³öÀ´ÁË¡£×îºó£¬ÁÐ LAST_UPDATE_TIME ÏÔʾÓйص±Ç°ÊÓͼÄÚÈݵÄʱ¼ä£¬Õ⽫ÓÃÓÚ¼ÓÇ¿Äú¶Ô½á¹ûµÄ½âÊÍ¡£
SQL Óï¾ä
ÁíÒ»²¿·ÖÖØÒªµÄÐÂÐÅÏ¢ÊÇÕýÔÚ±»»Ø¹öµÄ SQL Óï¾äµÄ±êʶ·û¡£ÔÚÔçÏÈ£¬SQL_ADDRESS ºÍ SQL_HASH_VALUE ÓÃÓÚ»ñÈ¡ÕýÔÚ±»»Ø¹öµÄ SQL Óï¾ä¡£ÐµÄÁÐ SQL_ID ¶ÔÓ¦ÓÚÊÓͼ V$SQL µÄ SQL_ID£¬ÈçÏÂËùʾ£º
SELECT SQL_TEXTFROM V$SQLWHERE SQL_ID =
¸Ã²éѯ·µ»ØËù»Ø¹öµÄÓï¾ä£¬Òò´ËÌṩÁ˶îÍâµÄУÑéÒÔ¼° SQL Óï¾äµÄµØÖ·ºÍÉ¢ÁÐÖµ¡£
²¢ÐÐʵÀý»Ö¸´
Èç¹û DML ²Ù×÷ÊDz¢ÐвÙ×÷£¬ÔòÁÐ QCSID ÏÔʾ²¢Ðвéѯ·þÎñÆ÷»á»°µÄ SID¡£ÔÚ²¢ÐлعöʼþÖУ¬ÈçʵÀý»Ö¸´ÒÔ¼°ËæºóµÄ¹ÊÕÏÊÂÎñ»Ö¸´ÆÚ¼ä£¬¾³£Óõ½¸ÃÐÅÏ¢¾³£¡£
ÀýÈ磬¼ÙÉèÔÚ´óÐ͵ĸüÐÂÆÚ¼ä£¬ÊµÀýÒì³£¹Ø±Õ¡£µ±ÊµÀýÆô¶¯Ê±£¬·¢Éú¹ÊÕϵÄÊÂÎñ±»»Ø¹ö¡£Èç¹ûÆôÓÃÁËÓÃÓÚ²¢Ðлָ´µÄ³õʼ»¯²ÎÊýÖµ£¬Ôò»Ø¹ö²¢Ðеضø²»ÊÇ´®Ðеط¢Éú£¬ÈçͬËü·¢ÉúÔÚ³£¹æÊÂÎñ»Ø¹öÖÐÒ»Ñù¡£ÏÂÒ»²½µÄÈÎÎñÊÇÆÀ¹À»Ø¹ö½ø³ÌµÄÍê³Éʱ¼ä¡£
ÊÓͼ V$FAST_START_TRANSACTIONS ÏÔʾΪ»Ø¹ö¹ÊÕÏÊÂÎñËù²úÉúµÄÊÂÎñ¡£ÀàËÆµÄÊÓͼ V$FAST_START_SERVERS ÏÔʾ¶Ô»Ø¹ö½øÐд¦ÀíµÄ²¢Ðвéѯ·þÎñÆ÷µÄÊýÁ¿¡£ÕâÁ½¸öÊÓͼ¶¼ÔÚÒÔǰµÄ°æ±¾ÖÐÌṩ£¬µ«ÏÔʾÊÂÎñ±êʶ·ûµÄÐÂÁÐ XID ʹµÃÁª½Ó¸ü·½±ãÁË¡£ÔÚ Oracle9i Database ÒÔ¼°¸üµÍµÄ°æ±¾ÖУ¬Äú±ØÐëͨ¹ýÈýÁУ¨USN ¡ª ÖØ×ö¶ÎºÅ£¬SLT ¡ª ÖØ×ö¶ÎÖÐµÄ´æ´¢ÇøºÅ£¬SEQ ¡ª ÐòÁкţ©À´Áª½ÓÊÓͼ¡£Æä¸¸¼¯ÏÔʾÔÚ PARENTUSN¡¢PARENTSLT ºÍ PARENTSEQ ÖС£ÔÚ Oracle Database 10g ÖУ¬ÄúÖ»Ð轫ÆäÁª½Óµ½ XID ÁУ¬Æä¸¸ XID ÓÉÖ±¹ÛµÄÃû³Æ±íʾ£ºPXID¡£
×îÓÐÓõÄÐÅÏ¢²¿·ÖÀ´×ÔÓÚ V$FAST_START_TRANSACTIONS ÊÓͼÖеÄÁÐ RCVSERVERS¡£Èç¹û·¢Éú²¢Ðлعö£¬Ôò¸ÃÁÐÖÐÏÔʾ²¢Ðвéѯ·þÎñÆ÷µÄÊýÁ¿¡£Äú¿ÉÒԲ鿴¸ÃÁУ¬Á˽âÆô¶¯Á˶àÉÙ²¢Ðвéѯ½ø³Ì£º
select rcvservers from v$fast_start_transactions;
Èç¹ûÊä³öÊÇ 1£¬ÔòÊÂÎñÕýÔÚÓÉ SMON ½ø³Ì½øÐд®Ðлعö ¡ª ÏÔÈ»ÕâÊÇÍê³É¹¤×÷µÄÒ»ÖÖ²»³ä·ÖµÄ·½·¨¡£Äú¿ÉÒÔ½«³õʼ»¯²ÎÊý RECOVERY_PARALLELISM µÄÖµ¸ÄΪ³ý 0 »ò 1 ÒÔÍâµÄÖµ£¬ÖØÐÂÆô¶¯ÊµÀý½øÐв¢Ðлعö¡£ËæºóÄú¿ÉÒÔÖ´ÐÐ ALTER SYSTEM SET FAST_START_PARALLEL_ROLLBACK = HIGH£¬°´ CPU ÊýÁ¿µÄ 4 ±¶´´½¨²¢ÐзþÎñÆ÷¡£
Èç¹ûÉÏÊö²éѯµÄÊä³öÏÔʾ²»ÊÇ 1£¬ÔòÕýÔÚ½øÐв¢Ðлعö¡£Äú¿ÉÒÔ²éѯͬһÊÓͼ (V$FAST_START_TRANSACTIONS) À´»ñµÃ¸¸ÊÂÎñºÍ×ÓÊÂÎñ£¨¸¸ÊÂÎñ id ¡ª PXID£¬¶ø×ÓÊÂÎñ id ¡ª XID£©¡£XID »¹¿ÉÓÃÓÚÁª½Ó´ËÊÓͼÓë V$FAST_START_SERVERS£¬ÒÔ»ñµÃÆäËûÏêϸÐÅÏ¢¡£
½áÂÛ
×ÜÖ®£¬µ±ÔÚ Oracle Database 10g Öлعö³¤ÆÚÔËÐеÄÊÂÎñʱ ¡ª ÎÞÂÛÊDz¢ÐÐʵÀý»Ö¸´»á»°»¹ÊÇÓû§Ö´ÐеĻعöÓï¾ä ¡ª ÄúËùÐè×öµÄÒ»ÇоÍÊDz鿴ÊÓͼ V$SESSION_LONGOPS ²¢ÆÀ¹À»¹ÐèÒª¶àÉÙʱ¼ä¡£
ÏÖÔÚ£¬Èç¹ûÄÜÔ¤²âµ½´ïÖ÷Ì⹫԰µÄʱ¼ä¾ÍºÃÁË£¡

