Subject : Technical


¢Â  
SQL Trace

¢Â  
Wait Event


SQL Trace

 

 

¡Ü Trace ÆÄÀÏÀº ½Ã½ºÅÛÀ» Æ©´×Çϴµ¥ ÇÊ¿äÇÑ ¾ÆÁÖ À¯¿äÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù.
¡Ü ½Ã½ºÅÛ Àüü¿¡ ´ëÇØ¼­ SQL_TRACE¸¦ ¼öÇà½Ã۸é ÀüüÀûÀÎ ¼öÇ༺´ÉÀº 20%~30% Á¤µµ °¨¼ÒÇÑ´Ù.
¡Ü SQL¹®ÀÇ ½ÇÇàÅë°è¸¦ Sessionº°·Î ¸ð¾Æ¼­ Trace ÆÄÀÏÀ» ¸¸µç´Ù.
     ¢º SQL Parsing, Execute, Fetch¸¦ ¼öÇàÇÑ È½¼ö
     ¢º CPU Time, Elapsed Time(ÃÑ °æ°ú½Ã°£)
     ¢º Disk(¹°¸®Àû), Memory(³í¸®Àû) Àб⸦ ¼öÇàÇÑ È½¼ö
     ¢º ÃßÃâµÈ RowÀÇ ¼ö
     ¢º ¶óÀ̺귯¸® ij½¬ miss ¼ö

¡Ü SQL_TRACE¿¡ ÀÇÇØ¼­ »ý¼ºµÇ´Â Trace ÆÄÀÏÀÇ È®ÀåÀÚ´Â .trcÀÌ´Ù.
     ¢ºTKPROF À¯Æ¿¸®Æ¼·Î ÀÐÀ» ¼ö ÀÖ´Â ÆÄÀÏÀ» »ý¼ºÇØ¾ß ÇÑ´Ù.



¢À 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ÇüÅ·Π»ý¼ºµÈ´Ù.



¢À Æ®·¹À̽º ÆÄÀÏ º¸±â
     ¢º »ý¼ºµÈ Æ®·¹À̽º ÆÄÀÏÀº(*.trc) ¹Ù·Î º¼ ¼ö ¾ø´Ù. ±×·¡¼­ tkprof¶ó´Â À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¿© »ý¼ºµÈ
         Æ®·¹À̽º ÆÄÀÏÀ» ºÐ¼®ÀÌ °¡´ÉÇÑ Çü½ÄÀ¸·Î ÀüȯÇÏ¿© ÁØ´Ù. ÀÌ¹Ì »ý¼ºµÈ Æ®·¹À̽º ÆÄÀÏÀ̳ª Æ®·¹À̽º
         ÆÄÀÏÀ» »ý¼ºÇϰí ÀÖ´Â Áß¿¡µµ tkprof¸¦ ¼öÇà½Ãų ¼ö ÀÖ´Ù. Æ®·¹À̽º ÆÄÀÏÀº SQL¹®¿¡ ´ëÇÑ ½ÇÇà°èȹ»Ó¸¸
         ¾Æ´Ï¶ó ½ÇÇà½Ã°£, ´Ù¾çÇÑ ¿É¼ÇÀ» ÀÌ¿ëÇÏ¿© ºÐ¼®Çϱ⠽¬¿î ÇüÅ µîÀÇ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
     ¢º tkprof´Â ´ÙÀ½°ú °°ÀÌ ½ÇÇà½Ãų ¼ö ÀÖ´Ù.
         Usage: tkprof tracefile outputfile [explain=user/passwd] [table=schema.tablename]
                    [print=integer] [insert=filename] [sys=yes/no] [sort=option]
 

 

outputfile

tkprof°¡ Ãâ·ÂÇÏ´Â ÅØ½ºÆ® ÆÄÀϸí(µðÆúÆ®·Î È®ÀåÀÚ°¡ .prfÀÓ)

explain=user/passwd

ÇØ´ç Æ®·¹À̽º ÆÄÀÏÀÌ ¼öÇàµÈ ¼¼¼ÇÀÇ »ç¿ëÀÚ ¹× ÆÐ½º¿öµå

table=schema.tablename

½ÇÇà°èȹ(execution plan)À» ÀúÀåÇÒ TKPROF Àӽà Å×À̺íÀÇ À̸§

