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

ÓÃOracle²¢Ðвéѯ·¢»Ó¶àCPUµÄÍþÁ¦

·¢²¼Ê±¼ä:2006-11-18 00:47:53À´Ô´:ºìÁª×÷Õß:intelligent
ÔÚÒ»¸öµ¥¶ÀµÄ·þÎñÆ÷Öа²×°¸ü¶àµÄCPU³ÉΪĿǰµÄÒ»¸öÇ÷ÊÆ¡£Ê¹ÓöԳƶദÀí·þÎñÆ÷£¨SMP£©µÄÇé¿öÏ£¬Ò»¸öOracle·þÎñÆ÷ÓµÓÐ8¸ö¡¢16¸ö»ò32¸öCPUÒÔ¼°¼¸¼ª±ÈÌØRAMµÄSGA¶¼²»×ãÎªÆæ¡£

Oracle¸úÉÏÁËÓ²¼þ·¢Õ¹µÄ²½·¥£¬ÌṩÁ˺ܶàÃæÏò¶àCPUµÄ¹¦ÄÜ¡£´ÓOracle8i¿ªÊ¼£¬OracleÔÚÿ¸öÊý¾Ý¿âº¯ÊýÖж¼ÊµÏÖÁ˲¢ÐÐÐÔ£¬°üÀ¨SQL·ÃÎÊ£¨È«±í¼ìË÷£©¡¢²¢ÐÐÊý¾Ý²Ù×÷ºÍ²¢Ðлָ´¡£¶ÔÓÚOracleרҵ°æµÄÌôÕ½ÊÇΪÓû§µÄÊý¾Ý¿âÅäÖþ¡¿ÉÄܶàµÄCPU¡£

ÔÚOracle»·¾³ÖÐʵÏÖ²¢ÐÐÐÔ×îºÃµÄ·½·¨Ö®Ò»ÊÇʹÓÃOracle²¢Ðвéѯ£¨OPQ£©¡£ÎÒ½«ÌÖÂÛOPQÊÇÈçºÎ¹¤×÷µÄºÍÔõÑùÓÃËüÀ´ÌáÉý´óµÄÈ«±í¼ìË÷µÄÏìӦʱ¼äÒÔ¼°µ÷Óò¢ÐÐÊÂÎñ»Ø¹öµÈµÈ¡£

ʹÓÃOPQ

µ±ÔÚOracleÖнøÐÐÒ»´ÎºÏ·¨µÄ¡¢´óÐ͵ÄÈ«±í¼ìË÷ʱ£¬OPQÄܹ»¼«´óµØÌá¸ßÏìӦʱ¼ä¡£


ÓÉOPQ»®·ÖµÄ±í

Ò»µ©±í±»»®·Ö³É¿é£¬OracleÆôÓò¢ÐеÄ×Ó²éѯ£¨ÓÐʱ³ÆÎªÔÓÎñ½ø³Ì£©£¬Ã¿¸ö×Ó²éѯͬʱ¶Áȡһ¸ö´óÐͱíÖеÄÒ»¿é¡£ËùÓÐ×Ó²éѯÍê±ÏÒÔºó£¬Oracle½«½á¹û»á´«¸ø²¢Ðвéѯµ÷¶ÈÆ÷£¬Ëü»áÖØÐ°²ÅÅÊý¾Ý£¬Èç¹ûÐèÒªÔò½øÐÐÅÅÐò£¬²¢ÇÒ½«½á¹û´«µÝ¸ø×îÖÕÓû§¡£OPQ¾ßÓÐÎÞÏÞµÄÉìËõÐÔ£¬Òò´Ë£¬ÒÔǰÐèÒª»¨·Ñ¼¸·ÖÖÓµÄÈ«±í¼ìË÷ÏÖÔÚµÄÏìӦʱ¼äÈ´²»µ½1Ãë¡£

OPQÑÏÖØÒÀÀµÓÚ´¦ÀíÆ÷µÄÊýÁ¿£¬Í¨¹ý²¢ÐÐÔËÐÐÖ®ËùÒÔ¿ÉÒÔ¼«´óµØÌáÉýÈ«±í¼ìË÷µÄÐÔÄÜ£¬ÆäǰÌá¾ÍÊÇʹÓÃÁËN-1¸ö²¢Ðнø³Ì£¨N=Oracle·þÎñÆ÷ÉÏCPUµÄÊýÁ¿£©¡£

±ØÐë×¢Òâ·Ç³£ÖØÒªµÄÒ»µã£¬¼´Oracle9iÄܹ»×Ô¶¯¼ì²âÍⲿ»·¾³£¬°üÀ¨·þÎñÆ÷ÉÏCPUµÄÊýÁ¿¡£ÔÚ°²×°Ê±£¬Oracle9i»á¼ì²é·þÎñÆ÷ÉÏCPUµÄÊýÁ¿£¬ÉèÖÃÒ»¸öÃûΪcpu_countµÄ²ÎÊý£¬²¢Ê¹ÓÃcpu_count×÷ΪĬÈϵijõʼ»¯ÊäÈë²ÎÊý¡£ÕâЩ³õʼ»¯²ÎÊý»áÓ°Ïìµ½Oracle¶ÔÄÚ²¿²éѯµÄ´¦Àí¡£

