JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP Áú¹®&´äº¯DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP±âŸ TIP
µ¥ÀÌÅͺ£À̽º ÆÁ
µ¥ÀÌÅͺ£À̽º ÆÁ
µ¥ÀÌÅͺ£À̽º ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
SQL TRACE »ç¿ëÇÏ¿© ´õ »ó¼¼ÇÑ Ç÷£À» ºÐ¼®ÇØ º¸ÀÚ
GoodBug
À̹ÌÁö ½½¶óÀÌ´õ º¸±â

SQL TRACE FACILITY (TKPROF UTILITY »ç¿ë)

 

SQL TRACE FACILITY ´Â SQL ¹® »ç¿ë¿¡ ´ëÇÑ ¼º´ÉÀ» ºÐ¼®Çϱâ À§Çؼ­ »ç¿ëµÈ´Ù.
ÀÌ·¯ÇÑ SQL TRACE FACILITY ¸¦ ÀÌ¿ëÇÏ¸é °¢ SQL ¹®¿¡ ´ëÇؼ­ ´ÙÀ½°ú °°ÀºÁ¤º¸¸¦ ¾òÀ»¼ö ÀÖ´Ù. 

  . parse, execute, fetch count
  . CPU ¿Í elapsed ½Ã°£
  . physical reads ¿Í logical reads
  . ó¸®µÈ row ÀÇ ¼ö

 

SQL TRACE FACILITY ´Â SESSION ȤÀº INSTANCE ´ÜÀ§·Î ÇÒ ¼ö ÀÖ°í TRACE °á°ú È­ÀÏÀº tkprof UTILITY¿¡ ÀÇÇØ »ç¿ëÀÚ°¡ ÀÐÀ» ¼ö ÀÖ´Â ÇüÅ·Πº¯È¯½ÃŲ´Ù.
   

 

 

SQL Trace set up ÇÏ¿© »ç¿ë ¹× ºÐ¼®Çϴ¹æ¹ý

 

1. SQL TRACE enable ¹× TRACE È­ÀÏ µð·ºÅ丮 ÁöÁ¤

 < INSTANCE ´ÜÀ§ > 

    ?/dbs/initSID.ora  È­ÀÏ¿¡ ´ÙÀ½ 4°³ÀÇ PARAMETER ¸¦ Ãß°¡ÇÏ°í DATABASE ¸¦ ´Ù½Ã STARTUP ½ÃŲ´Ù.

            sql_trace=true

            timed_statistics=true

            user_dump_dest=/$ORACLE_HOME/rdbms/udump/trc

            max_dump_file_size=1024000

    timed_statistics´Â ½Ã½ºÅÛ¿¡ ¸¹Àº LOAD°¡ °É¸®¹Ç·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.     

    max_dump_file_size´Â block¼ö¸¦ ³ªÅ¸³¿À¸·Î os block size°¡ 512Àΰæ¿ì 1024000Àº ÃÖ´ë 500MÁ¤µµ±îÁö »ý¼ºµÉ¼ö ÀÖÀ½


 < SESSION ´ÜÀ§ >

    SQL*PLUS
          timed_statistics = true  initSID.ora
          (V7.3 À̻󿡼­´Â
           SQL> ALTER SESSION SET TIMED_STATISTICS = TRUE;)

          $ sqlplus scott/tiger
 
          SQL> ALTER SESSION SET SQL_TRACE = TRUE;
          SQL> sql¹®Àå ½ÇÇà
          SQL> exit
        

    SQLFORMS30, RUNFORM30 : -s OPTION »ç¿ë   
          $ runform30 -s frmfile scott/tiger -c vt220  

 

    PRO*C
          EXEC SQL CONNECT :username;
          EXEC SQL ALTER SESSION SET SQL_TRACE = TRUE;

 

       
ÀÌ·¸°Ô Çϸé user_dump_dest directory¿¡ trace fileÀÌ »ý¼ºµÈ´Ù.
user_dump_dest°¡ ¾îµð·Î ÁöÁ¤µÇ¾î ÀÖ´ÂÁö´Â ´ÙÀ½°ú °°ÀÌ È®ÀÎÇÑ´Ù.

 

sqlplus system/manager
SQL>select value from v$parameter where name = 'user_dump_dest';                        

 

