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


¾È³çÇϼ¼¿ä. DB2 ¹× XpertMon »ç¿ëÀÚ ¿©·¯ºÐ!
¢ß ¾ÆÀÌƼ¿¢½ºÆÛÆ®±×·ì DB »ç¾÷ºÎÀÔ´Ï´Ù.
Àú¹øÁÖ¿¡ ¸»¾¸µå¸°´ë·Î ÇöÀç XpertMon ¾÷±×·¹À̵å ÀÛ¾÷ÀÌ ÁøÇàÁßÀÔ´Ï´Ù.
±×µ¿¾È °í°´¿©·¯ºÐÀÌ ¿äûÇϼ̴ø ¸¹Àº »çÇ×µéÀÌ Ãß°¡µÉ ¿¹Á¤ÀÔ´Ï´Ù. ±â´ëÇØ ÁֽʽÿÀ.
À̹øÁÖ¿Í ´ÙÀ½ÁÖ¿¡´Â V8.2 ¿¡¼­ »õ·ÎÀÌ º¯È­µÈ Runstats ¿¡ ´ëÇØ ´Ù·ïº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
Runstats ÀÇ Á߿伺Àº ¸ðµÎ ¾Æ½ÃÁÒ?
±×·³ ¸¹Àº µµ¿òÀÌ µÇ½Ã±æ ¹Ù¶ó¸ç ÇÑÁÖ°£ °Ç°­ÇϽʽÿÀ.


V8.2 ¿¡¼­ÀÇ Runstats I
Runstats ÀÇ Á߿伺
DB2 optimizer´Â ÃÖ¼±ÀÇ access path¸¦ °áÁ¤Çϱâ À§ÇØ catalog Åë°è¸¦ »ç¿ëÇÕ´Ï´Ù.
±×¸®°í catalogÅë°è¸¦ °»½ÅÇÏ´Â ÁÖµÈ ¹æ¹ýÀº Runstats utility¸¦ ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù.
User Å×À̺íÀÇ º¯È­°¡ ÀÖÀ» ¶§ catalog Åë°è Å×À̺íÀº ÀÚµ¿ÀûÀ¸·Î ¼öÁ¤µÇÁö ¾Ê½À´Ï´Ù.
Runstats ¸í·É¾î¸¦ ¼öÇàÇϸé Å×ÀÌºí¿¡ ´ëÇÑ °¡Àå ¸¶Áö¸· Á¤º¸¸¦ Catalog Å×ÀÌºí¿¡ ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù.
Runstats °¡ ¼öÇàµÇ¾ú´ÂÁö ¿©ºÎ´Â ¾Æ·¡ Ä÷³À» Á¶È¸Çغ¸¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù.
¼öÇàµÇÁö ¾ÊÀº °æ¿ì´Â,
  • syscat.tables ÀÇ CARD= -1 ȤÀº STATS_TIME is NULL ( Å×ÀÌºí¿¡ ´ëÇØ ¹Ì½ÇÇà)
  • syscat.indexes ÀÇ NLEAF=-1 ȤÀº NLEVELS= -1 ȤÀº FULLKEYCARD = -1 ȤÀº STATS_TIME is NULL ( À妽º¿¡ ´ëÇØ ¹Ì½ÇÇà)

