Ȩ > ÀÚ·á½Ç > News Letter
 
Download
News Letter
Site Link
XpertMon ´º½º·¹ÅÍ 30È£
2007/03/22 10:30 9967


¾È³çÇϼ¼¿ä. DB2 ¹× XpertMon »ç¿ëÀÚ ¿©·¯ºÐ!
¢ß ¾ÆÀÌƼ¿¢½ºÆÛÆ®±×·ì DB »ç¾÷ºÎÀÔ´Ï´Ù.
À̹øÁÖ´Â XpertMon À» ÀÌ¿ëÇÑ DB2 UDB OLTP Æ©´× ¸¶Áö¸· ½Ã°£À¸·Î , ¹®Á¦ Äõ¸®¸¦ ã¾Æ³»¾î
Äõ¸®¸¦ Æ©´×ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íµå¸®µµ·Ï ÇÏ°Ú½À´Ï´Ù.


XpertMon À» ÀÌ¿ëÇÑ DB2 UDB OLTP Tuning III

Database Query Optimizer
DB2 UDB´Â µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϴµ¥ À־ ÃÖÀûÀÇ ¹æ¹ýÀ» ã¾Æ³»´Â ºñ¿ë±â¹ÝÀÇ °­·ÂÇÑ
Äõ¸® ¿ÉƼ¸¶ÀÌÀú¸¦ °®°í ÀÖ½À´Ï´Ù. Äõ¸® ¿ÉƼ¸¶ÀÌÀú´Â ¿ø¹® Äõ¸®¸¦ ÃÖÀûÈ­µÈ ÇüÅÂÀÇ Äõ¸®·Î
ÀçÀÛ¼ºÇÏ°í, ´Ù¾çÇÑ Äõ¸® ½ÇÇà °èȹ »ý¼º ¹× °¢°¢ÀÇ CPU, ¸Þ¸ð¸®, I/O ¸ðµ¨¸µÀ» ÅëÇØ
ÃÖ¼ÒÀÇ ºñ¿ëÀ» °®´Â ¿¢¼¼½º Ç÷£À» ¼±ÅÃÇÕ´Ï´Ù.

Catalog Åë°è Á¤º¸
Äõ¸® ¿ÉƼ¸¶ÀÌÀú´Â SYSSTAT Ä«Å»·Î±× ºä¸¦ ÅëÇØ µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ® Åë°èÁ¤º¸¸¦
»ç¿ëÇÏ¿© µ¥ÀÌÅÍ¿¡ ¿¢¼¼½ºÇÏ´Â ÃÖÀûÀÇ °æ·Î¸¦ ã¾Æ³À´Ï´Ù. ¸¸¾à ÇöÀç Åë°èÁ¤º¸°¡ ¾ø´Ù¸é,
¿ÉƼ¸¶ÀÌÀú´Â ºÎÁ¤È®ÇÑ Åë°èÁ¤º¸¸¦ °¡Áö°í ºñÈ¿À²ÀûÀÎ ¿¢¼¼½º Ç÷£À» ¼±ÅÃÇÒÁöµµ ¸ð¸¨´Ï´Ù.

±âº»ÀûÀ¸·Î »õ·Î µ¥ÀÌÅͺ£À̽º°¡ »ý¼ºµÇ¸é runstats ¸í·ÉÀÌ ¼öÇàµÉ ¶§±îÁö µ¥ÀÌÅͺ£À̽ºÀÇ
¿ÀºêÁ§Æ®¿¡ ´ëÇÑ Åë°èÁ¤º¸´Â ¼öÁýµÇÁö ¾Ê½À´Ï´Ù. Ä«Å»·Î±× Åë°èÁ¤º¸°¡ ¼öÁýµÇÁö ¾Ê¾Ò´Ù¸é
SYSSTATÄ«Å»·Î±× ºäÀÇ CARD, NPAGES, FPAGES °°Àº Ä®·³ÀÇ °ªÀº -1 ·Î ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù.

- Runstats ¼öÇà ¿©ºÎ È®ÀÎ