2. TRACE È­ÀÏ º¯È¯

   2. ´Ü°è¿¡¼­ SQL ¹®À» ½ÇÇàÇÏ¸é  user_dump_dest ¿¡ ÁöÁ¤µÈ µð·ºÅ丮¿¡
   TRACE È­ÀÏÀÌ »ý±â°í tkprof ¸¦ ÀÌ¿ëÇÏ¿© È­ÀÏÀ» º¯È¯½ÃŲ´Ù. (º¯È¯½ÃÅ°Áö ¾ÊÀ¸¸é ¾Ë¾Æº¼¼ö ¾ø´Ù)

   TRACE È­ÀÏÀº ½±°Ô ãÀ» ¼ö ÀÖ´Â ÇüÅ°¡ ¾Æ´Ï¹Ç·Î SQL ¹®À» ½ÇÇàÇϱâ Àü¿¡

   dump µð·ºÅ丮¿¡ ÀÖ´Â ora_xxxx.trc È­ÀÏÀ» ¸ðµÎ »èÁ¦Çϰųª °¡Àå ÃÖ±Ù¿¡ »ý±ä È­ÀÏ Áß¿¡¼­ Ã£¾Æ¾ß ÇÑ´Ù.

 

   (ÀÌ ¶§ ÇØ´ç user¿¡ plan_table À̶ó´Â tableÀÌ ¾øÀ¸¸é @$ORACLE_HOME/rdbms/admin/utlxplan.sql À» ¼öÇàÇÏ¿© tableÀ» ¸¸µç´Ù)

 

         TKPROF trace_file list_file [sort=parameter] [print=number] [explain=username/password]

 

   ¿¹. $ cd $ORACLE_HOME/rdbms/log

        $ tkprof ora_1111 out sort=fchqry,fchcu explain=scott/tiger print=20

 

    ora_1111  : TRACE È­ÀÏ
    out          : OUTPUT È­ÀÏ. µð·ºÅ丮¿¡ out.prf ·Î »ý±ä´Ù.
    sort         : ÁöÁ¤µÈ OPION(fchqry,fchcu) ¿¡ ASCENDING ¼øÀ¸·Î SQL ¹®À» SORTING ÇÑ´Ù.          
    explain     : SQL ¹®ÀÇ EXECUTION PLAN À» ¹ß»ý½ÃŲ´Ù.(¸ðµç Å×ÀÌºí ¾×¼¼½º ±ÇÇÑ ÀÖ¾î¾ßÇÑ´Ù)
    print         : ÁöÁ¤µÈ °¹¼öÀÇ SQL¹®¿¡´ëÇؼ­¸¸ TRACE °á°ú¸¦ PRINT ÇÑ´Ù.

 

 

3. SQL TRACE °á°ú ºÐ¼®

**********************************************************************
count   = number of times OCI procedure was executed
cpu     = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk    = number of physical reads of buffers from disk
query   = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually forupdate)
rows    = number of rows processed by the fetch or execute call
**********************************************************************

cpu¿Í elapsed Â÷ÀÌ°¡ ½ÉÇϸé Æ©´× ´ë»óÀÌ´Ù

 

SELECT COUNT(*)
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO

 

call    count  cpu    elapsed   disk    query    current    rows
-----------------------------------------------------------------
Parse    2     0.00    0.00       0       0        0         0
Execute  2     0.00    0.00       0       0        0         0
Fetch    2     0.00    0.00       0      33        2         1

 

Misses in library cache during parse: 1
Parsing user id: 8  (SCOTT)
Rows     Row Source Operation
-------  ---------------------------------------------------
      0  SELECT STATEMENT
      0    SORT (AGGREGATE)
     16      NESTED LOOPS
     16        TABLE ACCESS (FULL) OF 'EMP'
     16        INDEX (UNIQUE SCAN) OF (object id 222584)(UNIQUE)

 

Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT
      0    SORT (AGGREGATE)
     16      NESTED LOOPS
     16        TABLE ACCESS (FULL) OF 'EMP'
     16        INDEX (UNIQUE SCAN) OF 'DEPT_PRIMARY_KEY' (UNIQUE)

*********************************************************************


 ºÐ¼® ¿¹)

 a.  CPU, elapsed Á¤º¸°¡ ¾ø´Â °æ¿ì´Â initSID.ora ¿¡ Timed_statistics = false·Î µÇ¾î Àֱ⠶§¹®ÀÌ´Ù.

 b.  Execute count¿Í Fetch count°¡ µ¿ÀÏÇÏ°Ô Å©´Ù°í Çϸé ARRAY FETCH »ç¿ëÀ» °í·ÁÇÔ.

 c.  fetchµÈ rows ¼ö : query + current = 1 : 4 ÀÌÇÏÀ̸é SQL ¹®Àº ÀûÀýÈ÷ »ç¿ëµÈ °æ¿ìÀÌ°í,

     row ¼ö¿¡ ºñÇÏ¿© query + count°¡ »ó´çÈ÷ Å©¸é ºÎÀûÀýÇÏ°Ô »ç¿ëµÈ SQL ¹®À̹ǷÎ(count, sum, distinct µî Group functionÀ» »ç¿ëÇϴ °æ¿ì´Â ¿¹¿Ü) ´ÙÀ½ ³»¿ëµé¿¡ ´ëÇؼ­ Àç°ËÅä°¡ ÇÊ¿äÇÏ´Ù. 

     .INDEX »ç¿ë, ±¸¼º ¿©ºÎ
     .ROWID »ç¿ë    
     .COST_BASED OPTIMIZER »ç¿ë(ORACLE 7)
     .ARRAY FETCH »ç¿ë
     .SORTINGÀ» ÇÇÇÒ ¼ö ÀÖ´Â SQL ¹® ±¸»ç

 

 d.  Parse count, Execute count°¡ ºñ½ÁÇÑ °æ¿ì RELEASE_CURSOR, HOLE_CURSOR OPTION »ç¿ëÇÏ¿© Parse count¸¦ ÁÙÀÓ.

 f. ½ÇÇà°èȹÀÌ Ã¹¹ø° Row Source OperationÀº SQL ½ÇÇà´ç½Ã planÀ̸ç, µÎ¹ø° Executtion PlainÀº TKPROF°¡ ½ÇÇàµÉ ½ÃÀÇ plan ÀÌ´Ù (µÎ planÀÌ ½ÃÁ¡Â÷ÀÌ·Î ÀÎÇØ ´Þ¶óÁú ¼ö ÀÖÀ½)

         

 

