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 ½ÃŲ´Ù.
timed_statistics´Â ½Ã½ºÅÛ¿¡ ¸¹Àº LOAD°¡ °É¸®¹Ç·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.
max_dump_file_size´Â block¼ö¸¦ ³ªÅ¸³¿À¸·Î os block size°¡ 512Àΰæ¿ì 1024000Àº ÃÖ´ë 500MÁ¤µµ±îÁö »ý¼ºµÉ¼ö ÀÖÀ½
< SESSION ´ÜÀ§ >
ÀÌ·¸°Ô Çϸé 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À» ¸¸µç´Ù)
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 °á°ú ºÐ¼®
cpu¿Í elapsed Â÷ÀÌ°¡ ½ÉÇϸé Æ©´× ´ë»óÀÌ´Ù
ºÐ¼® ¿¹)
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