¸¶Áö¸· runstats ¸í·ÉÀÌ ¼öÇàµÈ ÀÌÈÄ, ¸¹Àº update ÀÛ¾÷ÀÌ ÀϾ°Å³ª, »õ·Î¿î À妽º°¡
»ý¼ºµÈ °æ¿ì runstats ¸í·ÉÀ» ´Ù½Ã ¼öÇàÇÏ¿© ÇöÀçÀÇ Å×ÀÌºí ¹× À妽ºÀÇ Åë°èÁ¤º¸¸¦
°»½ÅÇØ ÁÖ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
ÀÌ´Â ¿ÉƼ¸¶ÀÌÀú·Î ÇÏ¿©±Ý Á¤È®ÇÑ Åë°èÁ¤º¸¸¦ °¡Áö°í ÃÖÀûÀÇ ¿¢¼¼½º Ç÷£À» ¼±ÅÃÇÒ ¼ö
ÀÖ°Ô Çϱ⠶§¹®ÀÔ´Ï´Ù.
- Catalog Component¸¦ ÀÌ¿ëÇÑ Runstats ¼öÇà

¶§·Î´Â µ¥ÀÌÅͺ£À̽º ³»ÀÇ ¸ðµç Å×ÀÌºí¿¡ ´ëÇØ runstats ¸í·ÉÀ» ¼öÇàÇØ¾ß ÇÒ ¶§µµ ÀÖ½À´Ï´Ù.
ÀÌ·² °æ¿ì °¡Àå °£ÆíÇÑ ¹æ¹ýÀº reorgchk ¸í·ÉÀ» »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.

% db2 reorgchk update statistics on table all

ÇöÀç Å×ÀÌºí ¹× À妽ºÀÇ Åë°èÁ¤º¸°¡ ÃÖ½ÅÀÇ °ÍÀÎÁö È®ÀÎÇÏ°í ½ÍÀ» ¶§´Â ¾Æ·¡ÀÇ ¸í·ÉÀ»
¼öÇàÇÏ¿© Åë°èÁ¤º¸°¡ ¼öÁýµÈ ½Ã°£À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
- Runstats ¼öÇà¿©ºÎ È®ÀÎ

¸¸¾à runstats°¡ ¼öÇàµÇÁö ¾Ê¾Ò´Ù¸é stats_time Ä®·³ÀÇ °ªÀ¸·Î ¡®-¡® °¡ ³ª¿Ã °ÍÀÔ´Ï´Ù.
Åë°èÁ¤º¸°¡ ¼öÁýµÇ¾ú´Ù¸é runstats°¡ ¼öÇàµÈ ½Ã°£¼ÒÀÎÀÌ ÂïÈü´Ï´Ù.

¹®Á¦ Äõ¸® ã¾Æ³»±â
ÇÑ application¾È¿¡¼­ ¼ö¹é °³ÀÇ ´Ù¸¥ SQLÀÌ µ¹¾Æ°¥ ¼ö ÀÖ½À´Ï´Ù. À̶§ ¾î´À ÇÑ SQLÀÌ
À߸ø ÄÚµùµÇ¾ú°Å³ª, Á¦´ë·Î Æ©´×ÀÌ µÇÁö ¾Ê¾ÒÀ» °æ¿ì Àüü ½Ã½ºÅÛÀÇ ¼º´É¿¡ ¿µÇâÀ»
ÁÙ ¼ö ÀÖ½À´Ï´Ù. ¾î¶»°Ô ÀÌ·± ³ª»Û Äõ¸®¸¦ ã¾Æ ³¾ ¼ö ÀÖÀ»±î¿ä?
dynamic SQL statement ½º³À¼¦ÀÌ application ¿¡¼­ µ¹¾Æ°¡´Â dynamic SQL ¹®Àå¿¡ ´ëÇÑ
Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.
XpertMon Àº Report Component ¸¦ ÀÌ¿ëÇÏ¿© ¹®Á¦ Äõ¸®¸¦ ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.
¾Æ·¡¿Í °°ÀÌ Report ¿¡¼­ SQL Report ¸¦ Ŭ¸¯ÇÏ¿© µ¥ÀÌÅ͸¦ ¼öÁýÇÕ´Ï´Ù.
- Report ±â´É ON È­¸é

Report ¸¦ ON ÇÏ¿´À¸¸é Å×½ºÆ®¿¡ »ç¿ëµÇ´Â ÇÁ·Î±×·¥ performer¸¦ ¾Æ·¡¿Í °°ÀÌ ¼öÇàÇÕ´Ï´Ù.
$ java performer
$ java performer

- SQL Report °á°ú È­¸é