from otn

2005-12-08 10:30:10
203.231.115.***

 

ÁÁÀº»ý°¢ ^^

0Á¡ (0¸í)
µ¡±Û 0°³ | ÅÂ±× 0°³ | °ü·Ã±Ûº¸±â
ű×ÀÔ·Â
½±Ç¥(,)±¸ºÐÀ¸·Î Çѹø¿¡ ¿©·¯ ű׸¦ ÀÔ·ÂÇÒ¼ö ÀÖ½À´Ï´Ù
À̸§ ºñ¹Ð¹øÈ£
µ¥ÀÌÅͺ£À̽º ÆÁ
µ¥ÀÌÅͺ£À̽º ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
! ¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ÀÏÀÚ Á¶È¸
181 import DB ºÎºÐÀûÀÎ µ¥ÀÌÅÍ export / import ¹æ¹ý 2 kaiser 2008-12-29 7,795
180 NOT IN NOT EXISTS not in °ú not existsÀÇ °³³ä ÀÌÇØ 1 kaiser 2008-12-17 19,574
179 IP Á¢¼ÓÀÚ ¾ÆÀÌÇÇ º¸±â 1 GoodBug 2008-06-27 9,451
178 meta ¿À¶óŬ ½ºÅ°¸¶ ½ºÅ©¸³Æ® ¹Þ±â 1 GoodBug 2008-06-05 19,843
177 ORA-00054 ORA-00054: resource busy and acquire with NOWAIT specified 1 GoodBug 2007-10-27 13,058
176 ÇÑ±Û MYSQL ¼­¹ö ij¸¯¼ÂÀÌ EUCKRÀÌ ¾Æ´Ò°æ¿ì Ŭ¶óÀ̾ðÆ® ¼³Á¤ 1 GoodBug 2007-10-09 8,344
175 archive ¾ÆÄ«ÀÌºê ¼º´É Çâ»ó 1 GoodBug 2007-10-02 7,939
174 Dictionary Dict table 1 GoodBug 2007-10-02 7,224
173 ¿À¶óŬƩ´× redo log file ±¸¼º ¸ð´ÏÅÍ 1 GoodBug 2007-09-20 7,905
172 dictionary ÀÚÁÖ¾²´Â µñ¼Å³Ê¸® Á¤º¸ 1 1 GoodBug 2007-09-20 8,352
171 TableSpace Tablespace º° »ç¿ë·® È®ÀÎ 1 GoodBug 2007-09-20 8,766
170 ¿À¶óŬ üũÆ÷ÀÎÆ® °ü·Ã ÆĶó¹ÌÅÍ 2 GoodBug 2007-09-20 7,420
169 ¿À¶óŬƩ´× Å×ÀÌºí ½ºÄµ Åë°è 1 GoodBug 2007-09-19 7,265
168 ¿À¶óŬƩ´× v$filestat·Î µð½ºÅ© I/O ¸¦ È®ÀÎÇغ¸ÀÚ 1 GoodBug 2007-09-19 10,248
167 ¿À¶óŬƩ´× ORA-04031 ¿¡·¯ ´ëó¹ý ¹× ¿¹¹æ¹ý 1 GoodBug 2007-09-17 13,717
166 ¿À¶óŬƩ´× DB_FILE_MULTIBLOCK_READ_COUNT 1 GoodBug 2007-09-17 7,272
165 TableSpace TableSpace °ü¸® (Dictionary, Locally) 1 GoodBug 2007-09-16 7,774
164 ¿À¶óŬƩ´× ¹®Á¦ÇØ°á ¹× Æ©´× °ü·Ã ºä 2 GoodBug 2007-09-16 7,698
163 segment ¿À¶óŬ SEGMENT 1 GoodBug 2007-09-16 8,628
162 startup ¿À¶óŬ startup½Ã ´Ü°èº° ¿ÀÇ ÆÄÀÏ 1 GoodBug 2007-09-16 7,531
copyright 2005-2024 by Unicorn