print=intege

Æ®·¹À̽º ÆÄÀϺ°·Î Ãâ·Â½Ãų SQL¹®ÀÇ ¼ö

aggregate=yes|no

 

insert=filename

List SQL statements and data inside INSERT statements.

sys=yes/no

TKPROF does not list SQL statements run as user SYS.

record=filename

Record non-recursive statements found in the trace file.

sort=option

Set of zero or more of the following sort options 

      
          
 < sort optionÀÇ Á¾·ù >
            prscnt   number of times parse was called
            prscpu  cpu time parsing
            prsela   elapsed time parsing
            prsdsk   number of disk reads during parse
            prsqry   number of buffers for consistent read during parse
            prscu    number of buffers for current read during parse
            prsmis   number of misses in library cache during parse
            execnt   number of execute was called
            execpu  cpu time spent executing
            exeela   elapsed time executing
            exedsk  number of disk reads during execute
            exeqry   number of buffers for consistent read during execute
            execu    number of buffers for current read during execute
            exerow  number of rows processed during execute
            exemis  number of library cache misses during execute
            fchcnt   number of times fetch was called
            fchcpu  cpu time spent fetching
            fchela   elapsed time fetching
            fchdsk  number of disk reads during fetch
            fchqry   number of buffers for consistent read during fetch
            fchcu    number of buffers for current read during fetch
            fchrow  number of rows fetched
            userid   userid of user that parsed the cursor

      ¢º ¿©±â¼­ SQL¹®À» ½ÇÇàÇϴµ¥ °É¸° CPU½Ã°£À» º¸¿©ÁÖ´Â EXECPU°¡ °¡Àå ½Ç¿ëÀûÀÌ´Ù.
      ¢º ¸¸¾à init.ora ÆÄ¶ó¹ÌÅ͸¦ TIMED_STATISTICS=FALSE·Î ÁöÁ¤ÇßÀ» ¶§´Â ¼öÇà Áß¿¡ ¾×¼¼½ºµÈ ºí·Ï ¼ö¸¦
          º¸¿©ÁÖ´Â EXEQRY°¡ °¡Àå ½Ç¿ëÀûÀÌ´Ù.
      ¢º ¿¹) tkprof ccdb_ora_1124.trc 1124.txt explain=scott/tiger