Runstats ¼öÇà ½ÃÁ¡
´ÙÀ½°ú °°Àº °æ¿ì¿¡´Â Å×À̺í°ú À妽º¿¡ ´ëÇÑ Runstats ¸¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
  • Å×ÀÌºí¿¡ µ¥ÀÌÅÍ°¡ LOADµÇ°í ÀûÇÕÇÑ À妽º°¡ »ý¼ºµÈ ÈÄ - LOADÇϱâ Àü¿¡ À妽º¸¦ »ý¼ºÇÏ°í LOADÇÏ´Â µ¿¾È Åë°è¸¦ ¼öÁýÇÏ´Â °ÍÀÌ ´õ ³ªÀ½
  • »õ·Î¿î À妽º¸¦ »ý¼ºÇÑ ÈÄ
  • REORG Utility·Î Å×À̺íÀ» À籸¼ºÇÑ ÈÄ
  • Å×À̺í°ú À妽º¿¡ ´ë±Ô¸ðÀÇ INSERT, DELETE, UPDATE°¡ ¹ß»ýÇÑ ÈÄ
  • Prefetch Size°¡ º¯°æµÈ ÈÄ
  • Redistribute Database Partition Group Utility°¡ ½ÇÇàµÈ ÈÄ
Runstats ÀüÈÄ º¯°æ»çÇ×Àº Query Explain ÀÇ °á°ú°ªÀ» ºñ±³Çϸ鼭 ¾Ë ¼ö ÀÖ½À´Ï´Ù.
Runstats ¼öÇàÈÄ¿¡´Â Statistics SQLÀ» Æ÷ÇÔÇÑ Package¸¦ REBIND ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
db2rbind ¸í·É¾î¸¦ ¼öÇàÇÏ¸é µ¥ÀÌÅͺ£À̽º ³»ÀÇ ¸ðµç ÆÐÅ°Áö¸¦ Rebind ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ ÇöÀç Package Cache³»¿¡ ÀÖ´Â ¸ðµç ÀúÀåµÈ Dynamic SQL¹®À» »èÁ¦Çϱâ À§ÇØ
FLUSH PACKAGE ¸í·É¾î¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

±âº» Runstats ¿¹Á¦
  • ƯÁ¤ Ä÷³¿¡ Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department ON COLUMNS (deptno, deptname)
  • Key Ä÷³¿¡ Åë°è ¼öÁý : index ¸¦ ±¸¼ºÇÏ°í ÀÖ´Â Ä÷³¿¡ ´ëÇÑ Åë°è¸¸ ¼öÁý
    RUNSTATS ON TABLE db2admin.department ON KEY COLUMNS
  • ¸ðµç À妽º Catalog Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department AND INDEXES ALL
  • ƯÁ¤ À妽º 3°³¸¸ Catalog Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department FOR INDEXES db2admin.INX1, db2admin.INX2, db2admin.INX3
  • À妽º¸¸ Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department FOR INDEXES ALL

With distribution ¿É¼Ç
µ¥ÀÌÅÍÀÇ ºÐÆ÷°¡ ÀÏÁ¤ÇÏÁö ¾ÊÀ» ¶§ with distribution ¿É¼ÇÀ» ÁÖ°í Runstats ¸¦ ½ÇÇàÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î Catalog Åë°è Å×À̺íÀº µ¥ÀÌÅÍÀÇ °¡Àå Å« °ª°ú ÀÛÀº °ª¿¡ ´ëÇÑ Á¤º¸¸¦
°¡Áö°í ÀÖ°í, optimizer´Â µ¥ÀÌÅÍ °ªÀÌ ÀÌ »çÀÌ¿¡ ºÐÆ÷ÇÑ´Ù°í ÃßÁ¤ÇÏ°í Access path¸¦
°áÁ¤ÇÕ´Ï´Ù. ¸¸¾à Áߺ¹µÈ µ¥ÀÌÅÍ °ªÀÌ ¸¹°í, ÀÏÁ¤ÇÏÁö ¾ÊÀ¸¸é µ¥ÀÌÅͺ° ºÐÆ÷ÀÚ·á Á¤º¸¸¦
ÁÖ¾î optimizerÀÇ ÆÇ´ÜÀ» µ½´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
  • Å×ÀÌºí¿¡ ´ëÇÑ distribution Åë°è ¼öÁý°ú À妽º Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department WITH DISTRIBUTION AND INDEXES ALL
  • ƯÁ¤ Ä÷³Àº ±âº»Á¤º¸¸¦, ƯÁ¤ Ä÷³Àº distribution Åë°è Á¤º¸¸¦ ¼öÁý
    RUNSTATS ON TABLE db2admin.department ON COLUMNS (deptno, deptname) WITH DISTRIBUTION ON COLUMNS (mgrno, admrdept)

