ºìÁªLinuxÃÅ»§
Linux°ïÖú

Oracle½ø³Ìµ¼ÖÂCPU 100%½â¾ö²½Öè

·¢²¼Ê±¼ä:2006-05-11 00:20:03À´Ô´:ºìÁª×÷Õß:artiomgy
¡¡¡¡1-- ¼ì²éϵͳ
¡¡¡¡sar -u 5 5
¡¡¡¡2-- ¿´Ë­ÔÚÓÃCPU
¡¡¡¡topas
¡¡¡¡ps -ef |grep ora #¼ì²éµÚËÄÁУ¬CµÄ´óС£¨unit£¬100 per cpu£©
¡¡¡¡3-- ¼ì²éCPUÊýÁ¿

¡¡¡¡/usr/sbin/bindprocessor -q

¡¡¡¡lsattr El proc0

¡¡¡¡4-- 2ÖÖ¿ÉÄÜ£º

¡¡¡¡1) A Background (instance) process

¡¡¡¡2) An oracle (user) process ££´ËÖÖ¿ÉÄÜ×î´ó¡£

¡¡¡¡5-- Èç¹ûÊÇÓû§½ø³Ì£ºÄÇô¸ßCPUµÄÖ÷ÒªÔ­ÒòÓУº

¡¡¡¡Large Queries, Procedure compilation or execution, Space management and Sorting

¡¡¡¡5.1-- ²é¿´Ã¿¸öSessionµÄCPUÀûÓÃÇé¿ö£º

select ss.sid,se.command,ss.value CPU ,se.username,se.program from v$sesstat ss, v$session se where ss.statistic# in (select statistic# from v$statname where name = 'CPU used by this session') and se.sid=ss.sid and ss.sid>6 order by ss.sid


¡¡¡¡5.2-- ±È½ÏÉÏÊöSession£¬¿´ÄǸösessionµÄCPUʹÓÃʱ¼ä×î¶à£¬È»ºó²é¿´¸ÃSessionµÄ¾ßÌåÇé¿ö£º

select s.sid, event, wait_time, w.seq#, q.sql_text from v$session_wait w, v$session s, v$process p, v$sqlarea q where s.paddr=p.addr and s.sid=&p and s.sql_address=q.address;


¡¡¡¡5.3-- µÃµ½ÉÏÊöÐÅÏ¢ºó£¬²é¿´ÏàÓ¦²Ù×÷ÊÇ·ñÓÐhash joins ºÍ full table scans¡£Èç¹ûÓÐhash joins ºÍ full table scansÄÇô±ØÐë´´½¨ÏàÓ¦µÄIndex»òÕß¼ì²éIndexÊÇ·ñÓÐЧ¡£

¡¡¡¡ÁíÍâ±ØÐë¼ì²éÊÇ·ñÓв¢ÐеIJéѯ´æÔÚºÍͬһʱ¿ÌÓжà¸öÓû§ÔÚÖ´ÐÐÏàͬµÄSQLÓï¾ä£¬Èç¹ûÓбØÐë¹Ø±Õ²¢ÐеIJéѯºÍÈκÎÀàÐ͵IJ¢ÐÐÌáʾ(hints);Èç¹û²éѯʹÓÃintermediaÊý¾Ý£¬ÄÇôΪÁ˼õÉÙ×ܵÄIndex´óС£¬±ØÐëÏÞÖÆʹÓÃIntermediaµÄWorldlist¡££¨try restricting the wordlist that intermedia uses to help reduce the total indexsize£©¡£

¡¡¡¡6-- ÉÏÊö·½°¸Ö»Äܸù¾ÝÒѾ­ÔËÐÐÍê³ÉµÄ²Ù×÷£¬¶ÔÓÚÕýÔÚÖ´Ðеij¤Ê±¼ä²Ù×÷Ö»ÄܵȲÙ×÷Íê³Éºó²ÅÄܼì²âµÃµ½¡£Òò´ËÎÒÃÇ¿ÉÒÔͨ¹ýÁíÍâÒ»¸öºÜºÃµÄ¹¤¾ßÀ´¼ì²âÕýÔÚÔËÐеij¤Ê±¼ä²Ù×÷Óï¾ä¡£v$session_longops,Õâ¸öÊÓͼÏÔʾÄÇЩ²Ù×÷ÕýÔÚ±»ÔËÐУ¬»òÕßÒѾ­Íê³É¡£Ã¿¸öprocessÍê³Éºó»áˢб¾ÊÓͼµÄÐÅÏ¢¡£