¢À Æ®·¹À̽º ÆÄÀÏÀÇ ºÐ¼®
      ¢º tkprof´Â Á¤ÇüÈ­µÈ ¸®½ºÆ®(Ãâ·ÂÆÄÀÏ)¸¦ »ý¼ºÇÑ´Ù.
      ¢º »ý¼ºµÈ ÆÄÀÏ¿¡´Â ´ÙÀ½°ú °°Àº ³»¿ëµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.

         call     count     cpu    elapsed      disk       query    current       rows
         ------- ------  -------- ---------- ---------- ---------- ----------  ----------
         Parse     1       0.01      0.01        0           0          0           0
         Execute  1       0.00      0.00        0           0          0           0
         Fetch      1       0.00      0.02        2           3          0           1
         ------- ------  -------- ---------- ---------- ---------- ----------  ----------
         total        3       0.01      0.03        2           3          0           1

      ¡á parse
      ¡¤SQL¹®ÀÌ ÆÄ½ÌµÇ´Â ´Ü°è¿¡ ´ëÇÑ Åë°èÀÌ´Ù. »õ·Î ÆÄ½ÌÀ» Ç߰ųª, °øÀ¯ Ç®¿¡¼­ ã¾Æ ¿Â °Íµµ Æ÷ÇԵȴÙ.
      ¡¤´Ü, PL/SQL ³»¿¡¼­ ¹Ýº¹ ¼öÇà(Loop)µÈ SQLÀ̳ª PRO*SQL¿¡¼­ º¸Á¸Ä¿¼­(Hold cursor)¸¦ ÁöÁ¤ÇÑ
         °æ¿ì¿¡´Â Çѹø¸¸ ÆÄ½ÌµÈ´Ù.
      ¡á execute
      ¡¤SQL¹®ÀÇ ½ÇÇà ´Ü°è¿¡ ´ëÇÑ Åë°èÀÌ´Ù. UPDATE, INSERT, DELETE ¹®µéÀº ¿©±â¿¡ ¼öÇàÇÑ °á°ú°¡ ³ªÅ¸³­´Ù.
      ¡¤Àüü¹üÀ§ ¹æ½ÄÀ¸·Î ó¸®µÈ °á°ú°¡ ¿©·¯ °ÇÀÎ °æ¿ì´Â ÁÖ·Î ¿©±â¿¡ ¸¹Àº °ªÀÌ ³ªÅ¸³ª¸ç fetch¿¡´Â ¾ÆÁÖ ÀûÀº
         °ªÀÌ ³ªÅ¸³­´Ù.
      ¡á fetch
      ¡¤SQL¹®ÀÌ ½ÇÇØµÇ¸é¼­ ÆäÄ¡µÈ Åë°èÀÌ´Ù.
      ¡¤ºÎºÐ¹üÀ§ ¹æ½ÄÀ¸·Î ó¸®µÈ SELECT¹®µéÀ̳ª Àüü¹üÀ§ 󸮸¦ ÇÑ ÈÄ ÇÑ °ÇÀ» ÃßÃâÇÏ´Â °æ¿ì(AGGREGATE,
         ÀüüÁý°è, Count µî)´Â ÁÖ·Î ¿©±â¿¡ ¸¹Àº °ªµéÀÌ ³ªÅ¸³ª°í execute¿¡´Â ¾ÆÁÖ ÀûÀº °ªÀÌ ³ªÅ¸³­´Ù.
      ¡á count
      ¡¤SQL¹®ÀÌ ÆÄ½ÌµÈ Ƚ¼ö, ½ÇÇàµÈ Ƚ¼ö, ÆäÄ¡°¡ ¼öÇàµÈ Ƚ¼öÀÌ´Ù.
      ¡á cpu
      ¡¤pares, execute, fetch°¡ ½ÇÁ¦·Î »ç¿ëÇÑ CPU ½Ã°£ÀÌ´Ù.(1/100ÃÊ ´ÜÀ§)
      ¡á elapsed
      ¡¤ÀÛ¾÷ÀÇ ½ÃÀÛ¿¡¼­ Á¾·á½Ã±îÁö ½ÇÁ¦ ¼Ò¿äµÈ ÃÑ ½Ã°£ÀÌ´Ù.
      ¡á disk
      ¡¤µð½ºÅ©¿¡¼­ ÀÐÇôÁø µ¥ÀÌŸ ºí·ÏÀÇ ¼ö
      ¡á query
      ¡¤¸Þ¸ð¸® ³»¿¡¼­ º¯°æµÇÁö ¾ÊÀº ºí·ÏÀ» Àаųª ´Ù¸¥ ¼¼¼Ç¿¡ ÀÇÇØ º¯°æ µÇ¾úÀ¸³ª ¾ÆÁ÷ CommitµÇÁö ¾Ê¾Æ
         º¹»çÇØ µÐ ½º³À¼¦ ºí·ÏÀ» ÀÐÀº ºí·ÏÀÇ ¼öÀÌ´Ù.
      ¡¤SELECT¹®¿¡¼­´Â °ÅÀǰ¡ ¿©±â¿¡ ÇØ´çÇϸç UPDATE, DELETE, INSERT ½Ã¿¡´Â ¼Ò·®¸¸ ¹ß»ýÇÑ´Ù.
      ¡á current
      ¡¤Çö ¼¼¼Ç¿¡¼­ ÀÛ¾÷ÇÑ ³»¿ëÀ» CommitÇÏÁö ¾Ê¾Æ ¿À·ÎÁö Àڽſ¡°Ô¸¸ À¯È¿ÇÑ ºí·Ï(Dirty Block)À» ¾×¼½½ºÇÑ
         ºí·Ï ¼öÀÌ´Ù.
      ¡¤ÁÖ·Î UPDATE, INSERT, DELETE ÀÛ¾÷½Ã ¸¹ÀÌ ¹ß»ýÇÑ´Ù. SELECT ¹®¿¡¼­´Â °ÅÀÇ ¾øÀ¸³ª ¾ÆÁÖ ÀûÀº ¾çÀÎ
         °æ¿ì°¡  ´ëºÎºÐÀÌ´Ù.
      ¡á rows
      ¡¤SQL¹®À» ¼öÇàÇÑ °á°ú¿¡ ÀÇÇØ ÃÖÁ¾ÀûÀ¸·Î ¾×¼¼½ºµÈ ·Î¿ìÀÇ ¼öÀÌ´Ù.
      ¡¤¼­ºêÄõ¸®¿¡ ÀÇÇØ¼­ ÃßÃâµÈ ·Î¿ì´Â Á¦¿ÜµÈ´Ù.
      ¡¤¸¸¾à SUM, AVG, MAX, MIN, COUNT µîÀÇ ±×·ìÇÔ¼ö¸¦ »ç¿ëÇÑ °æ¿ì¶ó¸é Å« Àǹ̰¡ ¾ø´Ù.