frequency, quantile Á¤º¸
with distribution ¿É¼ÇÀ¸·Î runstats ¸¦ ¼öÇàÇϸé frequency¿Í quantile Åë°èÁ¤º¸¸¦
¼öÁýÇÏ°Ô µË´Ï´Ù. ¾î´ÀÁ¤µµ µ¥ÀÌÅ͸¦ ¼öÁýÇÒ °ÍÀÎÁö´Â DB CFG ÀÇ num_freqvalues°ú
num_quantiles °ª¿¡ ÀÇÇØ °áÁ¤µË´Ï´Ù.
À§ÀÇ CFG component¿¡¼­ º¼ ¼ö ÀÖ´Â °Íó·³ num_freqvaluesÀÇ default °ªÀº 10À̸ç,
num_quantiles °ªÀº 20ÀÔ´Ï´Ù. freqvalues °ªÀº °¡Àå Áߺ¹°ªÀÌ ¸¹Àº µ¥ÀÌÅÍ °ª°ú Ä÷³¿¡
´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â °ÍÀ¸·Î, Ä÷³´ç 10°³ÀÇ µ¥ÀÌÅÍ°¡ ÀúÀåµÈ´Ù´Â ÀǹÌÀÔ´Ï´Ù.
quantiles °ªÀº µ¥ÀÌÅÍ °ªÀÌ ´Ù¸¥ °ª°ú ºñ±³ÇÏ¿© ¾î¶»°Ô ºÐ»êµÇ¾î ÀÖ´ÂÁö Á¤º¸¸¦ ÀúÀåÇÏ´Â
°ÍÀ¸·Î Ä÷³´ç 20°³ÀÇ µ¥ÀÌÅÍ°¡ ±âº»ÀûÀ¸·Î ÀúÀåµË´Ï´Ù.
runstats ¼öÇà½Ã frequencyÀÇ °³¼ö¿Í quantileÀÇ °³¼ö¸¦ Ä÷³ ±×·ìº°·Î ÁöÁ¤ÇÏ¿© ÁÙ ¼ö ÀÖ½À´Ï´Ù.
ºÐ»ê Á¤º¸¸¦ ¼öÁýÇϸé Catalog °ø°£ÀÌ ´Ã¾î³ª¸ç, runstats ¼öÇà½Ã CPU¿Í ¸Þ¸ð¸®¸¦
´õ »ç¿ëÇÏ°Ô µË´Ï´Ù. µû¶ó¼­ Áß¿äÇÑ Ä÷³¿¡ ´ëÇؼ­¸¸ ºÐ»ê Á¤º¸¸¦ ¼öÁýÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
´ÙÀ½ °°Àº °æ¿ì¿¡´Â ºÐ»ê Åë°è ¿É¼ÇÀ» ÁÖÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
Runstats´Â ¾Æ·¡ÀÇ »óÅÂÀÏ °æ¿ì ºÐ»ê Åë°è Á¤º¸¸¦ ¼öÁýÇÏÁö ¾Ê½À´Ï´Ù.
  • num_freqvalues = 0 ÀÌ°í, num_quantiles = 0 ȤÀº 1 ÀÎ °æ¿ì
  • °¢ µ¥ÀÌÅÍ °ªÀÌ uniqueÇÒ ¶§
  • Ä÷³Å¸ÀÔÀÌ LONG, LOB, ±¸Á¶È­Ä÷³ÀÏ °æ¿ì
  • Ä÷³¿¡ NOT-NULL °ªÀÌ ÇÑ °³¸¸ ÀÖÀ» °æ¿ì
  • extended index À̰ųª declared temporary table ÀÏ °æ¿ì