ÏÂÃæ¾ÍÊÇOraleÔÚ°²×°Ê±¸ù¾Ýcpu_count¶øÉèÖõÄһЩ²ÎÊý£º

fast_start_parallel_rollback

parallel_max_servers

log_buffer

db_block_lru_latches

²ÎÊý

ÈÃÎÒÃǽøÒ»²½¿´¿´CPUµÄÊýÁ¿ÊÇÈçºÎÓ°ÏìÕâЩ²ÎÊýµÄ¡£

²ÎÊýfast_start_parallel_rollback

Oracle²¢ÐлúÖÆÖÐÒ»¸öÁîÈËÐË·ÜÖ®´¦ÊÇÔÚϵͳ±ÀÀ£Ê±µ÷Óò¢ÐлعöµÃÄÜÁ¦¡£µ±OracleÊý¾Ý¿â·¢ÉúÉÙÓеıÀÀ£Ê±£¬OracleÄÜ×Ô¶¯¼ì²âδÍê³ÉµÄÊÂÎñ²¢»Ø¹öµ½Æðʼ״̬¡£Õâ±»³ÆÎª²¢ÐÐÈÈÆô¶¯£¬¶øOracleʹÓûùÓÚcpu_countµÄfast_start_parallel_rollback²ÎÊýÀ´¾ö¶¨Î´Íê³ÉÊÂÎñµÄ±üÐԳ̶ȡ£

²¢ÐÐÊý¾Ý²Ù×ÝÓïÑÔ£¨DML£©»Ö¸´Äܹ»ÔÚOracleÊý¾Ý¿â±ÀÀ£ºó¼«´óµØ¼Ó¿ìÆäÖØÐÂÆô¶¯µÄËÙ¶È¡£´Ë²ÎÊýµÄĬÈÏÖµÊÇϵͳCPUÊýÁ¿µÄÁ½±¶£¬µ«ÊÇһЩDBAÃÇÈÏΪӦ¸Ã½«Õâ¸öÖµÉèÖÃΪcpu_countµÄËı¶¡£

²ÎÊýparallel_max_servers_parameter

OracleÒ»¸öÏÔÖøµÄ¼ÓÇ¿ÊÇ×Ô¶¯¾ö¶¨OPQ²¢Ðеij̶ȡ£ÓÉÓÚOracleÇå³þ·þÎñÆ÷ÖÐCPUµÄÊýÁ¿£¬Ëü»á×Ô¶¯·ÖÅäºÏÊʵÄ×Ó½ø³ÌµÄÊýÁ¿À´ÌáÉý²¢ÐвéѯµÄÏìӦʱ¼ä¡£µ±È»£¬»áÓÐÆäËüµÄÍⲿÒòËØ£¬±ÈÈç±íµÄ»®·ÖÒÔ¼°´ÅÅÌÊäÈë/Êä³ö×ÓϵͳµÄ²¼¾ÖµÈ£¬µ«ÊǸù¾Ýcpu_countÀ´ÉèÖÃparallel_max_servers²ÎÊý½«¸øOracleÒ»¸öºÏÀíµÄÒÀ¾ÝÀ´Ñ¡Ôñ²¢Ðеij̶ȡ£

ÓÉÓÚOracleµÄ²¢ÐвÙ×÷ÑÏÖØÒÀÀµ·þÎñÆ÷ÉÏCPUµÄÊýÁ¿£¬parallel_max_servers»á±»ÉèÖóɷþÎñÆ÷ÉÏCPUµÄÊýÁ¿¡£Èç¹ûÔÚһ̨·þÎñÆ÷ÉÏÔËÐжà¸öʵÀý£¬ÔòĬÈÏֵ̫´óÁË£¬»áµ¼Ö¹ý¶ÈµÄÒ³Ãæ½»»»ºÍÑÏÖØµÄCPU¸ºµ£¡£²¢Ðеij̶Ȼ¹ÒÀÀµÓÚÄ¿±ê±íÖзÖÇøµÄÊýÁ¿£¬Òò´Ëparallel_max_serversÓ¦¸ÃÉèÖóÉ×ã¹»´óÒÔÔÊÐíOracleΪÿ¸ö²éѯѡÔñ×î¼ÑÊýÁ¿µÄ²¢ÐÐ×Ó²éѯ¡£

²ÎÊýlog_buffer

