Subject : Technical |
|
|
¡Ü Trace ÆÄÀÏÀº ½Ã½ºÅÛÀ» Æ©´×Çϴµ¥ ÇÊ¿äÇÑ ¾ÆÁÖ À¯¿äÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. ¢À INIT.ORAÀÇ ÆÄ¶ó¹ÌÅÍ º¯°æ ¢º SQL_TRACE¸¦ »ý¼ºÇÏ·Á¸é ¸ÕÀú ´ÙÀ½°ú °°Àº ÆÄ¶ó¹ÌÅ͵éÀ» INIT.ORA¿¡ ÁöÁ¤ÇؾßÇÑ´Ù. ¡á TIMED_STATISTICS=TRUE ¡¤½Ã°£ Åë°è¸¦ ¸ðÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. ¡á SQL_TRACE=TRUE ¡¤SessionÀ» Á¾·áÇÏ´Â ¸ðµç »ç¿ëÀÚµéÀÇ Trace¸¦ ¼öÇàÇÑ´Ù. ¡á USER_DUMP_DEST=directory path ¡¤SQL_TRACE°¡ Trace ÆÄÀÏÀ» ÀúÀåÇÏ´Â µð·ºÅ丮¸¦ ÁöÁ¤ÇÑ´Ù. ¡¤º¸Åë ½Ã½ºÅÛ ´ýÇÁ(dump) µð·¹Å丮ÀÌ´Ù.(¿¹; oracle_home/rdbms/log) ¡áMAX_DUMP_SIZE=number ¡¤ Trace ÆÄÀÏÀÇ ¹°¸®ÀûÀÎ Å©±â¸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ¡¤SQL_TRACE´Â °ø°£ÀÌ ºÎÁ·Çϸé, ¿ÏÀüÇÑ Ãâ·ÂÀÌ µÇÁö ¾Ê´Â´Ù. ¢À INIT.ORAÀÇ ÆÄ¶ó¹ÌÅÍ º¯°æ ¿¹Á¦ timed_statistics = true user_dump_dest = /oracle7/app/oracle/product/7.3.2/rdbms/log max_dump_file_size = 10240 ¢À SQL_TRACE¸¦ ¼öÇàÇÏ´Â ¹æ¹ý ¢º ¿À¶óŬ Åø°ú »ç¿ëÀÚ ¼¼¼Çµé¿¡ µû¶ó ´Ù¸£¸ç ¿À¶óŬ ÅøÀÌ ¾Æ´Ñ °æ¿ì¿¡´Â Á¶±Ý¾¿ ´Ù¸¦ ¼ö ÀÖ´Ù. ¢º SQL*Plus¿¡¼´Â ´ÙÀ½°ú °°ÀÌ ¼¼¼ÇÀ» º¯°æ½ÃÄÑ¾ß ÇÑ´Ù. ¡á SQL>alter session set sql_trace=true; ¢º optimizer goalÀÇ º¯°æÀº ´ÙÀ½°ú °°´Ù. ¡á SQL>alter session set optimizer_goal=rule;(optimizer goalÀ» Á¤ÀÇ) ¢º ÀÌ·¸°Ô ¼³Á¤ÇØ µÎ¸é ½ÇÇàµÇ´Â ÁúÀǹ®¿¡ ´ëÇØ¼ Æ®·¹À̽º ÆÄÀÏÀÌ »ý¼ºµÈ´Ù. ¢º »ý¼ºµÇ´Â À§Ä¡´Â init.ora¿¡¼ Á¤ÀÇÇÑ user_dump_dest µð·ºÅ丮¿¡ *.trcÇüÅ·Π»ý¼ºµÈ´Ù.
¢º ¿©±â¼ SQL¹®À» ½ÇÇàÇϴµ¥ °É¸°
CPU½Ã°£À» º¸¿©ÁÖ´Â EXECPU°¡ °¡Àå
½Ç¿ëÀûÀÌ´Ù.
call
count cpu
elapsed disk
query current
rows ¡á
parse
¢ÑºÐ¼®°á°úÀÇ ¿¹ ¡Ü execute, fetchÀÇ È½¼ö°¡ µ¿ÀÏÇÏ´Ù´Â °ÍÀº SQL ¼öÇà½Ã¸¶´Ù ±âº»Å°¿¡ ÀÇÇØ ÇѰǾ¿¸¸ 󸮵ǰí ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¸¸¾à pares°¡ 1Àε¥ execurte¿Í fetch°¡ 100À̶ó¸é ·çÇÁ°¡ 100¹ø ¼öÇàµÇ¸é¼(¾îÇÁ¸®ÄÉÀμÇÀº Çѹø¸¸ ¼öÇàµÇ°í SQLÀº ·çÇÁ ³»¿¡¼ ¹Ýº¹¼öÇàµÇ¾ú´Ù. ¿Ö³ÄÇϸé, ¾îÇø®ÄÉÀ̼ÇÀÌ ¿©·¯¹ø ½ÇÇàµÇ¾ú´Ù¸é ºñ·Ï SQLÀÌ ½ÇÁ¦ ÆÄ½ÌÇÏÁö ¾Ê°í Shared SQL Area¿¡¼ ã¾Æ ¿Ô´Ù°í ÇØµµ parseÀÇ È½¼ö´Â Áõ°¡µÇ±â ¶§¹®ÀÌ´Ù) º¸°üÄ¿¼ »óÅÂÀÇ SQLÀÌ ÇÑ °Ç¾¿À» ÃßÃâÇÑ »óÅÂÀÌ´Ù. ÀÌ °æ¿ìÀÇ SQL¹®Àº 'SELECT ... INTO ...'Çü½ÄÀ¸·Î »ç¿ëµÇ¾úÀ» °ÍÀÌ´Ù. ¡Üparse°¡ 1À̰í execute°¡ 1À̸ç, fetch°¡ 100À̶ó¸é SQLÀº ´Ü Çѹø ¼öÇàµÇ¾ú°í(·çÇÁ ³»¿¡¼ ¼öÇàµÇÁö ¾Ê¾ÒÀ½) ÆäÄ¡¸¸ ¿¬¼ÓÇØ¼ 100¹øÀ» ¼öÇàÇÑ °ÍÀÌ´Ù. ÀÌ °æ¿ìÀÇ SQL¹®Àº ´ë°³ 'DECLARE CURSOR'·Î ¼±¾ðÇÑ SQLÀÌ 'FETCH ... INTO ...'¿¡ ÀÇÇØ SQLCODE°¡ '1403'(Date Not Found)ÀÏ ¶§±îÁö ¼öÇàµÇ¾ú°Å³ª ºÎºÐ¹üÀ§ 󸮿¡ ÀÇÇØ ÀÏÁ¤ ¾ç¸¸Å¸¸ ¼öÇàÇÏ°í ¸ØÃß¾úÀ» ¶§ÀÌ´Ù. ¡Üparse : execute : fetchÀÇ ºñÀ²Àº °øÅë ÀÛ¾÷ÀÌ ¿©·¯¹ø ¼öÇàµÇ¸é ±× ¹è¼ö·Î ³ªÅ¸³´Ù. ¿¹¸¦ µé¸é parse : execute : fetch°¡ 10 : 10 : 1000ÀÎ °æ¿ì´Â 1 : 1 : 100ÀÎ ÀÛ¾÷ÀÌ 10¹ø ¼öÇàµÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¡Ü fetch°¡ 10Àε¥ rows°¡ 100À̶ó¸é ¿î¹Ý´ÜÀ§°¡ 10ÀÎ ´ÙÁßó¸®(Array Processing)¸¦ »ç¿ëÇÏ¿© Çѹø ÆäÄ¡¸¶´Ù 10°ÇÀÇ ·Î¿ì°¡ ÃßÃâµÇ¾úÀ½À» ÀǹÌÇÑ´Ù. ¡Ü Æ®·¹À̽ºÀÇ Áß°£ºÎºÐ¿¡ 'Misses im library cache during parse : 1'À̶ó´Â ¹®ÀåÀÌ ÀÖ´Ù. À̰ÍÀº °øÀ¯ SQL ¿µ¿ª¿¡¼ ÆÄ»óµÈ °á°ú¸¦ ãÁö ¸øÇÏ¿© ½ÇÁ¦ ÆÄ½ÌÀÛ¾÷À» ÇÏ°Ô µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¡Ü ÃÖÁ¾ÀûÀ¸·Î ÃßÃâµÈ ·Î¿ìÀÇ ¼ö´Â ÀûÀ¸³ª ¸¹Àº CPU ½Ã°£ÀÌ ¼Ò¿äµÇ¾ú´Ù¸é À̰ÍÀº ºÐ¸íÈ÷ ÀûÀýÇÑ ¾×¼¼½º °æ·Î·Î ¼öÇØµÇÁö ¾Ê¾ÒÀ½À» ÀǹÌÇÑ´Ù. ¡Ü CPU ½Ã°£°ú ELAPSED ½Ã°£ÀÇ Â÷ÀÌ´Â ÀûÀ»¼ö·Ï ÁÁ´Ù. ¸¸¾à CPU½Ã°£¿¡ ºñÇØ ELAPSED ½Ã°£ÀÌ ÈξÀ ¸¹´Ù¸é, ±× ¿øÀÎÀº ´ÙÀ½ Áß ÇϳªÀÏ °¡´É¼ºÀÌ ³ô´Ù. ¢º ÁÖº¯ÀÇ ´Ù¸¥ ¼¼¼Ç¿¡¼ ¸¹Àº ºÎÇϸ¦ ¹ß»ý½ÃÄÑ ½Ã½ºÅÛ Àüü¿¡ ºÎÇϰ¡ ¸¹ÀÌ °É·ÁÀÖ´Â °æ¿ì ¢º ¾îÇø®ÄÉÀ̼ÇÀÇ ¹®Á¦À̰ųª ´Ù·®ÀÇ µ¥ÀÌŸ 󸮿¡ µû¸¥ I/O º´¸ñÇö»óÀÌ ¹ß»ýÇÑ °æ¿ì ¡Ü disk, query, currentÀÇ ¼ýÀÚ´Â ÀûÀ»¼ö·Ï ÁÁ´Ù. ÀÌ ¼ýÀÚµéÀÌ Ä¿´Ù´Â °ÍÀº ¸Þ¸ð¸® °øÀ¯¿µ¿ªÀÇ ÀûÁß·ü(Hit Ratio)ÀÌ ³·´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¡Ü Overall totals For All Statements¿¡¼ ÀûÁß·ü °è»êÀº ´ÙÀ½°ú °°´Ù. ¢º (Execute 'disk' + Fetch 'Disk')/(Execute 'query' + Execute 'current' + Fetch 'query' + Fetch 'Current') * 100 ¢º ÀÌ °ªÀÌ 10%ÀÌ»óÀ̶ó¸é ¸Þ¸ð¸® ij½¬¿¡¼ µ¥ÀÌŸ¸¦ ã´Â ºñÀ²(ÀûÁß·ü)ÀÌ ³Ê¹« ³·Àº °ÍÀÌ´Ù. ¡Ü ´ÙÀ½Àº ¾ÆÁÖ ºü¸¥ ÀÀ´äÀÌ ¿ä±¸µÇ´Â ¿Â¶óÀÎ ÇÁ·Î¼¼½Ì ½Ã½ºÅÛÀÇ °æ¿ì¿¡¼¸¸ Àû¿ëµÇ´Â ±ÔÄ¢µéÀÌ´Ù. ¢º ¸ðµç Execute 'CPU'°¡ 1Ãʺ¸´Ù Àû¾î¾ß ÇÑ´Ù. ¢º Parse 'CPU' ½Ã°£ÀÌ Parse´ç 0.01Ãʺ¸´Ù Àû¾î¾ß ÇÑ´Ù. ¢º ÀÛÀº Å×À̺í(200·Î¿ì ÀÌÇÏ)¿¡¼¸¸ Àüü Å×ÀÌºí ½ºÄµÀÌ ÀϾ°Ô ÇÑ´Ù. ¢º sysdate¸¸ ã¾Æ¿À°Å³ª, ¿ÀÁ÷ ¿¬»ê¸¸ Çϰųª, 'SELECT ... INTO ...'·Î °ªÀ» º¹»çÇÏ´Â °æ¿ì¸¦ À§Çؼ DUAL Å×À̺íµéÀ» ºÒÇÊ¿äÇÏ°Ô »ç¿ëÇÏ´Â °ÍÀº ¸ðµÎ ¾ø¾Ø´Ù. ¢º µ¿½Ã¿¡ ÀÛ¾÷µÇ´Â SQLµéÀº °¡´ÉÇÑ PL/SQLÀ» »ç¿ëÇÑ´Ù. ¢º Á¶Àνÿ¡ ¿ÉƼ¸¶ÀÌÁ®°¡ ÀûÀýÇÑ µå¶óÀ̺ù Å×À̺íÀ» ¼±ÅÃÇÏ´ÂÁö¸¦ È®ÀÎÇϰųª, ¿©·¯°³ÀÇ Á¶°Çµé Áß¿¡¼ ÁÖ(µå¶óÀ̺ù)°¡ µÇ´Â Á¶°Çµé°ú ºÎ(üũ)°¡ µÇ´Â Á¶°ÇµéÀ» È®ÀÎÇÑ´Ù. ¶ÇÇÑ ÀûÀûÇÑ À妽º°¡ »ç¿ëµÉ ¼ö ??´ÂÁö¸¦ È®ÀÎÇÏ¿© ÁÖÁ¶°ÇÀÇ Ã³¸®¹üÀ§°¡ ³ÐÁö ¾Êµµ·Ï Ç×»ó À¯ÀÇÇÑ´Ù. |
|
|
Copyright ¨Ï 1999-2001 by
Jung bo young. |