¡¡¡¡7-- ÔõÑùÑ°ÕÒ¼¯ÖÐʹÓÃCPUµÄProcess£º

¡¡¡¡ºÜ¶àʱºò»á·¢ÏÖÓÐN¸öProcessÔÚƽ¾ù·ÖÏí×ÅCPUµÄÀûÓÃÂÊ£¬ÕâÖÖÇé¿öΨһµÄ¿ÉÄÜÐÔ¾ÍÊÇÕâЩProcessÔÚÖ´ÐÐ×ÅÏàͬµÄPackage»òÕßQuery.

¡¡¡¡ÕâÖÖÇé¿ö£º½¨Òéͨ¹ýstatspack,ÔÚCPU¸ßÀûÓÃÂʶîʱºòÔËÐм¸¸ö¿ìÕÕ£¬È»ºó¸ù¾ÝÕâЩ¿ìÕÕ¼ì²éStatspack±¨¸æ£¬¼ì²é±¨¸æÖÐ×îTOPµÄ Query¡£È»ºóʹÓà sql_trace and tkprof ¹¤¾ßÈ¥¸ú×Ùһϡ£Í¬Ê±¼ì²ébuffer cache µÄÃüÖÐÂÊÊÇ·ñ´óÓê95£¥¡£

¡¡¡¡Í¬Ê±ÔÚ±¨¸æÖл¹ÐèÒª¼ì²éÒ»ÏÂtable scans (long tables)£¬¿´ÊÇ·ñÔÚ±¨¸æÉú³ÉÆÚ¼äÓдæÔÚÈ«±íɨÃè¡£

¡¡¡¡8-- ÁíÍ⻹ÓÐһЩ²»ÊÇÌرðÖØÒªµÄ£¬µ«ÊÇÒ²±ØÐë¹ØÐļì²éµÄ²ÎÊý¿ÉÄÜÏûºÄCPU¡£

¡¡¡¡parallel query ²¢Ðвéѯ£º

¡¡¡¡²¢Ðвéѯ×îºÃÓÃÓÚÊý¾Ý²Ö¿âµÄ»·¾³Ï£¬ÄÇÖÖÇé¿öÈκÎʱºòÖ»Óм¸¸öÓû§ÔÚͬʱʹÓá£ÔÚÒ»¸öÁª»úÊÂÎñ´¦Àí»·¾³ÖУ¬µ±Í¬Ê±Ðí¶àÓû§È¥²¢Ðвéѯһ¸öÊý¾Ý¿âµÄ¾Þ´ó±íʱºò£¬»áµ¼ÖÂCPUµÄ±¬Âú¡£ËùÒÔ×îºÃÔÚÊý¾Ý¿âµÄ¼¶±ð¹Ø±Õ²¢Ðвéѯ£ºÉèÖòÎÊýÈçÏ£º

parallel_min_server = 0 parallel_max_server = 0 parallel_automatic_tuning = false;


¡¡¡¡ÔÚÅäÖÃÉÏÊö²ÎÊýºó£¬Èç¹ûSQLÓï¾äÖÐʹÓõIJ¢ÐеÄÌáʾ£¬ÄÇô»¹ÊÇÓпÉÄÜ»á³öÏÖ²¢ÐвéѯµÄÇé¿ö£¬ËùÒÔ»¹ÐèÒª¼ÌÐø¼àÊÓÏà¹ØµÄSQLÓï¾ä£¬Èç¹ûÓоÍÈ¥³ýÌáʾ£¬ÒԴﵽĿµÄ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