ÃÑ 4°³ÀÇ SQL ÀÌ ¼öÇàµÇ¾úÀ½À» º¼ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ È­¸éÀº Top CPU Timeº° SQL È­¸éÀÔ´Ï´Ù.
ÃÑ 4°³ÀÇ SQL Àº ´ÙÀ½°ú °°½À´Ï´Ù.
  • SELECT NAME, BALANCE FROM ACCOUNT WHERE ACCT_ID =46401
  • SELECT NAME, BALANCE FROM ACCOUNT WHERE ACCT_ID =85593
  • UPDATE ACCOUNT SET BALANCE = ? WHERE ACCT_ID = ?
  • INSERT INTO AUDITLOG VALUES (?,?,?,?,?)
À§ÀÇ Äõ¸® Áß Ã³À½ 2°³´Â where ÀýÀÇ ACCT_ID °ªÀ» Á¦¿ÜÇÑ ³ª¸ÓÁö´Â µ¿ÀÏÇÕ´Ï´Ù.
PERFORMER ÇÁ·Î±×·¥¿¡¼­´Â ÆĶó¹ÌÅÍ ¸¶Ä¿- ¡®?¡¯ -¸¦ »ç¿ëÇÏÁö ¾Ê¾Ò½À´Ï´Ù.
µû¶ó¼­ ÀÌ µÎ select ¹®ÀåÀº ¿ÉƼ¸¶ÀÌÀú°¡ ´Ù¸¥ SQL·Î °£ÁÖÇÏ¿© º°µµ·Î compile µÇ°í
Ãß°¡ÀÇ ¿À¹öÇìµå°¡ ¹ß»ýÇÏ°Ô µË´Ï´Ù.
¹Ý¸é¿¡ insert ¹®Àå°ú UPDATE ¹®ÀåÀº ÆĶó¹ÌÅÍ ¸¶Ä¿¸¦ »ç¿ëÇß½À´Ï´Ù.
µû¶ó¼­ °°Àº ¹®ÀåÀ¸·Î °£ÁÖÇÏ¿© STMT COUNT ¿¡ º¸¸é 2¹ø ¼öÇàÇÑ °ÍÀ¸·Î ³ªÅ¸³ª´Â °ÍÀ»
º¼ ¼ö ÀÖ½À´Ï´Ù.
ÀÌÁ¦ ¹®Á¦ SQL ¹®ÀåÀ» ã¾Æ³» º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
¼öÇà½Ã°£ÀÌ ¸¹Àº ¼ø¼­´ë·Î Report °á°ú¸¦ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
- ¼öÇà½Ã°£º° Top SQL
°¡Àå ¼öÇà½Ã°£ÀÌ ±æ¾ú´ø SQL Àº À§ÀÇ º¸ÀÌ´Â SQL À̸ç, 1¹ø ¼öÇàµÇ¾ú°í, ¼öÇà½Ã°£Àº
0.24ÃÊÀÔ´Ï´Ù. Æò±Õ ¼öÇà½Ã°£ÀÌ 0.24 ÃÊ·Î ÀÌ Äõ¸®´Â º¸±âº¸´Ù´Â ±×¸® ³ª»Ú°Ô º¸ÀÌÁö
¾Ê½À´Ï´Ù¸¸ ÀÌ Äõ¸®¸¦ Á» ´õ ´Ùµë¾î º¼ ¼ö ÀÖÀ»±î¿ä?
ÀÐÀº Çà¼ö(100,000°Ç) ÀÎ °ÍÀ¸·Î º¸¾Æ Å×ÀÌºí ½ºÄµÀÌ ÀϾ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

Access Plan ¿¡ ´ëÇÑ ÀÌÇØ
¿¢¼¼½º Ç÷£ ÀÚü¸¦ ÀÌÇØÇÏ°í ´À¸° SQLÀÇ ±Ù¿øÀ» ¹àÇô ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ
¾Ë¾Æº¸°Ú½À´Ï´Ù.¾Õ¿¡¼­ ã¾Æ³½ ¹®Á¦ Äõ¸®¹®ÀåÀÇ ¿¢¼¼½º Ç÷£À» ÅëÇØ ¿¢¼¼½º Ç÷£ÀÇ ±âº»¿¡
´ëÇØ ¼³¸í µå¸®°Ú½À´Ï´Ù.
Report È­¸é¿¡¼­ ¿À¸¥ÂÊ ¸¶¿ì½º¸¦ ´©¸£¸é Explain À» ¹Ù·Î ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
Explain ¸Þ´º¸¦ ´©¸£¸é Explain Component ·Î À̵¿Çϸ鼭 ÇØ´ç SQL ÀÇ Access Plan À»
º¼ ¼ö ÀÖ½À´Ï´Ù.
- SQL Report °á°ú¿¡¼­ ¹Ù·Î Explain À» ¼öÇàÇÏ´Â È­¸é