²ÎÊýlog_buffer¶¨ÒåÁ˹©¼´¿ÌдÈëredoÈÕÖ¾ÐÅÏ¢µÄ±£ÁôRAMµÄÊýÁ¿£¬Õâ¸ö²ÎÊýÊÜcpu_countµÄÓ°Ïì¡£OracleÍÆ¼ölog_buffer×î´óΪcpu_count³ËÒÔ500KB»ò128KB¡£CPUµÄÊýÁ¿¶ÔÓÚlog_bufferÀ´Ëµ·Ç³£ÖØÒª£¬ÒòΪOracle»áÉú³É¶àÈÕ־дÈ루LGWR£©½ø³ÌÀ´Òì²½ÊÍ·ÅredoÐÅÏ¢¡£

log_bufferÊÇOracleÖÐ×îÒ×Îó½âµÄµÄRAM²ÎÊýÖ®Ò»£¬Í¨³£´æÔÚÏÂÃæ¼¸¸öÅäÖôíÎó£º

log_buffer±»ÉèÖõÃÌ«¸ß£¨ÀýÈ磬´óÓÚ1MB£©£¬Õâ»ØÒýÆðÐÔÄÜÎÊÌ⣬ÒòΪ´óÈÝÁ¿µÄ½á¹û»áʹµÃдÈëͬ²½½øÐУ¨ÀýÈ磬ÈÕ־ͬ²½µÈ´ýʼþ·Ç³£¸ß£©¡£

log_buffer²»ÊÇdb_block_sizeµÄ±¶Êý¡£ÔÚµÄOracle9iÖУ¬log_bufferÓ¦¸ÃÊÇ2048×ֽڵı¶Êý¡£

²ÎÊýdb_block_lru_latches

LRUËøµÄÊýÁ¿ÊÇÔÚOracleÊý¾Ý¿âÄÚ²¿ÓÃÀ´¹ÜÀíÊý¾Ý¿â»º³åµÄ£¬ÕâÑÏÖØÒÀÀµÓÚ·þÎñÆ÷ÉÏCPUµÄÊýÁ¿¡£

ºÜ¶à´ÏÃ÷µÄOracle9iµÄDBAʹÓöà³åÊý¾Ý»º³å£¨ÀýÈçdb_32k_cache_size£©£¬ËûÃÇÍÆ¼ö½«Õâ¸öδ¹«¿ªÉùÃ÷µÄ²ÎÊýÖØÉèÖÃΪĬÈϵÄ×î´óÖµ¡£db_block_lru_latches²ÎÊýÔÚOracle8iÖÐʹÓõúܶ࣬µ«ÊÇÔÚOracle9iÖбä³ÉÁËÒ»¸öδ¹«¿ªÉùÃ÷µÄ²ÎÊý£¬ÒòΪOracleÏÖÔÚ¸ù¾ÝÊý¾Ý¿âÓµÓеÄCPUÊýÁ¿ÉèÖÃÁËÒ»¸öºÏÀíµÄĬÈÏÖµ¡£

db_block_lru_latchesĬÈϱ»ÉèÖÃΪ·þÎñÆ÷ÉÏcpu_countµÄÒ»°ë£¨ÀýÈç·þÎñÆ÷ÉÏÖ»ÓÐÒ»¸öOracleÊý¾Ý¿â£©¡£OracleÍÆ¼ödb_block_lru_latchesǧÍò²»Òª³¬¹ýcpu_countµÄÁ½±¶»òÈý±¶£¬»òdb_block_buffersµÄÎåÊ®·ÖÖ®Ò»¡£

Èç¹ûʹÓö໺³å³ØÔòÕâÖÖ¼ÆËã·½·¨ÓÐÒ»¸öÎÊÌ⣬ÒòΪ²»ÄÜ¿ØÖÆ·ÖÅä¸øÃ¿¸öÊý¾Ý»º³å³ØµÄËøµÄÊýÁ¿¡£Èç¹ûdb_writers²ÎÊý´óÓÚ1£¬ÔòĬÈÏÖµ»òÐíÏÔµÃ̫С¡£

¼ÓÇ¿·þÎñÆ÷

OracleÊý¾Ý¿â×ÜÊÇÔÚÌáÉýÐÔÄÜ£¬¸ù¾ÝÍⲿ·þÎñÆ÷»·¾³¼ì²âcpu_countºÍ»ù±¾²ÎÊýÉèÖõÄÄÜÁ¦¶ÔÓÚOracleÈí¼þÀ´ËµÊÇÒ»¸öÖØÒªµÄ¼ÓÇ¿¡£

Ëæ×Ÿü¶àµÄOracleÏµÍ³×ªÒÆµ½SMPÉÏÀ´£¬µ±¿Í»§Òª²ÉÈ¡ÔöÇ¿´ëÊ©²¢½«ÖÚ¶àµÄÊý¾Ý¿â×ªÒÆµ½ÓµÓÐ32¸ö»ò64¸öCPUµÄ¾Þ´ó·þÎñÆ÷ÉÏÀ´µÄʱºò£¬ÕâЩ²ÎÊýÏÔµÃÓú·¢ÖØÒª¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