Ex) deptname Àº frequency=50, quantile = 100À¸·Î , deptno´Â frequency = 5¿Í quantile = 10 À¸·Î, À妽º idx1,idx2 ¿¡ ´ëÇÑ Åë°èÁ¤º¸ ¼öÁý
RUNSTATS ON TABLE db2admin.department WITH DISTRIBUTION ON COLUMNS (deptno, deptname NUM_FREQVALUES 50 NUM_QUANTILES 100) DEFAULT NUM_FREQVALUES 5 NUM_QUANTILES 10 AND INDEXES db2admin.IDX1, db2admin.IDX2


Ä÷³ ±×·ì Åë°è ¼öÁý
Ä÷³ ±×·ì Åë°è¸¦ ¼öÇàÇϸé, ÇØ´ç Ä÷³ ±×·ì¿¡ ´ëÇÑ distinct Á¶ÇÕ °ªÀÇ Á¤º¸¸¦ ÀúÀåÇÕ´Ï´Ù.
±âº» Á¤º¸·Î´Â db2 optimizer °¡ µ¥ÀÌÅÍ »ó°ü°ü°è¸¦ ¾Ë ¼ö ¾ø´Âµ¥, Ä÷³ ±×·ì Åë°è Á¤º¸¸¦
ÅëÇØ Á» ´õ Á¤È®ÇÏ°Ô db2 optimizer °¡ multi predicate ¿¡ ´ëÇÑ ¼±ÅÃÀ» ¼öÇàÇϵµ·Ï ÇÏ¿©ÁÝ´Ï´Ù.
¾ÆÁ÷±îÁö Ä÷³ ±×·ì Åë°è´Â µ¥ÀÌÅÍ°¡ ±ÕµîÇÏ´Ù´Â °¡Á¤ÇÏ¿¡ ¼öÁýµÇ¸ç, ºÐ»ê Åë°è Á¤º¸´Â
Áö¿øµÇÁö ¾Ê½À´Ï´Ù.
  • Ä÷³ ±×·ì Åë°è ¼öÁý : µÎ°³ ±×·ì ( deptno,deptname) °ú (admrdept,location)
    RUNSTATS ON TABLE db2admin.department ON COLUMNS ((deptno, deptname), deptname, mrgno, (admrdept, location)

LIKE Statistics
Runstats ½Ã¿¡ Like ¿É¼ÇÀ» ÁÖ¸é SYSIBM.SYSCOLUMNS Å×À̺íÀÇ SUB_COUNT Ä÷³°ú
SUB_DELIM_LENGTH Ä÷³¿¡ Ãß°¡ÀûÀÎ Á¤º¸°¡ ÀúÀåµË´Ï´Ù.
ÇöÀç±îÁö´Â string Ä÷³¿¡ ´ëÇÑ Á¤º¸¸¸ ¼öÁýµÇ¸ç, ¡°column LIKE ¡®%abc¡¯ ¿Í
column LIKE ¡®%abc%¡¯ ¡° °ú °°Àº predicate ½Ã optimizer°¡ º¸´Ù Á¤È®ÇÑ ÆÇ´ÜÀ» ¼öÇàÇÒ ¼ö
ÀÖµµ·Ï ÇÏ¿©ÁÝ´Ï´Ù.
  • ¸ðµç Ä÷³ Á¤º¸ ¼öÁý.deptname ¿¡ ´ëÇؼ­´Â LIKE Á¤º¸ ¼öÁý
    RUNSTATS ON TABLE db2admin.department ON ALL COLUMNS and COLUMNS (deptname LIKE STATISTICS)

V8.2 »õ·Î¿î ±â´É - Åë°è ÇÁ·ÎÆÄÀÏÀ» ÀÌ¿ë
V8.2¿¡ Ãß°¡µÈ ±â´ÉÀ¸·Î, ƯÁ¤ Å×ÀÌºí¿¡ ´ëÇؼ­ ¾î¶² ½ÄÀ¸·Î Åë°èÁ¤º¸¸¦ ¼öÁýÇÒ °ÍÀÎÁö¸¦
profile·Î ÀÛ¼ºÇÕ´Ï´Ù. SET PROFILE ¿É¼ÇÀ» ÁÖ¾î runstats ¼öÇàÇϸé catalog Å×ÀÌºí¿¡
µî·ÏµÇ°Å³ª ÀúÀåµË´Ï´Ù. statistics profile À» updateÇÏ·Á¸é UPDATE PROFILE ¸í·É¾î¸¦
¼öÇàÇÏ¸é µË´Ï´Ù. ´Ü DELETE PROFILE Àº ¾ø½À´Ï´Ù.
  • Åë°è Á¤º¸ ¼öÁýÇÏÁö ¾Ê°í statistics profile¿¡¸¸ µî·Ï
    RUNSTATS ON TABLE db2admin.department AND INDEXES ALL SET PROFILE ONLY
  • statistics profileÀ» µî·ÏÇÏ°í µî·ÏµÈ profileÀ» ÀÌ¿ëÇÏ¿© Åë°è Á¤º¸ ¼öÁý
    RUNSTATS ON TABLE db2admin.department AND INDEXES ALL SET PROFILE
  • Åë°è Á¤º¸ ¼öÁýÇÏÁö ¾Ê°í statistics profile ¸¸ º¯°æ
    RUNSTATS ON TABLE db2admin.department WITH DISTRIBUTION AND INDEXES ALL UPDATE PROFILE ONLY
  • statistics profile Äõ¸®
  • statistics profile À» ÀÌ¿ëÇÏ¿© Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department USE PROFILE

Sampling Runstats
°è¼ÓÀûÀ¸·Î Áõ°¡ÇÏ´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ ¸ðµç Å×ÀÌºí¿¡ ´ëÇÑ runstats¸¦ ¼öÇàÇÏ´Â
°ÍÀº CPU ³ª ¸Þ¸ð¸® µîÀÇ ÀÚ¿ø »ç¿ëÀÌ Áõ°¡ÇÏ´Â ¿øÀÎÀÌ µË´Ï´Ù.
¶ÇÇÑ Å×ÀÌºí¿¡ RUNSTATS°¡ ½ÇÇàµÉ ¶§¸¶´Ù FULL Å×ÀÌºí ½ºÄµÀÌ ¼öÇàµË´Ï´Ù.
±×·¯³ª, µ¥ÀÌÅÍ samplingÀ¸·Î´Â µ¥ÀÌÅÍÀÇ ÀϺθ¸ ½ºÄµÇÏ°Ô µË´Ï´Ù.
¸¸¾à Äõ¸®ÀÇ ³»¿ëÀÌ Àüü Æ®·£µå¿Í ÆÐÅÏÀ» Á¶»çÇÏ´Â ³»¿ëÀ̸ç, ÀÏÁ¤ºÎºÐÀÇ ¿ÀÂ÷¸¦ °¡Á®µµ
ÆÐÅÏ°ú Æ®·£µå¸¦ ¾Ë¾Æ³»´Âµ¥ ÃæºÐÇÏ´Ù¸é, data sampling ÀÌ FULL Å×ÀÌºí ½ºÄµº¸´Ù´Â È¿À²ÀûÀÔ´Ï´Ù.
SAMPLED DETAILED ¿É¼ÇÀ» ÁÖ¸é À妽º Åë°è¸¦ °è»êÇÒ ¶§ samplingÀÌ »ç¿ëµÇ¸ç,
detailed Á¤º¸¸¦ ¼öÁýÇϴµ¥ ÇÊ¿äÇÑ ½Ã°£°ú ÀÚ¿ø¼Ò¸ð°¡ ÁÙ¾îµé°Ô µË´Ï´Ù.
  • samplingÀ» ÀÌ¿ëÇÑ index detailed Åë°è Á¤º¸ ¼öÁý
    RUNSTATS ON TABLE db2admin.department AND SAMPLED DETAILED INDEXES ALL

V8.2 »õ·Î¿î ±â´É ? Row-level Bernoulli sampling
Row-level Bernoulli sampling Àº sargable predicate ¿¡ ¸Â´Â Å×ÀÌºí µ¥ÀÌÅÍÁß P percentÀÇ
sampleÀ» ¾ò¾î¿À´Â °ÍÀÔ´Ï´Ù. ¸Å ÆäÀÌÁö¸¶´Ù I/O °¡ ÀϾ°í, ¹«ÀÛÀ§·Î row°¡ ¼±Åõ˴ϴÙ.
ºñ·Ï ¸Å ÆäÀÌÁö¸¶´Ù I/O °¡ ÀϾ´Ù°í´Â ÇÏÁö¸¸, ¿©ÀüÈ÷ µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¶§ ÇÊ¿äÇÑ
CPU ½Ã°£À» Àý¾àÇÒ ¼ö ÀÖ½À´Ï´Ù.
ƯÈ÷ Runstats´Â CPU ÁýÁßÀûÀÎ ÀÛ¾÷À̱⠶§¹®¿¡ ƯÈ÷ ´õ È¿°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
  • RowÀÇ 10% ·Î distribution Åë°è ¼öÁý
    RUNSTATS ON TABLE db2admin.department WITH DISTRIBUTION TABLESAMPLE BERNOULLI (10)

V8.2 »õ·Î¿î ±â´É ? system page-level sampling
system page level sampling Àº ROW ´ë½Å PAGE°¡ »ùÇøµ µÇ°í °¢ ÆäÀÌÁö´Â P% È®·ü·Î ¼±Åõǰí,
100-P% È®·ü·Î ¹ö·ÁÁö°Ô µË´Ï´Ù.
ÀÌ°Í¿ª½Ã ¸Å ÆäÀÌÁö¸¶´Ù I/O °¡ ÀϾÁö¸¸, Bernoulli ³ª FULL Å×ÀÌºí ½ºÄµº¸´Ù I/O ¸¦
Àý¾àÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ °æ¿ì prefetch¸¦ ¼öÇàÇϱ⠶§¹®ÀÔ´Ï´Ù.
Runstats ½Ã REPEATABLE ¿É¼ÇÀ» ÁÖ°Ô µÇ¸é Å×ÀÌºí µ¥ÀÌÅÍ°¡ ¹Ù²îÁö ¾Ê´Â´Ù´Â °¡Á¤ÇÏ¿¡
¸î¹øÀ» ¼öÇàÇصµ µ¿ÀÏÇÑ Sampling °á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù.
¿É¼ÇÀ» Àû¾îÁÙ ¶§ ¼ýÀÚ°ªÀ» ÇÔ²² ÁÖ°Ô µÇ´Âµ¥, ÀÌ °ª¸¸Å­ ¹Ýº¹µÉ¶§´Â sampling ÀÌ
µ¿ÀÏÇÏ´Ù´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù.
  • RowÀÇ 10% ·Î distribution Åë°è ¼öÁý. °°Àº sampleset À» ¹Ýº¹ÀûÀ¸·Î »ç¿ë°¡´É
    RUNSTATS ON TABLE db2admin.department WITH DISTRIBUTION TABLESAMPLE BERNOULLI (10) REPEATABLE (1024)
  • µ¥ÀÌÅÍ ÆäÀÌÁö¸¦ 10%·Î system page level samplingÀ» ÅëÇØ Åë°è ¼öÁý.
    RUNSTATS ON TABLE db2admin.department AND INDEXES ALL TABLESAMPLE SYSTEM (10)


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

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