¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è¿Í ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×Àº °¡Àå Å« ¼º´É ÀÌÁ¡À» Á¦°øÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» ½ÇÇàÇÏ´Â ±¸¹®ÀÌ ÀûÀýÇÏ°Ô ÀÛ¼ºµÇÁö ¾Ê¾ÒÀ» °æ¿ì, µ¥ÀÌÅÍ°¡ ¼±ÅÃµÈ ¹æ¹ý°ú ¼±ÅÃµÈ µ¥ÀÌÅÍÀÇ ¾çÀº ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼º´É¿¡ ½É°¢ÇÑ ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ ÀÛ¾÷
º¸Åë ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ°¡ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß°ú SQL ¹®ÀÇ
ÀÛ¼ºÀ» ´ã´çÇϱ⠶§¹®¿¡, µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ(DBA)´Â ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×¿¡ Á÷Á¢ °ü¿©ÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. ±×·¯³ª, DBA´Â À߸ø ÀÛ¼ºµÈ
SQL ¹®ÀÌ µ¥ÀÌÅͺ£À̽º ȯ°æ¿¡ ¹ÌÄ¡´Â ¿µÇâ¿¡ ´ëÇؼ ¾Ë°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖÀ¸¸ç, ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´× ÀÛ¾÷À» µ½°í ºñÈ¿À²ÀûÀÎ SQL ¹®À» Áï½Ã
½Äº°ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
Oracle8¿¡¼´Â, ´ÙÀ½ µÎ °¡ÁöÀÇ ¿ÉƼ¸¶ÀÌÀú ¸ðµå¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù:
±ÔÄ¢ ±â¹Ý ÃÖÀûÈ
ÀÌ ¸ðµå¿¡¼, ¼¹ö ÇÁ·Î¼¼½º´Â ÁúÀǸ¦ Á¶»çÇÏ¿©
µ¥ÀÌÅÍ·ÎÀÇ ¾×¼¼½º °æ·Î¸¦ ¼±ÅÃÇÕ´Ï´Ù. ÀÌ ¿ÉƼ¸¶ÀÌÀú´Â ¾×¼¼½º °æ·Î ¼¿¿¡ ´ëÇÑ ¿Ïº®ÇÑ ¼¼Æ®ÀÇ ±ÔÄ¢À» °®°í ÀÖ½À´Ï´Ù.
°æÇèÀÖ´Â ¿À¶óŬ
°³¹ßÀÚ´Â Á¾Á¾ ÀÌµé ±ÔÄ¢À» ¸Å¿ì Àß ÀÌÇØÇÏ°í Àֱ⠶§¹®¿¡ SQLÀ» Æ©´×ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±ÔÄ¢ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú´Â ¹®ÀåÀÇ ±¸¹®À» »ç¿ëÇÏ¿©
»ç¿ëµÉ ½ÇÇà °èȹÀ» Á¤ÇÕ´Ï´Ù.
¿ø°¡ ±â¹Ý ÃÖÀûÈ
ÀÌ ¸ðµå¿¡¼, ¿ÉƼ¸¶ÀÌÀú´Â °¢ ¹®ÀåÀ» °Ë»çÇÏ¿©
µ¥ÀÌÅÍ·ÎÀÇ ¸ðµç °¡´ÉÇÑ ¾×¼¼½º °æ·Î¸¦ È®ÀÎÇÕ´Ï´Ù. ±×·± ´ÙÀ½, °¢ ¾×¼¼½º °æ·ÎÀÇ ÀÚ¿ø ºñ¿ëÀ» °è»êÇÏ¿© °¡Àå ºñ¿ëÀÌ Àû°Ô µå´Â °æ·Î¸¦ ¼±ÅÃÇÕ´Ï´Ù.
¿ø°¡ °è»êÀº ÁÖ·Î ³í¸®Àû ÀбâÀÇ ¼ö¸¦ ±âÃÊ·Î ÇÕ´Ï´Ù.
¿ø°¡ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú´Â Åë°è Áß½ÉÀ¸·Î, SQL ¹®°ú
°ü·ÃµÈ °´Ã¼¿¡ ´ëÇØ »ý¼ºµÈ Åë°è¸¦ »ç¿ëÇÏ¿© °¡Àå È¿°úÀûÀÎ ½ÇÇà °èȹÀ» Á¤ÇÕ´Ï´Ù. SQL ¹® ³»ÀÇ ¾î¶°ÇÑ °´Ã¼¶óµµ °´Ã¼¿¡ ´ëÇØ »ý¼ºµÈ Åë°è°¡
ÀÖ´Ù¸é, ¿ø°¡ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú°¡
»ç¿ëµÉ °ÍÀÔ´Ï´Ù.
¿À¶óŬ »ç´Â ƯÈ÷ »õ·Î¿î ¾ÖÇø®ÄÉÀ̼ÇÀÌ º´·Ä ÁúÀǸ¦ »ç¿ëÇÒ °æ¿ì, »õ·Î¿î ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇØ ÀÌ ¿ÉƼ¸¶ÀÌÀú ¸ðµå¸¦ »ç¿ëÇÒ °ÍÀ»
±ÇÀåÇÕ´Ï´Ù.
ÁÖ: ±ÔÄ¢ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú¿¡ ÀÇÇØ »ç¿ëµÇ´Â ¼¿½Ã½ºÅÛ¿¡ °üÇÑ Ãß°¡ Á¤º¸¿¡ ´ëÇؼ´Â Oracle8 Concepts,
Release 8.0 manual ºÎºÐÀ» ÂüÁ¶ÇϽʽÿÀ.
ÀνºÅϽº¸¦ Àç½ÃÀÛÇØ¾ß Çϱ⠶§¹®¿¡, DBA°¡ OPTIMIZER_MODE¸¦ ÀνºÅϽº ·¹º§¿¡¼ ¼³Á¤ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ´Â SQL ¹®¿¡¼ ÈùÆ®¸¦ »ç¿ëÇÏ´Â °ÍÀº ¹°·ÐOPTIMIZER_MODE¸¦ ¼¼¼Ç ·¹º§¿¡¼ ¼³Á¤ÇÒ ´É·ÂÀ» °®°Ô µÉ °ÍÀÔ´Ï´Ù. OPTIMIZER_MODE ÆĶó¹ÌÅÍ OPTIMIZER_GOAL ¿É¼Ç ¿ÉƼ¸¶ÀÌÀú ÈùÆ® |
½ºÅ¸ ÁúÀÇ´Â ¡°½ºÅ¸¡± ½ºÅ°¸¶·Î ¾Ë·ÁÁø °ÍÀ» Áß½ÉÀ¸·Î Á¾Á¾ µ¥ÀÌÅÍ ¿þ¾îÇϿ콺 ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëµË´Ï´Ù. »ç½Ç(fact) Å×À̺í°ú ·è¾÷(lookup) Å×À̺íÀÌ ÀûÀýÇÏ°Ô ±¸Á¶ÈµÇ¾úÀ» °æ¿ì, ¿ø°¡ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú´Â ½ºÅ¸ ÁúÀǸ¦ ÀνÄÇÏ¿© ½ºÅ¸ ÁúÀÇ ½ÇÇà °æ·Î¸¦ ¼³Á¤ÇÕ´Ï´Ù.
½ºÅ¸ ÁúÀÇ Æ¯¼º
ÀÌ ¿¹¿¡¼, »ç½Ç Å×À̺íÀº ¸ðµç ·è¾÷ Å×À̺íÀÇ ±âº»Å°(Primary key)·Î ÀÌ·ç¾îÁø
¿¬°á(concatenated) Å°¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
´ÙÀ½ ÁúÀÇ´Â ½ºÅ¸ ÁúÀÇ ½ºÅ°¸¶¸¦ ÀÌ¿ëÇÕ´Ï´Ù:
SELECT sum(dollars)
FROM
fact_table, time_table, product_table, market_table
WHERE
market_table.stat = 'New York' AND
product_table.brand =
'Mybrand' AND
time_table.year = '1998'
AND
time_table.month = 'March'
AND
product_table.key1 = fact_table.key1
AND
market_table.key2 = fact_table.key2
AND
time_table.key3 = fact_table.key3;
°ü·Ã ÆĶó¹ÌÅ͵é
STAR_TRANSFORMATION_ENABLED ÆĶó¹ÌÅÍ´Â ¿ø°¡
±â¹Ý ÁúÀÇ º¯ÇüÀÌ ½ºÅ¸ ÁúÀÇ¿¡ Àû¿ëµÇ¾î¾ß ÇÏ´ÂÁö ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ® °ªÀº TRUEÀÔ´Ï´Ù. ÀÌ ÆĶó¹ÌÅÍ´Â ALTER SESSION ¸í·ÉÀ»
»ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î ¼³Á¤µÉ ¼ö ÀÖ½À´Ï´Ù.
Çؽà °áÇÕÀº ÇÑ Å×À̺íÀÌ ´Ù¸¥ Å×ÀÌºíº¸´Ù ÇöÀúÇÏ°Ô Å« °æ¿ì µÎ°³ÀÇ Å×À̺íÀ» Á¶ÀÎÇϱâ À§ÇÑ È¿°úÀûÀÎ
¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ¼öõ°³ÀÇ ÇàÀ» Æ÷ÇÔÇÏ´Â Á÷¿ø Å×À̺íÀº Çà ¼ö°¡ ÀûÀº ºÎ¼ Å×À̺í°ú Á¶Àε˴ϴÙ.
Çؽð¡ ±¸ÃàµÇ°í ³ª¸é,
°¡´ÉÇÏ´Ù¸é ¸Þ¸ð¸®¿¡ ÀúÀåµÇ¾î, ¼öÇàµÇ¾î¾ß ÇÏ´Â Å×ÀÌºí ½ºÄµÀÇ ¼ö¸¦ °¨¼Ò½ÃÄÑ Á¶ÀÎ ÀÛ¾÷À» ÈξÀ ´õ È¿°úÀûÀ¸·Î ¸¸µì´Ï´Ù.
À§ÀÇ ¿¹¿¡¼:
°ü·Ã ÆĶó¹ÌÅÍ
Çؽà °áÇÕ¿¡ Áß¿äÇÑ 3°³ÀÇ ÆĶó¹ÌÅ͵éÀº ´ÙÀ½°ú
°°½À´Ï´Ù:
SQL ¹®À̳ª PL/SQL ¸ðµâÀÇ ¼º´ÉÀ» Æò°¡Çϱâ À§ÇÏ¿© ¸¹Àº Áø´Ü ÅøµéÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ ÅøÀº °³¹ßÀÚ³ª DBA¿¡°Ô ´Ù¾çÇÑ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.
ÃßÀûÀ» »ç¿ëÇÏÁö ¾Ê°í SQL *Plus¿¡¼ EXPLAIN ¹®À» »ç¿ëÇÒ ¼ö
ÀÖ½À´Ï´Ù.
Áö¿øµÇ´Â utlxplan.sql ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ¿© PLAN_TABLEÀ̶ó´Â Å×À̺íÀ» »ý¼ºÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. °¡Àå ¸¹Àº
¸ñÀû¿¡ À¯¿ëÇÑ ¿Àº OPERATION, OPTIONS, OJBECT_NAMEÀÔ´Ï´Ù.
ÁúÀÇ¿¡ ´ëÇÑ °èȹÀ» ¼³¸íÇϱâ À§Çؼ´Â, ´ÙÀ½
±¸¹®À» »ç¿ëÇϽʽÿÀ:
EXPLAIN PLAN FOR
SELECT
...
±×·± ´ÙÀ½, PLAN_TABLEÀ» ÁúÀÇÇÏ¿© ½ÇÇà °èȹÀ»
°Ë»çÇϽʽÿÀ.
PLAN_TABLEÀº ±× ¼ø°£ ¹®ÀåÀ» ½ÇÇà½ÃÅ°±â À§ÇÏ¿© ¼±ÅÃÇÒ °æ¿ì ¹®ÀåÀÌ ¾î¶»°Ô ½ÇÇàµÇ´Â°¡¸¦ ³ªÅ¸³À´Ï´Ù. ¹®ÀåÀ»
½ÇÇà½ÃÅ°±â Àü¿¡ º¯°æ(¿¹¸¦ µé¾î, À妽º »ý¼º)ÇÒ °æ¿ì ½ÇÁ¦ ½ÇÇàÀº ´Ù¸£°Ô ¼öÇàµÈ´Ù´Â °ÍÀ» ¸í½ÉÇϽʽÿÀ.
¶ÇÇÑ, °èȹ ¼³¸í¿¡¼
statement_id¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é, ´Ù¸¥ ½ÇÇà °èȹÀ» »ý¼ºÇϱâ Àü¿¡ PLAN_TABLEÀ» Á¦°ÅÇϱ⸦ ¿øÇÒ °ÍÀÔ´Ï´Ù.
plan_table¿¡¼ ½ÇÇà °èȹÀ» Á¶È¸Çϱâ À§Çؼ´Â ´ÙÀ½ ÁúÀǸ¦
½ÇÇà½ÃÅ°½Ê½Ã¿À:
select
id, operation, options, object_name, position from
plan_table;
ÀÌ ¿¹Á¦¿¡¼,
PLAN_TABLE·ÎºÎÅÍ ¿ÀÁ÷ 3°³ÀÇ ¿¸¸ ¼±ÅõǴµ¥, À̵éÀº ´ÙÀ½°ú °°½À´Ï´Ù:
EXPLAIN PLAN Ãâ·Â¿¡¼ ºÎ¸ð(parent) ÇÁ·Î¼¼½º¸¦ °áÁ¤Çϱâ À§ÇÏ¿©, PLAN_TABLEÀÇ ID¿Í PARENT_ID¸¦ ¸ðµÎ ¼±ÅÃÇϽʽÿÀ.
½ÇÇà °èȹÀÇ Çؼ®
½ÇÇà °èȹÀÇ °¢ ´Ü°è´Â µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ ÇàÀ» ºÒ·¯¿À°Å³ª Çϳª
ÀÌ»óÀÇ ´Ù¸¥ ´Ü°è·ÎºÎÅÍÀÇ ÀÔ·ÂÀ¸·Î¼ ¿À» ¹Þ¾ÆµéÀÔ´Ï´Ù. ½ÇÇà °èȹÀº ¾Æ·¡¿¡¼ À§·Î »óÇâ½ÄÀ¸·Î ÀÐÇôÁý´Ï´Ù.
½ÇÇà °èȹÀÇ ºñ¿ëÀº ½ÇÇà °èȹÀ» »ç¿ëÇÏ´Â ¹®ÀåÀ» ½ÇÇàÇϴµ¥ ÇÊ¿äÇÑ ¿¹»ó °æ°ú ½Ã°£¿¡
ºñ·ÊÇÕ´Ï´Ù.
½ÇÇà °èȹÀº ÁúÀÇ¿¡ ´ëÇØ À妽º¸¦ »ý¼ºÇÏ°í »ç¿ëÇϴµ¥ ÀÖ¾î ÀÌÁ¡ÀÌ µÉ °ÍÀÌ ¹«¾ùÀÎÁö °áÁ¤Çϴµ¥ µµ¿òÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.
Çö¸íÇÑ Æ©´×À¸·Î ÇöÀúÇÑ ¼º´É Çâ»óÀ» ÀÌ·ê ¼ö ÀÖ½À´Ï´Ù. SQL Trace³ª Autotrace¸¦ »ç¿ëÇÏ¿© ÀáÀçÀûÀ¸·Î Çâ»ó½Ãų ¼ö ÀÖ´Â ¿µ¿ªÀ»
È®ÀÎÇϽʽÿÀ.
ÁÖÀÇ: PLAN_TABLEÀÇ ¿¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¿¡ ´ëÇؼ´Â Oracle8 tuning,
Release 8.0 À» ÂüÁ¶ÇϽʽÿÀ.
¿©·¯ ´Ü°è Áß ÀϺΠ¼ø¼´Â SQL ¹® ¼º´ÉÀ» ÀûÀýÇÏ°Ô Áø´ÜÇϴµ¥ ÇʼöÀÔ´Ï´Ù.
init.ora
ÆÄÀÏ¿¡¼ 2°³ÀÇ ÆĶó¹ÌÅÍ´Â SQL ÃßÀû ±â´ÉÀ¸·ÎºÎÅÍ Ãâ·Â ÆÄÀÏÀÇ Å©±â¿Í ¸ñÀûÁö¸¦ Á¦¾îÇÕ´Ï´Ù. |
SQL Trace´Â ÀνºÅϽº ·¹º§À̳ª ¼¼¼Ç ·¹º§¿¡¼ ´Ù¸¥ ¹æ¹ýµéÀ» »ç¿ëÇÏ¿© È°¼ºÈ ¶Ç´Â ºñÈ°¼ºÈ·Î µÉ ¼ö ÀÖ½À´Ï´Ù.
ÀνºÅϽº ·¹º§
SQL_TRACE ÆĶó¹ÌÅ͸¦ ÀνºÅϽº ·¹º§¿¡¼ ¼³Á¤ÇÏ´Â °ÍÀº ÃßÀûÀ»
È°¼ºÈÇÏ´Â ÇÑ ¹æ¹ýÀÔ´Ï´Ù. ±×·¯³ª, ±×·¯±â À§Çؼ´Â ÀνºÅϽº¸¦ Á¾·áÇÑ ´ÙÀ½ ÃßÀûÀÌ ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀ» ¶§ Àç½ÃÀÛÇØ¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº
ÀνºÅϽº¿¡ ´ëÇÑ ¸ðµç ¼¼¼ÇÀÌ ÃßÀûµÇ±â ¶§¹®¿¡, ¼º´É¸é¿¡¼ ÇöÀúÇÑ Å¸°ÝÀ» ÁÝ´Ï´Ù.
¼¼¼Ç ·¹º§
¼¼¼Ç ·¹º§ ÃßÀûÀº ƯÁ¤ ¼¼¼ÇÀ» ÃßÀûÇÒ ¼ö Àֱ⠶§¹®¿¡ ÀüüÀûÀÎ ¼º´É¸é¿¡¼
¹Þ´Â Ÿ°ÝÀ» ÁÙÀÔ´Ï´Ù. SQL ¹®À» È°¼º ¶Ç´Â ºñÈ°¼ºÀ¸·Î ÇÏ´Â µ¥¿¡´Â ´ÙÀ½ÀÇ 3°¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù:
TKPROF¸¦ »ç¿ëÇÏ¿© ÃßÀû ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Â Ãâ·ÂÇüÅ·Î
Æ÷¸ËÇϽʽÿÀ.
Tkprof tracefile
outputfile [sort=option] [print=n] [explain=username/password] [insert=filename]
[sys=NO] [record=filename] [table=schema.tablename]
ÃßÀû ÆÄÀÏÀº USER_DUMP_DEST ÆĶó¹ÌÅÍ¿¡ ÀÇÇØ ÁöÁ¤µÈ µð·ºÅ丮¿¡¼ »ý¼ºµÇ¸ç, Ãâ·Â °á°ú´Â Ãâ·ÂÆÄÀÏ¸í¿¡ ÀÇÇÏ¿© ÁöÁ¤µÈ
µð·ºÅ丮¿¡ À§Ä¡ÇÕ´Ï´Ù.
TKPROF ¿É¼Ç
¿É¼Ç |
¼³¸í |
TRACEFILE |
ÃßÀû Ãâ·Â ÆÄÀϸí |
OUTPUTFILE |
Æ÷¸ËµÉ ÆÄÀϸí |
SORT=option |
¹®ÀåÀ» Á¤·ÄÇÏ´Â ¼ø¼ |
PRINT=n |
óÀ½ n°³ÀÇ ¹®Àå ÇÁ¸°Æ® |
EXPLAIN=user/password |
ÁöÁ¤µÈ »ç¿ëÀÚ¸íÀ¸·Î EXPLAIN PLAN ½ÇÇà |
INSERT=filename |
INSERT ¹® »ý¼º |
SYS=NO |
»ç¿ëÀÚ sys·Î¼ ½ÇÇàµÇ´Â ¼øȯÀû(recursive) SQL ¹® ¹«½Ã |
AGGREGATE=[Y|N] |
AGGREGATE=NO·Î ¼³Á¤ÇÑ °æ¿ì, TKPROF´Â µ¿ÀÏÇÑ SQL ÅؽºÆ®ÀÇ
º¹¼ö »ç¿ëÀÚ ¼ö¸¦ ÃÑÇÕÇÏÁö ¾ÊÀ½ |
RECORD=filename |
ÃßÀû ÆÄÀÏ¿¡¼ ¹ß°ßµÈ ¹®Àå ±â·Ï |
TABLE=schema.tablename |
½ÇÇà °èȹÀ» ƯÁ¤ Å×ÀÌºí¿¡ ¹èÄ¡ (µðÆúÆ®PLAN_TABLE ´ë½Å) |
¸ðµç ÀÌ¿ë°¡´ÉÇÑ ¿É¼Ç°ú Ãâ·Â°á°úÀÇ ¸ñ·ÏÀ» ¾ò±â À§ÇÏ¿© ¿î¿µÃ¼Á¦¿¡¼
tkprof¸¦ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÁÖÀÇ: Á¤·Ä ¿É¼ÇÀº ´ÙÀ½°ú °°½À´Ï´Ù.
Á¤·Ä ¿É¼Ç |
¼³¸í |
Prscnt, execnt, fchcnt |
±¸¹® ºÐ¼®, ½ÇÇà, ÆÐÄ¡°¡ È£ÃâµÈ Ƚ¼ö |
Prscpu, execpu, fchcpu |
±¸¹® ºÐ¼®, ½ÇÇà, ÆÐÄ¡ÀÇ CPU »ç¿ë ½Ã°£ |
Prsela, exela, fchela |
±¸¹® ºÐ¼®, ½ÇÇà, ÆÐÄ¡ÀÇ ÃѼҿä½Ã°£ |
Prsdsk, exedsk, fchdsk |
±¸¹® ºÐ¼®, ½ÇÇà, ÆÐÄ¡ µ¿¾È µð½ºÅ© Àбâ Ƚ¼ö |
Prsqry, exeqry, fchqry |
±¸¹® ºÐ¼®, ½ÇÇà, ÆÐÄ¡ µ¿¾È consistent Àб⠹öÆÛÀÇ °³¼ö |
Prscu, execu, fchcu |
±¸¹® ºÐ¼®, ½ÇÇà, ÆÐÄ¡ µ¿¾È current Àб⠹öÆÛÀÇ °³¼ö |
Prsmis, exemis |
±¸¹® ºÐ¼®, ½ÇÇà µ¿¾È ¶óÀ̺귯¸®Ä³½Ã miss Ƚ¼ö |
Exerow, fchrow |
½ÇÇà, ÆÐÄ¡ µ¿¾È ó¸®µÈ ÇàÀÇ ¼ö |
Userid |
Ä¿¼¸¦ ±¸¹® ºÐ¼®ÇÑ userid |
Åë°è |
ÀÇ¹Ì |
Count |
¹®ÀåÀÇ ±¸¹®ÀÌ ºÐ¼®µÇ°Å³ª ½ÇÇàµÇ°í ÆäÄ¡ È£ÃâÀÇ ¼ö°¡ ¹®Àå¿¡ ´ëÇØ ½ÇÇàµÇ´Â ȸ¼ö |
CPU |
°£ ´Ü°è¿¡ ´ëÇÑ Ã³¸® ½Ã°£, ÃʷΠǥ½Ã (¹®ÀåÀÌ °øÀ¯ Ç®¿¡¼ ¹ß°ßµÇ¸é,
±¸¹®ºÐ¼® ´Ü°è¿¡ ´ëÇÑ ½Ã°£Àº 0ÀÔ´Ï´Ù.) |
Elapsed |
°æ°ú ½Ã°£, ÃʷΠǥ½Ã (´Ù¸¥ ÇÁ·Î¼¼½º°¡ °æ°ú ½Ã°£¿¡ ¿µÇâÀ» ¹ÌÄ¡±â ¶§¹®¿¡, ÀÌ Åë°è´Â ÀϹÝÀûÀ¸·Î µµ¿òÀÌ µÇÁö ¾Ê½À´Ï´Ù. ) |
Disk |
µ¥ÀÌÅͺ£À̽º ÆÄÀÏ¿¡¼ ÀÐÇôÁø ¹°¸®Àû µ¥ÀÌÅÍ ºí·Ï (ÀÌ Åë°è´Â µ¥ÀÌÅÍ°¡ ¹öÆÛ¸µµÇ¸é, ²Ï ³·À» ¼öµµ ÀÖ½À´Ï´Ù.) |
Query |
ÀÏ°üµÈ Àб⸦ À§ÇÏ¿© °Ë»öµÈ ³í¸®Àû ¹öÆÛ (ÀϹÝÀûÀ¸·Î SELECT ¹®¿¡ ´ëÇØ) |
Current |
ÇöÀç ¸ðµå¿¡¼ °Ë»öµÈ ³í¸®Àû ¹öÆÛ (ÀϹÝÀûÀ¸·Î DML ¹®¿¡ ´ëÇØ) |
Rows |
´Ù¸¥ ¹®Àå¿¡ ÀÇÇÏ¿© 󸮵Ǵ ¿ (SELECT¹®ÀÇ °æ¿ì, ÀÌ Åë°è´Â ÆäÄ¡ ´Ü°è¿¡ ´ëÇØ Ç¥½ÃµÇ°í, DML ¹®ÀÇ °æ¿ì ½ÇÇà ´Ü°è¿¡ ´ëÇØ Ç¥½ÃµË´Ï´Ù) |
Query¿Í CurrentÀÇ ÇÕ°è´Â ¾×¼¼½ºµÇ´Â ³í¸®Àû ¹öÆÛÀÇ ÃÑ
ÇÕ°èÀÔ´Ï´Ù.
call
count cpu elapsed
disk query current rows
----
----- ---- -------
---- ----- ------- ----
Parse
2 0.11
0.22 00
0
2 0
Execute 4 0.00
0.00 00
0
4
0
Fetch
428 0.00
0.06 600
806 808
6400
---- ----- ----
------- ---- -----
------- ----
total
434 0.11
0.28 600
806 814
6400
¹®ÀåÀÇ ¼º´É °Ë»ç
TKPROF·ÎºÎÅÍÀÇ ´Ù¸¥ Ãâ·Â °á°ú
AUTOTRACE´Â SQL Trace ´ë½Å »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. AUTOTRACE¸¦ »ç¿ëÇÏ¿© ¾ò´Â
ÀÌÁ¡Àº ÃßÀû ÆÄÀÏÀ» Æ÷¸ËÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸ç, AUTOTRACE°¡ SQL ¹®¿¡ ´ëÇÑ ½ÇÇà°èȹÀ» ÀÚµ¿À¸·Î Ç¥½ÃÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
±×·¯³ª,
AUTOTRACE´Â ¼³¸í°èȹÀÌ ¹®ÀåÀÇ ±¸¹®¸¸ ºÐ¼®ÇÏ´Â °÷¿¡¼ ¹®ÀåÀÇ ±¸¹®À» ºÐ¼®ÇÏ°í ½ÇÇàÇÕ´Ï´Ù.
AUTOTRACE »ç¿ëÀ» À§ÇÑ
´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù:
ºñÈ¿À²ÀûÀÎ SQL ¹®ÀÇ Áõ»ó
SQL¹®Àº ¿©·¯ °¡Áö ÀÌÀ¯·Î ÀÎÇÏ¿© À߸ø ½ÇÇàµË´Ï´Ù.
°¡Àå ÀϹÝÀûÀÎ ÀÌÀ¯ Áß ÀϺδ ´ÙÀ½°ú °°½À´Ï´Ù.
¿ÉƼ¸¶ÀÌÀú°¡ À妽º¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù
¿ÉƼ¸¶ÀÌÀú°¡ ºñ·Ï ´õ È¿À²ÀûÀÌÁö¸¸, À妽º¸¦
»ç¿ëÇÒ ¼ö ¾ø´Â »óȲÀÌ ¸¹ÀÌ ÀÖ½À´Ï´Ù. SQL ¹®À» °Ë»çÇÏ¿© À妽º¸¦ »ç¿ëÇϵµ·Ï ÀçÀÛ¼ºÇÏ¿©¾ß ÇÕ´Ï´Ù.
¹®Àå¿¡ Æ®¸®±¸Á¶(Tree Walk)°¡ Æ÷ÇԵǾî ÀÖ´Ù
Æ®¸®±¸Á¶´Â CONNECT
BYÀýÀ» »ç¿ëÇÏ¿© °èÃþÇü½ÄÀ¸·Î ÀúÀåµÈ Å×ÀÌÅ͸¦ °Ë»öÇÕ´Ï´Ù. Æ®¸®±¸Á¶¸¦ »ç¿ëÇÏ¿©¾ß ÇÒ °æ¿ì, START WITH¿Í CONNECT BY Àý¿¡ ÀÖ´Â
¿¿¡ À妽º¸¦ ¼³Á¤ÇϽʽÿÀ.
¹®Àå¿¡ ±×·ì ÇÔ¼ö°¡ Æ÷ÇԵǾî ÀÖ´Ù
´ÙÀ½°ú °°Àº 2°¡Áö ¹®Á¦°¡ ÀÖÀ» ¼ö
ÀÖ½À´Ï´Ù:
¹®Àå¿¡ DISTINCT Å°¿öµå°¡ Æ÷ÇԵǾî ÀÖ´Ù
DISTINCT¸¦ »ç¿ëÇÒ ¶§,
µ¥ÀÌÅÍ´Â Á¤·ÄµË´Ï´Ù. ¹®ÀåÀÌ ¸¹Àº ÇàÀ» ¼±ÅÃÇÒ °æ¿ì, ¼¹ö´Â Àӽà ¼¼±×¸ÕÆ®¸¦ »ý¼ºÇÏ¿© °³º° Á¤·Ä ½ÇÇàÀ» ó¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº I/O ¹×
ó¸® ¿À¹öÇìµå¸¦ ¾ß±â½ÃÅ°±â ¶§¹®¿¡, ÀÌ°ÍÀ» ÇÇÇØ¾ß ÇÕ´Ï´Ù.
¹®ÀåÀÌ º¹ÇÕ ºä¸¦ ±âº»À¸·Î ÇÏ°í ÀÖ´Ù.
ºä¸¦ »ç¿ëÇÒ ¶§, ºä¸¦ ÁúÀÇ¿Í ÅëÇÕÇÏ¿©
󸮵Ǵ ÇàÀÇ ¼ö¸¦ Á¦ÇÑÇÏ°íÀÚ ÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ºäÀÇ ÀϺΰ¡ µÇ´Â ¿À» °Ë»öÇϱâ À§ÇÏ¿© ÁúÀÇ°¡ Å×À̺íÀ» ºÒÇÊ¿äÇÏ°Ô ¾×¼¼½ºÇÏÁö ¾Êµµ·Ï º¸ÀåÇؾß
ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, Å×À̺íÀ» Á÷Á¢ ÁúÀÇÇÏ¿© ¿À» °Ë»öÇÒ °ÍÀÔ´Ï´Ù.
´ëü ÁúÀÇ
¿øÇÏ´Â °á°ú¸¦ Á¦°øÇÏ´Â SQL ¹®Àº ¿©·¯ °³°¡ ÀÖÀ» ¼ö ÀÖ´Ù´Â »ç½ÇÀ»
¸í½ÉÇϽʽÿÀ. °¢ ¹®ÀåÀº ´Ù¸¥ ¾×¼¼½º °æ·Î¸¦ »ç¿ëÇÏ¿© ´Ù¸£°Ô ¼öÇàµÉ ¼ö ÀÖ½À´Ï´Ù. DBA¿Í °³¹ßÀÚ ¸ðµÎ ´Ù¸¥ ÁúÀǵéÀ» »ç¿ëÇÏ¿© µ¿ÀÏÇÑ °á°ú¸¦
»êÃâÇÒ ¼ö ÀÖ´Â ¹æ¹ý¿¡ Àͼ÷ÇØ¾ß ÇÕ´Ï´Ù.
¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×¿¡´Â ¶ÇÇÑ ÆÐÅ°Áö, ÇÁ·Î½ÃÀú, Æ®¸®°Å¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. °¢ À¯ÇüÀÇ
PL/SQL °´Ã¼°¡ ¿À¶óŬ ³»¿¡ ÄÄÆÄÀÏµÈ ÇüÅ·ΠÀúÀåµÇ¾î ÀÖ´Ù´Â »ç½Ç ¶§¹®¿¡ »ç¿ë¹æ¹ýÀ» Æ©´×ÇÒ ÇÊ¿ä°¡ ¾ø´Â °ÍÀº
¾Æ´Õ´Ï´Ù.
°´Ã¼´Â ±¸¹®ÀÌ ºÐ¼®µÈ ´ÙÀ½, °øÀ¯ Ç®¿¡ ij½¬µÇ¾î ±¸¹®ºÐ¼®µÈ ¹öÀüÀÌ Àç»ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, °´Ã¼°¡ °øÀ¯ Ç®¿¡¼ ¿À·¡µÇ¾î ¹Ð·Á³ª°¥ °æ¿ì,
½ÇÇàµÉ ¶§ ´Ù½Ã ±¸¹® ºÐ¼®À» ÇØ¾ß µÇ±â ¶§¹®¿¡, ¼º´É¿¡ Ÿ°ÝÀ» ÁÖ°Ô µË´Ï´Ù.
°´Ã¼¸¦ °øÀ¯ Ç®¿¡ °íÁ¤ÇÒ ¼ö Àִµ¥, ÀÌ°ÍÀº
¿À·¡µÇ¾îµµ »èÁ¦µÇÁö ¾Êµµ·Ï º¸ÀåÇϱ⠶§¹®¿¡, ÀÚ¿ø ºñ¿ëÀÌ ¸¹ÀÌ µå´Â ±¸¹®ºÐ¼® ÀÛ¾÷À» ÃÖ¼ÒÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾ÖÇø®ÄÉÀ̼Ç
°³¹ßÀÚ³ª DBA´Â ±×·¯ÇÑ PL/SQL ÇÁ·Î½ÃÀúÀÇ »ç¿ëÀ» ÃßÀûÇÏ¿© °øÀ¯µÇ´Â ¿À¶óŬ ±¸Á¶¸¦ È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï º¸ÀåÇÒ ¼ö
ÀÖ½À´Ï´Ù.
µ¿ÀûÀÎ ¼º´É ºä
µ¿ÀûÀÎ ¼º´É ºä¸¦ ÁúÀÇÇÏ¿© ÇöÀç ¼¼¼ÇÀ̳ª ÀνºÅϽº¿¡ °üÇÑ Á¤º¸¸¦
¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
µ¥ÀÌÅÍ µñ¼Å³Ê¸® ºä
¸¹Àº µ¥ÀÌÅÍ µñ¼Å³Ê¸® ºä´Â °´Ã¼ ¹× Åë°è¿¡
°üÇÑ Á¤º¸¸¦ ¾ò±â À§ÇÏ¿© ÁúÀÇµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌµé ºä·Î´Â USER_*, ALL_*, DBA_* ºä°¡ ÀÖ½À´Ï´Ù. ¿¹·Î, USER_TABLES,
ALL_TABLES, DBA_TABLES, USER_INDEXES, ALL_INDEXES, DBA_INDEXES µî ÀÔ´Ï´Ù.
ÂüÁ¶
¹®¸Æ |
ÂüÁ¶ |
ÃʱâÈ ÆĶó¹ÌÅÍ |
HASH_AREA_SIZE |
µ¿ÀûÀÎ ¼º´É ºä |
V$MYSTAT |
µ¥ÀÌÅÍ µñ¼Å³Ê¸® ºä |
´Ù¾çÇÑ USER_*, ALL_*, DBA_* ºäµé |
¸í·É¾î |
ALTER SYSTEM |
ÇÁ·Î½ÃÀú |
SYS.DBMS_SESSION.SET_SQL_TRACE |