- Explain Component ? Access Plan ±âº» È­¸é

À§ÀÇ È­¸éÀÌ Explain ÀÇ ±âº» È­¸éÀÔ´Ï´Ù.
È­¸é »ó´ÜÀº Access Plan À» º¸¿©ÁÖ¸ç, È­¸é ÇÏ´ÜÀº Access Plan À» ºÐ¼®Çϴµ¥ ÇÊ¿äÇÑ
»ó¼¼Á¤º¸¸¦ ³ªÅ¸³À´Ï´Ù.
¿ø Äõ¸® ¹®Àå°ú ¿ÉƼ¸¶ÀÌÀú¿¡ ÀÇÇØ ´Ù½Ã ¾²¿©Áø Äõ¸®¹®Àåµµ º¸¿©ÁÝ´Ï´Ù.
- Rewrite Query È­¸é
Access Plan È­¸é¿¡¼­ ³ªÅ¸³ª´Â Operator¿¡ ´ëÇؼ­ ¼³¸íÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

¾ÕÀÇ 0] 1]Àº ¼ø¼­ÀÔ´Ï´Ù. ¾Æ·¡ºÎÅÍ À§ÀÇ ¼ø¼­·Î ¼öÇàµÈ °ÍÀÔ´Ï´Ù.
[3482.516] Àº cost·Î¼­ ÀÌÀü ´Ü°èÀÇ ºñ¿ë¿¡ CPU ÄÚ½ºÆ®¸¦ Ãß°¡ÇÑ ´©ÀûÄ¡¸¦ º¸¿©ÁÝ´Ï´Ù.
cost ÀÇ ´ÜÀ§´Â timeron ÀÔ´Ï´Ù. timeronÀº ½ÇÁ¦ ¼Ò¿ä½Ã°£°ú´Â Á÷Á¢ÀûÀÎ ºñ±³´ë»óÀÌ
¾Æ´ÏÁö¸¸, µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ ÇÊ¿ä·Î ÇÏ´Â ÀÚ¿øÀÇ ÃßÁ¤Ä¡¿Í ´ë·«ÀûÀÎ ¿¬°üÀÌ
ÀÖ½À´Ï´Ù.
¿©±â¼­ »ìÆ캼 ¿¢¼¼½º Ç÷£ operator ÀÇ °£·«ÇÑ ¼³¸íÀÔ´Ï´Ù.
  • Data Operation Complete : Äõ¸®¿¡¼­ »ç¿ëÀÚ¿¡°Ô µ¥ÀÌÅÍ°¡ ¹ÝȯµÊÀ» ÀǹÌÇÕ´Ï´Ù.
  • Fetch Table Data: ƯÁ¤ ·¹ÄÚµå ID¸¦ ÀÌ¿ëÇØ Å×À̺í·ÎºÎÅÍ Ä®·³À» Àü´ÞÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
  • Table Scan : µ¥ÀÌÅÍ ÆäÀÌÁö·ÎºÎÅÍ ÇÊ¿äÇÑ ¸ðµç µ¥ÀÌÅ͸¦ Á÷Á¢ ÃßÃâÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
  • Index Scan : ÃÖÀûÈ­µÈ ½ÃÀÛ/Á¾·á Á¶°ÇÀ» ÅëÇØ Å×À̺íÀÇ À妽º¸¦ Á¶È¸Çؼ­, Á¤·ÄµÈ µ¥ÀÌÅÍ È帧À» »ý¼ºÇÕ´Ï´Ù.
Hint ±â´ÉÀ» ÀÌ¿ëÇÏ¸é ¸ðµç Operator ¿¡ ´ëÇÑ ¼³¸íÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
- Operator ¿¡ ´ëÇÑ Hint È­¸é