¢ÑºÐ¼®°á°úÀÇ ¿¹
   ¡Ü 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À» »ç¿ëÇÑ´Ù.
        ¢º Á¶Àνÿ¡ ¿ÉƼ¸¶ÀÌÁ®°¡ ÀûÀýÇÑ µå¶óÀ̺ù Å×À̺íÀ» ¼±ÅÃÇÏ´ÂÁö¸¦ È®ÀÎÇϰųª, ¿©·¯°³ÀÇ Á¶°Çµé
            Áß¿¡¼­ ÁÖ(µå¶óÀ̺ù)°¡ µÇ´Â Á¶°Çµé°ú ºÎ(üũ)°¡ µÇ´Â Á¶°ÇµéÀ» È®ÀÎÇÑ´Ù. ¶ÇÇÑ ÀûÀûÇÑ À妽º°¡ »ç¿ëµÉ
            ¼ö ??´ÂÁö¸¦ È®ÀÎÇÏ¿© ÁÖÁ¶°ÇÀÇ Ã³¸®¹üÀ§°¡ ³ÐÁö ¾Êµµ·Ï Ç×»ó À¯ÀÇÇÑ´Ù.

Wait Event

 

 col event form A50
 col Prev form 9,999
 col Curr form 9,999
 col Tot form 99,999
 select
 event,
 sum(decode(wait_Time,0,0,1)) "Prev",
 sum(decode(wait_Time,0,1,0)) "Curr",
 count(*) "Tot"
 from
 v$session_Wait
 group by event
 order by 4
 /

buffer_busy_waits

waiting for a buffer to be read into SGA by another user or in incompatible mode

db_file_scattered_read

full table scan, waiting for buffer to be read into SGA

db_file_sequential_read

rowid (index) block read, waiting for block to be read into SGA

direct_access_io

direct io waiting for async write request to complete

direct_loader_io

pre 7.3 , same as DIRECT ACCESS I/O

enqueue

wait on an application lock or internal table lock

free_buffer_waits

wait for a free buffer to be available in SGA

free_global_transaction_table_entry

wait for space in clobal transaction table in Distributed transaction

index_block_split

wait for a full index block to split

latch_free

wait for a latch to be free

library_cache_load_lock

wait for another user to load demanded package into library cache

library_cache_lock

wants object in incompatible mode, or searching for object in cache

library_cache_pin  

waiting in an incompatible mode to ppin the object

log_buffer_space

need space in the log buffer

log_file_space_switch

most any log waits on pre v7.3

log_switch_archive

waiting 'alter system archive log change ' command

log_file_switch_archiving_needed

waiting for archiver to archive the log file we want ot overwrite

log_file_switch_checkpoint_incomplete

waiting for checkpoint to complete for the log file we want to overwrite

log_file_switch_clearing_log_file

clear logfile command or implicit clear logfile executed by recovery.

log_file_switch_full_log_file (?)

after filling one log file waiting for lgwr to switch to next

log_file_switch_switch_logfile_command

waiting for user command to switch logfiles

log_file_sync

waiting for write to redo log on file to be confirmed

pipe_get

idle pipe

pipe_put

wait for space in pipe

rdbms_ipc_reply

waiting for a background process to confirm an action

sqlnet_message_to_client

if MTS, idle event, o/w net problem? communication problem?

sqlnet_more_data_to_client

high waits could indicate network latency

undo_segment_extension

waiting for RBS to extend, maybe rbs need to be better sized, or optimal not correctly set

write_complete_waits

dbwr is writing out the block we want to use

 


 

Copyright ¨Ï 1999-2001 by Jung bo young.
All Rights Reserved.