Table Scan VS. Index Scan
¿ÉƼ¸¶ÀÌÀú´Â ÀûÀýÇÑ À妽º°¡ ¾ø°Å³ª À妽º ½ºÄµÀÌ ºñ¿ëÀÌ ´õ ¸¹À» °æ¿ì ÀϹÝÀûÀ¸·Î
Å×ÀÌºí ½ºÄµÀ» ¼±ÅÃÇÕ´Ï´Ù. Å×À̺íÀÇ Å©±â°¡ À۰ųª À妽º Ŭ·¯½ºÅÍ ºñÀ²ÀÌ ³·Àº °æ¿ì,
¶Ç´Â Äõ¸®°¡ Å×ÀÌºí³»ÀÇ °ÅÀÇ ¸ðµç µ¥ÀÌÅ͸¦ ¿ä±¸ÇÒ °æ¿ì À妽º ½ºÄµÀÇ ºñ¿ëÀÌ
´õ ³ôÀ» ¼ö ÀÖ½À´Ï´Ù.
ÀÌÀüÀÇ ¿¢¼¼½º Ç÷£¿¡¼­ select ¹®ÀåÀÇ ÃÑ ºñ¿ëÀº 3482.516 timeron À̾ú½À´Ï´Ù.
´Ü ÇÑ°ÇÀÇ µ¥ÀÌÅ͸¸À» ¿øÇÏ´Â select ¹®Àå¿¡ À־ Å×ÀÌºí ½ºÄµÀº ºñ¿ëÀÌ Å©´Ù°í ÆǴܵ˴ϴÙ.
Å×ÀÌºí ½ºÄµ´ë½Å À妽º ½ºÄµÀ» »ç¿ëÇÑ´Ù¸é ¼º´ÉÀÌ Á» ´õ ³ª¾ÆÁú ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
À妽º¸¦ »ý¼ºÇÏ°í Performer ÇÁ·Î±×·¥À» ¼öÇàÇؼ­ ¼öÇà½Ã°£À» ºñ±³Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÌÁ¦ ACCOUNT Å×ÀÌºí¿¡ À妽º¸¦ »ý¼ºÇÏ°Ú½À´Ï´Ù.
¾Æ·¡¿Í °°ÀÌ Index Information ¿¡¼­ ¿À¸¥ÂÊ ¸¶¿ì½º¸¦ ´©¸£¸é ¡°Create Index¡± ¸Þ´º¸¦
ÅëÇؼ­ À妽º¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

- SQL Runner ¸¦ ÀÌ¿ëÇÏ¿© Index ÀÛ¼º

¿ÉƼ¸¶ÀÌÀú°¡ »õ·Ó°Ô »ý¼ºµÈ À妽º¸¦ ÀνÄÇϵµ·Ï runstats¸¦ ¼öÇàÇÕ´Ï´Ù.
Catalog Component ¸¦ ÀÌ¿ëÇÏ¿© ¼öÇàÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
- Runstats ¼öÇà

Explain Component¸¦ ÀÌ¿ëÇÏ¿© ´Ù½Ã Access PlanÀ» ¼öÇàÇغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
»õ·ÎÀÌ »ý¼ºµÈ Access Plan ÀÔ´Ï´Ù.
- »õ·Î¿î Access Plan
acct_id Ä®·³¿¡ À妽º¸¦ »ý¼ºÇÑ µÚ ºñ¿ëÀÌ 3482.516 ¿¡¼­ 38.643 timeron À¸·Î ¶³¾îÁø
°ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
- SQL Report °á°ú
À妽º »ý¼ºÈÄ PERFORMER ÇÁ·Î±×·¥À» ¼öÇàÇÑ °á°ú¿¡¼­µµ Elapsed time ÀÌ 0.24ÃÊ¿¡¼­
0.01ÃÊ·Î ÁÙ¾îµé¾úÀ¸¸ç, Row Read °Ç¼öµµ 100,000°Ç¿¡¼­ 1°ÇÀ¸·Î ÁÙ¾úÀ½À» º¼ ¼ö ÀÖ½À´Ï´Ù.


XpertMon for DB2 UDB V2
DB »ç¾÷ºÎ
Tel : 02-2108-1458
Fax : 02-2108-1459
Mobile : 011-896-6545
E-mail : hjlee@iteg.co.kr
URL : http://iteg.co.kr

¸ñ·Ï ±Û¾²±â ¼öÁ¤