µ¥ÀÌÅÍ ¼³°è ´Ü°è
¾ÖÇø®ÄÉÀ̼ÇÀÌ ÇÊ¿ä·Î ÇÏ´Â µ¥ÀÌÅ͸¦ °áÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¼º´É ¸ñÇ¥¸¦ ÃÖ»óÀ¸·Î ´Þ¼ºÇϱâ À§Çؼ­´Â Á¤º¸¸¦ ü°èÈ­ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

µ¥ÀÌÅͺ£À̽ºÀÇ ¹°¸®Àû ±¸Á¶
ÀÌ°ÍÀº ÁÖ·Î ´ÙÀ½°ú °ü·ÃÀÌ ÀÖ½À´Ï´Ù:

ÀüÇüÀûÀÎ OLTP ¾ÖÇø®ÄÉÀ̼Ç

¿ä±¸»çÇ×

Ư¼º
ÀÇ»ç°áÁ¤ Áö¿ø ¾ÖÇø®ÄÉÀ̼ÇÀº ´ë¿ë·®ÀÇ Á¤º¸¸¦ ÀÌÇØÇϱ⠽¬¿î º¸°í¼­·Î ¸¸µì´Ï´Ù.

ÀÌµé ¾ÖÇø®ÄÉÀ̼ÇÀº OLTP ½Ã½ºÅÛÀ¸·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¼öÁýÇϸç, ¿ä¾à ³»¿ëÀ» »ç¿ëÇÏ°í, °Ë»öÇÏ¿© ÃÑÇÕÀ» °è»êÇÕ´Ï´Ù. ÀÌµé ¾ÖÇø®ÄÉÀ̼ÇÀº ¾×¼¼½º ¹æ¹ýÀ¸·Î¼­ Àüü Å×ÀÌºí ½ºÄµÀ» ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù.

Á¶Á÷ ³»¿¡¼­ ÀÇ»ç°áÁ¤ÀÚ´Â ÀÌ µ¥ÀÌÅ͸¦ »ç¿ëÇÏ¿© Á¶Á÷ÀÌ ÃëÇØ¾ß ÇÒ Àü·«À» °áÁ¤ÇÕ´Ï´Ù.

¿¹: ¸¶ÄÉÆà ÅøÀº ¾î´À Ç°¸ñÀÌ ¾îµð¿¡¼­ °¡Àå Àß ÆǸŵǴ°¡¸¦ °áÁ¤Çϱâ À§ÇÏ¿© Àα¸Åë°èÀû µ¥ÀÌÅͷκÎÅÍ ¼öÁýµÈ Á¤º¸¿¡ ±âÃÊÇÏ¿© ¼ÒºñÀÚÀÇ ±¸¸Å ÆÐÅÏÀ» °áÁ¤ÇÕ´Ï´Ù.

¿ä±¸»çÇ×

ÇÏÀ̺긮µå ½Ã½ºÅÛ
¸¹Àº ¾ÖÇø®ÄÉÀ̼ǵéÀº ±¸¼º ¹æ¹ý°ú ¿À¶óŬ ¿É¼Ç¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¼öÇàÇÏ´Â È°µ¿ÀÇ À¯ÇüÀ» Á¤ÇÏ°í, ¾ÖÇø®ÄÉÀ̼ǿ¡ °¡Àå ÀûÇÕÇÑ ±â´ÉÀ» Á¤ÇØ¾ß ÇÕ´Ï´Ù.

OLTP µ¥ÀÌÅͺ£À̽º¿¡¼­ ¼öÁýµÈ µ¥ÀÌÅ͸¦ ÁúÀǸ¸ ¼öÇàÇÒ DSS µ¥ÀÌÅͺ£À̽º·Î º¹»çÇÔÀ¸·Î½á ¸ð¼øµÇ´Â ¸ñÇ¥µéÀÇ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀÌ ¿¹¸¦ »ç¿ëÇϱâ À§Çؼ­´Â DSS ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ Á¤È®¼ºÀ» ¸ñÇ¥·Î ÇØ¾ß ÇÕ´Ï´Ù.

µû¶ó¼­, °¡Àå Áß¿äÇÑ ¸ñÇ¥¸¦ °áÁ¤ÇØ¾ß ÇÕ´Ï´Ù. 

À妽º, IOT ¹× Ŭ·¯½ºÅÍ
À̵éÀº ÇÊ¿äÇÑ °æ¿ì DBA°¡ »ý¼ºÇÏ´Â ³í¸®ÀûÀÎ µ¥ÀÌÅÍ ±¸Á¶ÀÔ´Ï´Ù.

È÷½ºÅä±×·¥
À̵éÀº SQL ¹®ÀÇ ½ÇÇàÀ» Æ©´×Çϱâ À§ÇÏ¿© ANALYZE ¸í·É¿¡ ÀÇÇØ ¼öÁýµÇ°í, µñ¼Å³Ê¸® ºä¿¡ ÀúÀåµÇ¸ç, Cost Based Optimizer¿¡ ÀÇÇØ »ç¿ëµÇ´Â Åë°èÀÔ´Ï´Ù.

B - Tree À妽º »ý¼º ½Ã±â
B - Tree À妽º´Â Å×ÀÌºí¿¡¼­ ÀûÀº ºñÀ²ÀÇ ÇàÀ» ¼±ÅÃÇÏ´Â ÁúÀÇÀÇ ¼º´ÉÀ» Çâ»ó½Ãŵ´Ï´Ù. ÀϹÝÀûÀÎ GuidelineÀ¸·Î¼­, Å×À̺í ÇàÀÇ 10 - 15% º¸´Ù Àû°Ô ÁúÀǵǴ Å×ÀÌºí¿¡ À妽º¸¦ »ý¼ºÇØ¾ß ÇÕ´Ï´Ù. ÀÌ °ªÀº ¸ðµç µ¥ÀÌÅÍ°¡ ÇÑ À妽º·ÎºÎÅÍ °Ë»öµÇ°Å³ª À妽ºµÈ ¿­ÀÌ ´Ù¸¥ Å×À̺íµé¿¡ Á¶ÀÎÇϱâ À§ÇÏ¿© »ç¿ëµÉ ¼ö ÀÖ´Â »óȲ¿¡¼­´Â º¸´Ù ³ôÀ» ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ÁöħÀº  ´ÙÀ½°ú °°Àº °¡Á¤¿¡ ÀÇ°ÅÇÑ °ÍÀÔ´Ï´Ù:

À妽º Áõ°¡ ¹æ¹ý
À妽º´Â Ç×»ó ±ÕÇüÀÌ À¯ÁöµÇ°í »óÇâ½ÄÀ¸·Î Áõ°¡ÇÕ´Ï´Ù.

Å°°¡ ´ÜÁ¶·Ó°Ô Áõ°¡ÇÏ´Â »óȲ¿¡¼­´Â, À妽º ·¹º§(BLEVEL)ÀÌ »ó½ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇàÀÌ Ãß°¡µÊ¿¡ µû¶ó, »õ·Î¿î ¿£Æ®¸®µéÀÌ À妽º ¿À¸¥ÂÊ¿¡ Ãß°¡µÇ±â ¶§¹®ÀÔ´Ï´Ù. °¡Àå ¿À¸¥ÂÊÀÇ ¸®ÇÁ(leaf) ºí·ÏÀÌ °¡µæ Â÷¸é, ¿À¶óŬÀº 2°³ÀÇ ºí·ÏÀ¸·Î ºÐÇÒÇÏ°í 50%´Â ¿ø·¡ÀÇ ¸®ÇÁ ºí·Ï¿¡ ³õ°í 50%´Â »õ ¸®ÇÁ ºí·Ï¿¡ ³õ½À´Ï´Ù. »õ·Î¿î ¿£Æ®¸®/Æ÷ÀÎÅÍ´Â °¡Àå ¿À¸¥ÂÊ ºÐ±â(branch) ºí·Ï¿¡ Ãß°¡µË´Ï´Ù.

ÀÌ ÆÐÅÏÀº ÇàÀÌ »ðÀԵʿ¡ µû¶ó, °¡Àå ¿À¸¥ÂÊ ºÐ±â ºí·ÏÀÌ °¡µæ Â÷¼­ 2°³·Î ºÐÇҵǾî¾ß ÇÒ ¶§±îÁö °è¼ÓÇÏ¿© ¹Ýº¹µË´Ï´Ù.

ÀÌ ¸¶Áö¸· ÆÐÅÏÀº ·çÆ®(root) ºí·ÏÀÎ °¡Àå »óÀ§ÀÇ ºí·ÏÀÌ ºÐ±â ºí·ÏÀÇ Ã¹¹ø° ·¹º§¿¡ Æ÷ÀÎÅ͸¦ ´õ ÀÌ»ó Æ÷ÇÔ½Ãų ¼ö ¾øÀ» ¶§±îÁö °è¼ÓÇÏ¿© ¹Ýº¹µË´Ï´Ù. ¿À¶óŬÀº ·çÆ® ºí·ÏÀ» ºÐÇÒÇÏÁö ¾Ê±â ¶§¹®¿¡, »õ ·¹º§ÀÇ ºÐ±â ºí·ÏÀ» Ãß°¡ÇÕ´Ï´Ù.

À妽ºÀÇ ±íÀÌ°¡ ±í¾î Áú¼ö·Ï, È¿À²¼ºÀÌ °¨¼ÒµË´Ï´Ù.
B - TreeÀÇ BLEVELÀ» °¡´ÉÇϸé 4 ÀÌÇÏ·Î ³·°Ô À¯ÁöÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

ÀÌ¿¡ °üÇÑ Á¤º¸¸¦ ¾ò±â À§ÇÏ¿©, *_INDEXES µñ¼Å³Ê¸® ºä¿¡ ÀÖ´Â Åë°èÀڷḦ ¼öÁýÇÏ¿© BLEVEL ¿­¿¡ ÀúÀåÇÏ´Â ANALYZE ¸í·ÉÀ» ½ÇÇà½ÃÅ°½Ê½Ã¿À.

  SQL> ANALYZE INDEX i_name COMPUTE STATISTICS;

B - Tree À妽º ¼º´É °¨¼Ò ¹®Á¦ ÇØ°á ¹æ¹ý

¿¹: ÀÌ ¿¹´Â EMP Å×À̺íÀÇ JOB ¿­°ú °ü·ÃµÇ¾î ÀÖ½À´Ï´Ù.

EMP Å×À̺í

ºñÆ®¸Ê À妽º

EMPNO 

JOB 

Job='CLERK¡¯

Job=' MANAGER'

Job=' ANALYST'

8000

MANAGER

 0

 1

 0

8001

ANALYST

 0

 0

 1

8002

CLERK

 1

 0

 0

ºñÆ®¸Ê À妽º »ý¼º ½Ã±â

¼º´É °í·Á»çÇ×

À¯Áö ½Ã °í·Á»çÇ×
DSS ȯ°æ¿¡¼­, ÀϹÝÀûÀ¸·Î µ¥ÀÌÅÍ´Â ´ë·®ÀÇ »ðÀÔ ¹× °»½ÅÀ» ÅëÇÏ¿© À¯ÁöµË´Ï´Ù. À妽º À¯Áö´Â °¢ DML ÀÛ¾÷ÀÌ Á¾·áµÉ ¶§±îÁö ¿¬±âÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ºñÆ®¸Ê À妽º, ºñÆ®¸Ê Çà Á¤º¸ ¹× rowid Á¤º¸°¡ ÀÖ´Â Å×ÀÌºí¿¡ 1000 ÇàÀ» »ðÀÔÇÒ °æ¿ì, »ðÀÔµÈ ÇàÀÌ Á¤·Ä ¹öÆÛÀÇ ÂüÁ¶¿¡ À§Ä¡ÇÑ ´ÙÀ½, ¸ðµç 1000°³ÀÇ À妽º ¿£Æ®¸®°¡ ¹èÄ¡·Î °»½ÅµË´Ï´Ù.

ÀÌ°ÍÀÌ SORT_AREA_SIZE°¡ ºñÆ®¸Ê À妽º¿¡¼­ »ðÀÔ ¹× °»½ÅÀ¸·Î ÁÁÀº ¼º´ÉÀ» À§ÇØ ÀûÀýÇÏ°Ô ¼³Á¤µÇ¾î¾ß ÇÏ´Â ÀÌÀ¯ÀÔ´Ï´Ù. µû¶ó¼­, ¼¼±×¸ÕÆ® ³» Çϳª ÀÌ»óÀÇ row°¡ º¯°æµÇ´õ¶óµµ, °¢ ºñÆ®¸Ê ¼¼±×¸ÕÆ®´Â DML ´ç Çѹø¸¸ °»½Å µË´Ï´Ù.

ºñÆ®¸Ê À妽º¿¡ ´ëÇÑ ÃʱâÈ­ ÆĶó¹ÌÅÍ
´ÙÀ½ 2°³ÀÇ ÃʱâÈ­ ÆĶó¹ÌÅÍ´Â ¼º´É¿¡ ¿µÇâÀ» ¹ÌĨ´Ï´Ù:

Á¤ÀÇ
¸®¹ö½º Å° À妽º¸¦ »ý¼ºÇÏ¸é º¹ÇÕ Å°ÀÇ °æ¿ì ¿­ ¼ø¼­¸¦ À¯ÁöÇϸ鼭 °¢ ¿­ Å° °ªÀÇ ¹ÙÀÌÆ®°¡ ¿ªÀ¸·Î µË´Ï´Ù.

¸®¹ö½º Å° À妽º »ý¼º ½Ã±â
Áõ°¡ÇÏ´Â Å°(¼ÛÀåÀ̳ª Á÷¿ø ¶Ç´Â ÁÖ¹® ¹øÈ£¿Í °°Àº ½ÃÄö½º ¹øÈ£)°¡ À妽º BLEVELÀ» ¹Ýº¹ÇÏ¿© ³·Ãâ °æ¿ì, À妽º ¿£Æ®¸®¸¦ ´õ ±ÕµîÇÏ°Ô ºÐ»ê½ÃÄÑ °­Á¦ ºí·Ï ºÐÇÒÀ» ÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÜÁ¡
¾ÖÇø®ÄÉÀÌ¼Ç ¹®ÀåÀÌ ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¶§, explain planÀÌ Àüü µ¥ÀÌºí ½ºÄµÀ» »ý¼ºÇÕ´Ï´Ù.

µñ¼Å³Ê¸® ºä
´ÙÀ½ÀÇ ÁúÀǸ¦ »ç¿ëÇÏ¿© ¸ðµç ¸®¹ö½º Å° À妽ºÀÇ À̸§À» ³ª¿­ÇÕ´Ï´Ù:

  SQL> select index_name, index_type
    2  from dba_indexes
    3  where index_name = ¡®ORD_ORD_NO_IDX¡¯;
  INDEX_NAME         INDEX_TYPE
  ------------------ ------------
  ORD_ORD_NO_IDX     NORMAL/REV

Á¤ÀÇ
Index-organized Å×À̺íÀº Çϳª ÀÌ»óÀÇ ¿­¿¡ À妽º¸¦ °®°í ÀÖ´Â ÀÏ¹Ý Å×À̺í°ú °°Áö¸¸, Å×À̺í°ú B-Tree À妽º¿¡ ´ëÇØ 2°³ÀÇ º°µµÀÇ ¼¼±×¸ÕÆ®¸¦ À¯ÁöÇÏÁö ¾Ê°í, µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛÀº ´ÙÀ½ÀÇ 2°¡Áö ¸ðµÎ¸¦ Æ÷ÇÔÇÏ´Â ÇϳªÀÇ B-Tree À妽º¸¦ À¯ÁöÇÕ´Ï´Ù:

¼º´É ÀÌÁ¡

Index-organized Å×ÀÌºí »ý¼º ½Ã±â
Index-organized Å×À̺íÀº ±âº» Å°(primary key)¸¦ ÅëÇϰųª, ÅؽºÆ® °Ë»ö¿¡¼­ »ç¿ëµÇ´Â ¿ª À妽º¸¦ »ç¿ëÇÏ´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼­¿Í °°ÀÌ ±âº» Å°(primary key)ÀÇ prefixÀÎ Å°¸¦ ÅëÇؼ­ µ¥ÀÌÅÍ¿¡ ºó¹øÇÏ°Ô ¾×¼¼½ºÇϱ⿡ ÀûÇÕÇÕ´Ï´Ù. À̵é À妽º´Â °ª°ú ¸ðµç À§Ä¡¸¦ ÇÔ²² º¸°üÇÕ´Ï´Ù. µû¶ó¼­, °¢ ¿öµå´Â ÇϳªÀÇ ¿£Æ®¸®¸¦ °®°í ÀÖ°í, ¿£Æ®¸®´Â ¿öµå°¡ ¹ß»ýÇÏ´Â ¸ðµç À§Ä¡¸¦ ±â·ÏÇÕ´Ï´Ù. À妽º·Î ±¸¼ºµÈ Å×À̺íÀº ¿ª À妽º¸¦ ¸ðµ¨¸µÇϴµ¥ ¸Å¿ì È¿À²ÀûÀÎ ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù.

PCTTHRESHOLD, INCLUDING Àý°ú ¿À¹öÇÃ·Î¿ì ¼¼±×¸ÕÆ®

PCTTHRESHOLD Àý
ÀÌ ÀýÀº À妽º·Î ±¸¼ºµÈ Å×À̺í Çà¿¡ ´ëÇÑ À妽º ºí·Ï ³»¿¡ ÀúÀåµÈ °ø°£ÀÇ ºñÀ²À» ÁöÁ¤ÇÕ´Ï´Ù. ÇàÀÌ ÀÌ °ªÀ» ±âº»À¸·Î ÇÏ¿© °è»êµÈ Å©±â¸¦ ÃÊ°úÇÒ °æ¿ì, INCLUDING Àý¿¡ À̸§ÀÌ ÀÖ´Â ¿­ ´ÙÀ½ÀÇ ¸ðµç ¿­Àº ¿À¹öÇÃ·Î¿ì ¼¼±×¸ÕÆ®·Î À̵¿µË´Ï´Ù. OVERFLOW°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é, ÇÑ°è°ªÀ» ÃÊ°úÇÏ´Â ÇàÀº °ÅºÎµË´Ï´Ù. PCTTHRESHOLD µðÆúÆ®´Â 50ÀÌ°í 0 - 50 ÀÇ °ªÀ̾î¾ß ÇÕ´Ï´Ù.

INCLUDING Àý
ÀÌ ÀýÀº À妽º·Î ±¸¼ºµÈ Å×À̺í ÇàÀ» À妽º¿Í ¿À¹öÇÃ·Î¿ì ºÎºÐÀ¸·Î ºÐÇÒÇϱâ À§ÇÑ ¿­À» ÁöÁ¤ÇÕ´Ï´Ù. INCLUDING Å°¿öµå ´ÙÀ½ÀÇ ¸ðµç ¿­Àº ¿À¹öÇÃ·Î¿ì µ¥ÀÌÅÍ ¼¼±×¸ÕÆ®¿¡ ÀúÀåµË´Ï´Ù. ÀÌ°ÍÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê°í Çà Å©±â°¡ PCTTHRESHOLD¸¦ ÃÊ°úÇÒ °æ¿ì, ±âº» Å°¸¦ Á¦¿ÜÇÑ ¸ðµç ¿­Àº ¿À¹öÇÃ·Î¿ì ¿µ¿ªÀ¸·Î À̵¿µÉ °ÍÀÔ´Ï´Ù. ¿­Àº ¸¶Áö¸· ±âº» Å° ¿­ÀÇ À̸§À̳ª ¾î¶°ÇÑ ±âº» Å°ÀÇ À̸§ÀÌ¶óµµ µÉ ¼ö ÀÖ½À´Ï´Ù.

OVERFLOW Àý°ú ¼¼±×¸ÕÆ®
ÀÌ ÀýÀº ÁöÁ¤µÈ ÇÑ°è °ªÀ» ÃÊ°úÇÏ´Â À妽º·Î ±¸¼ºµÈ Å×ÀÌºí µ¥ÀÌÅÍ ÇàÀÌ Å×ÀÌºí½ºÆäÀ̽º, ÀúÀå°ø°£ ¹× ºí·Ï ÀÌ¿ë ÆĶó¹ÌÅ͸¦ ÁöÁ¤ÇÏ´Â ¼¼±×¸ÕÆ® ¼Ó¼º¿¡ ÀÇÇÏ¿© Á¤ÀÇµÈ µ¥ÀÌÅÍ ¼¼±×¸ÕÆ® ³»¿¡ À§Ä¡Çϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù.


Á¤ÀÇ

Ŭ·¯½ºÅÍ´Â µ¿ÀÏÇÑ Å×ÀÌÅÍ ºí·ÏÀ» °øÀ¯ÇÏ´Â Çϳª ÀÌ»óÀÇ Å×ÀÌºí ±×·ìÀ¸·Î¼­, µ¿ÀÏÇÑ µ¥ÀÌÅÍ ºí·ÏÀº °øÅë ¿­µéÀ» °øÀ¯ÇÏ°í Á¾Á¾ Á¶ÀÎ ÁúÀÇ¿¡¼­ ÇÔ²² »ç¿ëµË´Ï´Ù.

¼º´É ÀÌÁ¡

¼º´É °í·Á»çÇ×
ÀϹÝÀûÀ¸·Î Àüü Å×ÀÌºí ½ºÄµÀº Ŭ·¯½ºÅ͵ÇÁö ¾ÊÀº Å×ÀÌºí¿¡¼­º¸´Ù´Â Ŭ·¯½ºÅÍµÈ Å×ÀÌºí¿¡¼­ ¼Óµµ°¡ ´õ ´À¸³´Ï´Ù.

À妽º Ŭ·¯½ºÅÍ
À妽º Ŭ·¯½ºÅʹ Ŭ·¯½ºÅÍ À妽º¶óÇÏ´Â À妽º¸¦ »ç¿ëÇÏ¿© Ŭ·¯½ºÅÍ ³»¿¡ µ¥ÀÌÅ͸¦ À¯ÁöÇÕ´Ï´Ù:

Çؽà Ŭ·¯½ºÅÍ
Çؽà Ŭ·¯½ºÅÍ´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇàÀÇ À§Ä¡¸¦ °è»êÇÕ´Ï´Ù. Çؽà ÇÔ¼ö´Â Ŭ·¯½ºÅÍ Å°¸¦ »ç¿ëÇϸç, »ç¿ëÀÚ°¡ Á¤ÀÇÇϰųª ½Ã½ºÅÛ¿¡ ÀÇÇØ »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
ÇàÀÌ Çؽà Ŭ·¯½ºÅÍ ³»ÀÇ Å×ÀÌºí¿¡ »ðÀ﵃ ¶§:

Çؽà ÇÔ¼ö´Â Çؽà Å×À̺í·ÎºÎÅÍ µ¥ÀÌÅ͸¦ °Ë»öÇÏ´Â µ¿¾È ÇàÀÇ À§Ä¡¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
Ŭ·¯½ºÅÍ Å°¸¦ »ç¿ëÇÏ´Â µ¿µî °Ë»ö¿¡ ´ëÇØ, Çؽà Ŭ·¯½ºÅÍ´Â À妽º Ŭ·¯½ºÅÍ º¸´Ù ¶Ù¾î³­ ¼º´ÉÀ» Á¦°øÇÕ´Ï´Ù:

Ŭ·¯½ºÅ͸¦ »ç¿ëÇؼ­´Â ¾È µÇ´Â °æ¿ì

Çؽà Ŭ·¯½ºÅ͸¦ »ç¿ëÇؼ­´Â ¾È µÇ´Â °æ¿ì

Á¤ÀÇ
±ÕµîÇÏ°Ô ºÐ»êµÈ µ¥ÀÌÅÍ¿¡ ´ëÇØ, ¿ø°¡ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú´Â ƯÁ¤ ¹®ÀåÀ» ½ÇÇàÇϴµ¥ ¼Ò¿äµÇ´Â ¿ø°¡¸¦ Á¤È®ÇÏ°Ô ÃßÃøÇÕ´Ï´Ù. ±×·¯³ª, µ¥ÀÌÅÍ°¡ ±ÕµîÇÏ°Ô ºÐ»êµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ¿ÉƼ¸¶ÀÌÀú´Â ÁúÀÇÀÇ ¼±ÅüºÀ» Á¤È®ÇÏ°Ô ÃßÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, È÷½ºÅä±×·¥Àº ƯÁ¤ ¿­ÀÇ ºÐ¹è¸¦ ¼³¸íÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

È÷½ºÅä±×·¥À» »ç¿ëÇØ¾ß ÇÒ °æ¿ì
WHERE Àý¿¡¼­ ºó¹øÇÏ°Ô »ç¿ëµÇ´Â ¿­°ú À妽ºµÈ ¿­¿¡¼­, ±×¸®°í µ¥ÀÌÅÍ°¡ ¸Å¿ì ºñ´ëĪÀûÀ¸·Î ºÐ»êµÇ¾î ÀÖ´Â °æ¿ì.

È÷½ºÅä±×·¥À» »ç¿ëÇؼ­´Â ¾È µÇ´Â °æ¿ì

È÷½ºÅä±×·¥ Åë°è¸¦ »ý¼ºÇÏ´Â ¹æ¹ý

  SQL> ANALYZE TABLE emp COMPUTE STATISTICS FOR COLUMNS sal    
    2 SIZE 10;
  SQL> ANALYZE TABLE t1 COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;

SIZE ÀýÀº ¹öŶÀÇ ÃÖ´ë ¼ö¸¦ Á¤ÇÕ´Ï´Ù.

¿­¿¡¼­ ¹ß»ýÇÏ´Â µ¿ÀÏÇÏÁö ¾ÊÀº °ªÀÇ ¼ö°¡ »ó´ëÀûÀ¸·Î ÀûÀ» °æ¿ì, ºó¹øÇÏ°Ô ¹ß»ýÇÏ´Â  °ªÀÇ ¼ö º¸´Ù Å« ¼ö·Î ¹öŶ¼ö¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ À¯¿ëÇÕ´Ï´Ù.

ÁÖÀÇ : °ü½É ÀÖ´Â ¿­¿¡ ´ëÇؼ­¸¸ Åë°èÁ¤º¸¸¦ ¼öÁýÇϵµ·Ï ÇÏ¿© Åë°èÀÇ ¾çÀ» °¨¼Ò½ÃÅ°½Ê½Ã¿À:¿¹¸¦µé¾î Á¶ÀÎ Á¶°Ç¿¡¼­ »ç¿ëµÇ´Â ¿­¿¡ ´ëÇÏ¿© ANALYZE ¡¦ FOR COLUMNS ¶Ç´Â ANALYZE ¡¦ FOR ALL INDEXED COLUMNS °°Àº ¸í·É¾î¸¦ »ç¿ëÇϽʽÿÀ.

ANALYZE ¡¦ SIZE n ¸í·É¾î´Â ¸ðµç °ü·ÃµÈ ¿­¿¡ ´ëÇÏ¿© È÷½ºÅä±×·¥À» »ý¼ºÇÕ´Ï´Ù. ÀÌ ¹®Àå°ú FOR ALL INDEXED COLUMNS¸¦ ÇÔ²² »ç¿ëÇÏ´Â °æ¿ì, ±âº»Å°¿Í À¯ÀÏÅ° Á¦¾àÁ¶°ÇÀ» °¡Áø Ä÷³¿¡ ´ëÇÑ ºÒÇÊ¿äÇÑ È÷½ºÅä±×·¥ÀÌ »ý¼ºµË´Ï´Ù.

µñ¼Å³Ê¸® ºä


°ø°£ ÇÒ´ç

  • µ¿ÀûÀÎ °ø°£ ÇÒ´çÀÇ ¼º´É ·Îµå ÇÇÇϱâ: °ø°£À» Å×À̺í, Ŭ·¯½ºÅÍ, À妽º¿¡ ¸í¹éÇÏ°Ô ÇÒ´ç
  • extent°¡ ÇÒ´çµÇ´Â ¼Óµµ¸¦ ¾Ë¾Æ³»¾î extent »ý¼º °èȹÀ» ¼¼¿ï ¼ö ÀÖµµ·Ï, ±ÔÄ¢ÀûÀ¸·Î Áõ°¡ ÆÐÅÏ °Ë»ç

À妽Ì

  • À妽ÌÀº OLTP ½Ã½ºÅÛ¿¡¼­ µ¥ÀÌÅÍ °Ë»ö ±â´É¿¡ ¸Å¿ì Áß¿äÇÕ´Ï´Ù. À妽ºµÈ Å×ÀÌºí¿¡¼­ DML ¹®ÀåÀº À妽º À¯Áö¸¦ ÇÊ¿ä·Î Çϴµ¥, ÀÌ °æ¿ì ÇöÀúÇÑ ¼º´É ¿À¹öÇìµå°¡ ¹ß»ýÇÕ´Ï´Ù. µû¶ó¼­, Àε¦½Ì Àü·«Àº ¾ÖÇø®ÄÉÀ̼ÇÀÇ ½ÇÁ¦ ÇÊ¿ä¿¡ º¸´Ù ¸é¹ÐÇÏ°Ô ¸ÂÃß¾îÁ®¾ß ÇÕ´Ï´Ù.

  • ¿ÜºÎÅ°(foregin key)¿¡ À妽º¸¦ ¼³Á¤ÇÒ °æ¿ì, ºÎ¸ð(parent) µ¥ÀÌÅ͸¦ Àá±× (locking)Áö ¾Ê°íµµ ÀÚ½Ä(child) µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ´Â µ¥ µµ¿òÀÌ µË´Ï´Ù.

  • DML ÀÛ¾÷¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â Àá±Ý(lock) À̽´ ¶§¹®¿¡, ºñÆ®¸Ê Àε¦½Ì º¸´Ù´Â B-Tree À妽ÌÀÌ ¼±È£µË´Ï´Ù: B-Tree À妽º ¿£Æ®¸®°¡ Àá°ÜÀÖÀ» °æ¿ì¿¡´Â ÇϳªÀÇ ÇุÀÌ Àá°ÜÁöÁö¸¸, ºñÆ®¸Ê À妽º ¿£Æ®¸®°¡ Àá°Ü ÀÖÀ» °æ¿ì¿¡´Â Àüü ¹üÀ§ÀÇ ÇàÀÌ Àá°ÜÁý´Ï´Ù.

  • ¸®¹ö½º Å° À妽º´Â ½ÃÄö½º Çà¿¡ ´ëÇØ ÀÚÁÖ ¹ß»ýÇÏ´Â B-Tree ºí·Ï ºÐÇÒÀ» ÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ, ¸®¹ö½º Å° À妽º¸¦ »ç¿ëÇÒ °æ¿ì, Oracle Parallel Server ¾ÖÇø®ÄÉÀ̼ÇÀÌ ´õ ºü¸£°Ô ½ÇÇàµË´Ï´Ù.

  • ¾Õ ÆäÀÌÁö¿¡¼­ Á¦½ÃÇÑ °Íó·³, ±ÔÄ¢ÀûÀ¸·Î À妽º¸¦ À籸ÃàÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

Çؽà Ŭ·¯½ºÅ͸µ

  • Çؽà Ŭ·¯½ºÅ͸¦ »ç¿ëÇÒ °æ¿ì µ¿µî ÁúÀÇ¿¡ ¾×¼¼½ºÇÏ´Â ¼Óµµ¸¦ ³ô¿©¾ß ÇÕ´Ï´Ù. ±×·¯³ª, ´ÙÀ½°ú °°Àº Å×ÀÌºí¿¡ ´ëÇØ ÀÌ·¯ÇÑ µ¥ÀÌÅÍ ±¸Á¶¸¦ ¼±ÅÃÇؼ­´Â ¾ÈµË´Ï´Ù:
    -  ¸¹ÀÌ »ðÀԵǴ Å×À̺í (¾×¼¼½ºµÉ ÇÊ¿ä°¡ ÀÖ´Â ºí·ÏÀÇ ¼ö¿Í °ø°£ÀÇ »ç¿ë ¶§¹®¿¡)
    -  Å« ¿­ °ªÀ¸·Î ¸¹ÀÌ °»½ÅµÇ´Â Å×À̺í(ÀÌÀü(migration) °¡´É¼º ¶§¹®¿¡)  

  • Å×À̺íÀÌ Áõ°¡ÇÒ °æ¿ì, Çؽà Ű¿¡¼­ ¸¹Àº Ãæµ¹ÀÌ ¹ß»ýÇÏ°Ô µÇ¾î ¿À¹öÇÃ·Î¿ì ºí·Ï¿¡ ÇàÀ» ÀúÀåÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ »óȲÀ» ÇÇÇϱâ À§ÇÏ¿© HASHKEYS °ªÀ» Á¤È®ÇÏ°Ô »êÁ¤ÇϽʽÿÀ. ƯÁ¤ Çà ¼ö¿¡ ´ëÇØ ¸¹Àº ¼öÀÇ Çؽà ۸¦ »ç¿ëÇϸé, Ãæµ¹ÀÌ °¨¼ÒÇÒ °ÍÀÔ´Ï´Ù.  


·Ñ¹é ¼¼±×¸ÕÆ® °í·Á»çÇ×

Æ®·£Àè¼ÇÀº ª¾Æ¾ß Çϴµ¥, ÀÌ°ÍÀº ·Ñ¹é ¼¼±×¸ÕÆ® ±¸¼º¿¡ Áß¿äÇÕ´Ï´Ù:

·Ñ¹é ¼¼±×¸ÕÆ®ÀÇ Á¤È®ÇÑ ¼ö¸¦ ¾ò±â À§ÇÏ¿©, Æ®·£Àè¼Ç ÆÐÅÏÀ» ¾Ë ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ½Ã½ºÅÛÀÇ ´ÙÀ½ Ư¼ºÀ» °í·ÁÇϽʽÿÀ:

ƯÁ¤ ½Ã°£¿¡ 8°Ç ÀÌ»óÀÇ Æ®·£Àè¼ÇÀÌ È°µ¿ÇÒ °¡´É¼ºÀº ¸Å¿ì ³·À¸¹Ç·Î, 8°³ÀÇ ·Ñ¹é ¼¼±×¸ÕÆ®¸é ÃæºÐÇÕ´Ï´Ù.

·Ñ¹é ¼¼±×¸ÕÆ® extent Å©±â´Â »ó´ëÀûÀ¸·Î ÀÛÀ» ¼ö ÀÖ½À´Ï´Ù (À̵é ÀÛÀº Æ®·£Àè¼ÇÀÌ ½Ã½ºÅÛ¿¡¼­ À¯ÀÏÇÑ Æ®·£Àè¼ÇÀ̶ó¸é 100k).

ÀÛÀº µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇؼ­´Â Àû¾îµµ 10À», ´õ Å« µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇؼ­´Â 20À» MINEXTENTS·Î ¼³Á¤ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ±× ÀÌÀ¯´Â ´ÙÀ½°ú °°½À´Ï´Ù:

¹«°á¼º Á¦¾àÁ¶°Ç
¾ÖÇø®ÄÉÀÌ¼Ç ³í¸®¸¦ ÇÁ·Î½ÃÀú Äڵ忡 º¸°üÇÏ´Â °Í°ú ¼±¾ðÀû Á¦¾àÁ¶°ÇÀ» »ç¿ëÇÏ´Â °Í Áß¿¡¼­ ¼±ÅÃÇØ¾ß ÇÏ´Â °æ¿ì, Ç×»ó Á¦¾àÁ¶°ÇÀÌ ÇÁ·Î¼¼½ºº¸´Ù ºñ¿ëÀÌ ´ú µç´Ù´Â »ç½ÇÀ» ¸í½ÉÇϽʽÿÀ. ÂüÁ¶ ¹«°á¼º°ú CHECK Á¦¾àÁ¶°ÇÀº ¿©±â¼­ °í·ÁÇØ¾ß ÇÒ ÁÖ¿ä À¯ÇüÀÔ´Ï´Ù.

°øÀ¯ ÄÚµå
±×·¸Áö ¾Ê´Ù¸é, Äڵ尡 ÆÐÅ°Áö, ÇÁ·Î½ÃÀú, ÇÔ¼ö¿Í °°Àº ÀúÀå ÇÁ·Î½ÃÀú °´Ã¼¿¡ ÀÇÇØ °øÀ¯µÇ°í ÀÖ³ª¸¦ È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¹ÙÀÎµå º¯¼ö
±¸¹®ºÐ¼®ÀÇ ¿À¹öÇìµå¸¦ ÃÖ¼Ò·Î À¯ÁöÇÏ°íÀÚ  
ÇÒ °æ¿ì, ¾ÖÇø®ÄÉÀÌ¼Ç Äڵ尡 ¸®ÅÍ·²(literal) ´ë½Å ¹ÙÀÎµå º¯¼ö¸¦ »ç¿ëÇϵµ·Ï ÇϽʽÿÀ. 

DB_BLOCK_SIZE¿Í DB_FILE_MULTIBLOCK_READ_COUNT
ÀϹÝÀûÀ¸·Î DB_BLOCK_SIZE ÆĶó¹ÌÅ͸¦ ½Ã½ºÅÛ¿¡¼­ Áö¿øµÇ´Â ÃÖ´ë°ªÀ¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ°Í ¶§¹®¿¡ Å« µ¥ÀÌÅͺ£À̽º¸¦ Àç»ý¼ºÇÏ°Ô µÇ´õ¶óµµ, ´õ Å« ºí·Ï »çÀÌÁî°¡ DSS ¾ÖÇø®ÄÉÀÌ¼Ç Æ¯¼ºÀÇ Àбâ ÁýÁß ÀÛ¾÷À» ½±°Ô Çϱ⠶§¹®¿¡ ºÐ¸íÇÑ ¼º°ú°¡ ÀÖ½À´Ï´Ù.

DB_FILE_MULTIBLOCK_READ_COUNT ÆĶó¹ÌÅÍÀÇ ¼³Á¤¿¡ Ưº°È÷ ÁÖÀÇÇϽʽÿÀ. ÀÌ ÆĶó¹ÌÅÍ´Â Àüü Å×ÀÌºí ½ºÄµ µ¿¾È ´ÜÀÏ ¿î¿µÃ¼Á¦ Àбâ È£Ãâ¿¡ ÀÇÇؼ­ ÀÐÇôÁö´Â µ¥ÀÌÅͺ£À̽º ºí·Ï ¼ö¸¦ °áÁ¤ÇÕ´Ï´Ù: 8k ºí·Ï Å©±â¿¡´Â 8, 16k ºí·Ï Å©±â¿¡´Â 4.

Å« °ªÀ¸·Î ¼³Á¤Çϸé Å×ÀÌºí ½ºÄµ ºñ¿ëÀÌ Àû°Ô µé°í ÁÖ·Î À妽º·Î Å×À̺íÀ» ½ºÄµÇÕ´Ï´Ù.

À妽Ì
À妽º À¯ÁöÀÇ °ø°£ ¹× ¼º´É ¿À¹öÇìµå¸¦ ÃÖ¼ÒÈ­ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» °í·ÁÇϽʽÿÀ. ´ëºÎºÐÀÇ ÁúÀÇ°¡ Àüü µ¥ÀÌºí ½ºÄµÀ» »ç¿ëÇϱ⠶§¹®¿¡, ´ÙÀ½ÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù:

Ŭ·¯½ºÅ͸µ
Ŭ·¯½ºÅ͸¦ Àç»ý¼ºÇØ¾ß ÇÒ °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â, µÎ °¡Áö À¯ÇüÀÇ Å¬·¯½ºÅÍ ¸ðµÎ °í·ÁµÇ¾î¾ß ÇÕ´Ï´Ù. ƯÈ÷, ¸¹Àº µ¥ÀÌÅ͸¦ ·ÎµåÇÏ´Â µ¿¾È ±ÔÄ¢ÀûÀ¸·Î Áõ°¡ÇÏ´Â Å×À̺íÀº Á¦¿ÜÇÏ°í ÃÖ»óÀÇ ¾×¼¼½º ¼º´ÉÀ» À§Çؼ­´Â Çؽà Ŭ·¯½ºÅ͸¦ °í·ÁÇØ¾ß ÇÕ´Ï´Ù

±¸¹®ºÐ¼® ½Ã°£
SELECT ¹®À» ±¸¹®ºÐ¼®Çϴµ¥ ¼Ò¿äµÇ´Â ½Ã°£Àº ÁúÀÇ ½ÇÇà¿¡ ¼Ò¿äµÇ´Â ½Ã°£ Áß ÀϺο¡ ºÒ°úÇÕ´Ï´Ù. ¶óÀ̺귯¸® ij½¬¸¦ Æ©´×ÇÒ °æ¿ì, OLTP º¸´Ù´Â DSS¿¡ ´ëÇÑ À̽´°¡ ÈξÀ Àû½À´Ï´Ù.

½ÇÇà °èȹ¿¡¼­ ÃÖÀûÀÇ ¾×¼¼½º °æ·Î°¡ ÃÖ¿ì¼±ÀÔ´Ï´Ù: ÀûÀº º¯µ¿»çÇ×ÀÌ ¼öºÐ ¶Ç´Â ¼ö½Ã°£ÀÇ ºñ¿ëÀ» ÃÊ·¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­, °³¹ßÀÚ´Â ¹Ýµå½Ã ´ÙÀ½À» ÁöÄÑ¾ß ÇÕ´Ï´Ù:

¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷ÀÌ ¹ÙÀÎµå º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì, ÀÌ·¯ÇÑ ±â´ÉÀÇ ÀÌÁ¡À» ¾òÁö ¸øÇÕ´Ï´Ù. ¿ÉƼ¸¶ÀÌÀú´Â ¿­ ¼±Åüº¿¡ °üÇÏ¿© ÃÑ°ýÀûÀ¸·Î °¡Á¤ÇÏÁö¸¸, ¸®ÅÍ·²(literal)ÀÌ ÀÖ´Â Cost Based Optimizer(¿ø°¡ ±â¹Ý ¿ÉƼ¸¶ÀÌÀú)´Â È÷½ºÅä±×·¥À» »ç¿ëÇÕ´Ï´Ù.

¿¹: ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇÒ °æ¿ì, ¿ÉƼ¸¶ÀÌÀú°¡ ½ÇÇà °èȹÀ» °áÁ¤ÇÒ ¶§ :1ÀÇ °ªÀº ¾ËÁö ¸øÇÕ´Ï´Ù.
    SQL> SELECT * FROM big_table
      2  WHERE number_column = :1;

¿ÉƼ¸¶ÀÌÀú´Â ÀÌ ´Ü°è¿¡¼­ ¹ÝȯÇÏ´Â ÇàÀÇ ¼ö¸¦ Á¤È®ÇÏ°Ô °è»êÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ°ÍÀº ¼­¹ö°¡ ÇÏÀ§ÀÇ(sub) ÃÖÀû ½ÇÇà °èȹÀ» »ç¿ëÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

µû¶ó¼­, À妽º·Î ¾×¼¼½ºÇÏ´Â OLTP ½Ã½ºÅÛ¿¡¼­ ¹ÙÀÎµå º¯¼ö´Â µ¿ÀÏÇÑ ±¸¹®ÀÌ µÎ ¹ø ½ÇÇàµÉ ±âȸ°¡ Àû±â ¶§¹®¿¡ ¹ÙÀÎµå º¯¼ö¸¦ »ç¿ëÇϵµ·Ï °­·ÂÇÏ°Ô ±ÇÀåÇÏ¿´Áö¸¸, ÀÇ»ç°áÁ¤ Áö¿ø ½Ã½ºÅÛ¿¡´Â ÀÌ»óÀûÀÌÁö ¾Ê½À´Ï´Ù. 

OLTP¿Í DSS¿¡ ´ëÇØ µ¿ÀÏÇÑ µ¥ÀÌÅͺ£À̽º »ç¿ë
Å« µ¥ÀÌÅͺ£À̽º¸¦ °ü¸®ÇÏ´Â ¸¹Àº ¿À¶óŬ °í°´µéÀº Á¾Á¾ Æ®·£Àè¼Ç ó¸®¿Í ÀÇ»ç°áÁ¤ Áö¿ø¿¡ µ¿ÀÏÇÑ ÀνºÅϽº¸¦ »ç¿ëÇϱ⸦ ¿øÇÕ´Ï´Ù. µÎ °¡Áö Çʿ並 À§ÇØ µ¥ÀÌÅÍ ÀúÀå °ø°£À» ÃÖÀûÀ¸·Î Æ©´×ÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù. µû¶ó¼­, ¾ÖÇø®ÄÉÀ̼ÇÀº ÀÚ¿ø »ç¿ëÀ» À§ÇØ °æÇÕÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù.

¿À¶óŬ»ç´Â OLTP¿Í DSS ÀÛ¾÷¿¡ ´ëÇØ º°µµÀÇ µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÏ¿© ÇÊ¿äÇÒ ¶§ µ¥ÀÌÅ͸¦ ´Ù¿î·ÎµåÇÒ °ÍÀ» °­·ÂÈ÷ ±ÇÀåÇÕ´Ï´Ù.

À̽´

±ÇÀå»çÇ×
±×·¯³ª, ÇϳªÀÇ µ¥ÀÌÅͺ£À̽º ´ë½Å µÎ°³ÀÇ Å« µ¥ÀÌÅͺ£À̽º¸¦ À¯ÁöÇÏ´Â °ÍÀº ºÐ¸íÈ÷ À繫 ºñ¿ëÀÌ µå´Â ÀÏÀ̱⠶§¹®¿¡, ÀϺΠÁ¶Á÷Àº ´ÙÀ½°ú °°Àº °æ¿ì ¿©ÀüÈ÷ ÇÏÀ̺긮µå ½Ã½ºÅÛÀ» ½ÇÇàÇϱâ·Î °áÁ¤ÇÒ °ÍÀÔ´Ï´Ù:

¸Þ¸ð¸® »ç¿ë
´ÙÀ½ÀÇ ÆĶó¹ÌÅÍ´Â ÁÖ°£¿¡ ´õ ³ôÀº °ªÀ» °®°Ô µÉ °ÍÀÔ´Ï´Ù(Áï, OLTP¿¡¼­):

º´·Ä ÁúÀÇ

ÇÑ°¡ÇÑ ½Ã°£¿¡, À̵é ÆĶó¹ÌÅ͸¦ ÀûÀýÇÑ ¼ö·Î Àç¼³Á¤ÇÏ¿©, DSS ÁúÀÇ »ç¿ëÀڵ鿡°Ô ¾ß°£ ÇÁ·ÎÆÄÀÏÀ» ÀçÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·Ñ¹é ¼¼±×¸ÕÆ®
°ø°£ÀÇ ¿©À¯°¡ ÀÖ´Â °æ¿ì, ´ÙÀ½À» ¿øÇÒ °ÍÀÔ´Ï´Ù:

°ø°£ÀÇ ¿©À¯°¡ ¾ø´Â °æ¿ì, ¾ß°£¿¡ µ¥ÀÌÅͺ£À̽º¸¦ Á¾·áÇϱâ Àü¿¡, ÁÖ°£ ·Ñ¹é ¼¼±×¸ÕÆ®¸¦ ¾ß°£ ·Ñ¹é ¼¼±×¸ÕÆ®·Î ´ëüÇÏ´Â ½ºÅ©¸³Æ®ÀÇ ÀÏÁ¤À» ¼¼¿ì°í, µ¥ÀÌÅͺ£À̽º¸¦ ½ÃÀÛÇÒ ¶§¿¡´Â ¹Ý´ë·Î ÇϽʽÿÀ. 

´ÙÁß ¾²·¹µå ¼­¹ö
NET8 tnsnames ÆÄÀÏÀº µÎ °¡Áö ¹üÁÖÀÇ º°Äª(alias)À» ÅëÇÕÇÒ ¼ö ÀÖ½À´Ï´Ù: °øÀ¯ ¼­¹ö Æ®·£Àè¼Ç¿¡ ´ëÇÑ º°Äª°ú Àü¿ë ¼­¹ö ¿¬°á¿¡ ´ëÇÑ º°Äª.

Åë°è ¼öÁý ¹× »ç¿ë

ANALYZE ¸í·ÉÀ¸·Î °´Ã¼¿¡ ´ëÇÑ Åë°è¸¦ ¼öÁýÇÕ´Ï´Ù. ºñ¿ë ±âÁØ ÃÖÀû±â´Â º¼·ýÀ̳ª ¼±ÅüºÀÇ ÀÛÀº º¯°æ¿¡ ¹Î°¨ÇÏÁö ¾ÊÁö¸¸, ÀÚÁÖ ¼öÁ¤µÇ´Â Å×ÀÌºí¿¡ ´ëÇÑ »õ Åë°è¸¦ ÁÖ±âÀûÀ¸·Î ¼öÁýÇÏ¿© ÃÖÀû±â°¡ Á¤È®ÇÑ ÃֽŠÁ¤º¸¸¦ »ç¿ëÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.

        ANALYZE {INDEX|TABLE|CLUSTER} object_name
        {COMPUTE|DELETE|ESTIMATE} STATISTICS
        [FOR ... [SIZE n]] [SAMPLE n {ROWS|PERCENT}]

ANALYZE ¸í·ÉÀ» »ç¿ëÇÏ¿© »õ Åë°è¸¦ ¼öÁýÇÏ¸é µ¥ÀÌÅÍ µñ¼Å³Ê¸®¿¡ ÀÖ´Â ±âÁ¸ Åë°è¸¦ µ¤¾î¾²°í °øÀ¯ Ç®¿¡¼­ °ü·ÃµÈ ½ÇÇà °èȹÀ» ºñ¿ó´Ï´Ù.

DBMS_STATS ÆÐÅ°Áö¿¡´Â À妽º, Å×À̺í, ½ºÅ°¸¶ ¶Ç´Â µ¥ÀÌÅͺ£À̽º¸¦ ºÐ¼®ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¿©·¯ ÇÁ·Î½ÃÀú°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀÌ ÆÐÅ°Áö¸¦ »ç¿ëÇÏ¸é ¾î´À Á¤µµ º´·Ä¼ºÀ» °¡Áö°í ´ëºÎºÐÀÇ Åë°è¸¦ ¼öÁýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº Oracle8i Supplied Packages Reference ¼³¸í¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

Åë°è Á¤È®µµ

Åë°è¸¦ ¼öÁýÇÒ ¶§ µÎ °¡Áö ·¹º§ÀÇ Á¤È®µµ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ç¥º»°ú ÇÔ²² »ç¿ëÇϸé COMPUTE ¿É¼Ç¸¸Å­ ½Å·ÚÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼öÁýµÈ Åë°è¸¦ Áö¿ï ¶§´Â DELETE ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ Åë°è°¡ ±âÁ¸ Åë°è¸¦ µ¤¾î¾²¹Ç·Î °´Ã¼¸¦ ÀçºÐ¼®Çϱâ Àü¿¡ ¹Ýµå½Ã DELETE ¿É¼ÇÀ» »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

FOR Àý

FOR ÀýÀº ´ÙÀ½ ¿É¼ÇÀ» Á¦°øÇÕ´Ï´Ù.

SIZE Àý

SIZE ÀýÀº È÷½ºÅä±×·¥ÀÇ ÃÖ´ë ¹öŶ °³¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ±âº»°ªÀº 75ÀÌ°í ÃÖ´ë°ªÀº 254ÀÔ´Ï´Ù. È÷½ºÅä±×·¥Àº ÀÌ ´Ü¿øÀÇ µÞºÎºÐ¿¡¼­ ´õ ÀÚ¼¼È÷ °ËÅäµË´Ï´Ù.

Å×À̺í Åë°è

Å×À̺íÀ» ºÐ¼®ÇÏ¸é ´ÙÀ½°ú °°Àº Å×ÀÌºí °ü·Ã Á¤º¸¸¦ ¾ò°Ô µË´Ï´Ù.

¸ðµç Å×ÀÌºí ·¹º§ Åë°è°¡ Áß¿äÇÏÁö¸¸ ºó ºí·Ï ¼ö°¡ ¿Ö Áß¿äÇÑÁö ¸íÈ®È÷ ¼³¸íµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î ¿©±â¼­ ÀÚ¼¼È÷ °ËÅäÇÕ´Ï´Ù.

ºí·Ï°ú ºó ºí·Ï ¼ö

°¢ Å×À̺íÀº ¼¼±×¸ÕÆ® Çì´õ ºí·Ï¿¡ °í¼öÀ§¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. °í¼öÀ§´Â Å×ÀÌºí¿¡ »ç¿ëµÈ ¸¶Áö¸· ºí·ÏÀ» °¡¸®Åµ´Ï´Ù. Oracle ¼­¹ö¿¡¼­ Àüü Å×ÀÌºí ½ºÄµÀ» ¼öÇàÇÒ ¶§ ¼­¹ö´Â óÀ½ºÎÅÍ °í¼öÀ§±îÁöÀÇ ¸ðµç ºí·ÏÀ» ÀнÀ´Ï´Ù. Å×ÀÌºí¿¡¼­ ÇàÀÌ »èÁ¦µÉ ¶§´Â °í¼öÀ§°¡ Àç¼³Á¤µÇÁö ¾Ê´Â´Ù´Â µ¥ À¯ÀÇÇϽʽÿÀ. ÀÌ°ÍÀº Oracle ¼­¹ö°¡ ºó ºí·ÏÀ» Àд µ¥ ½Ã°£À» ³¶ºñÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

Å×ÀÌºí ºÐ¼®ÀÌ ºÒ°¡´ÉÇϰųª ¹Ù¶÷Á÷ÇÏÁö ¸øÇÑ °æ¿ì DBMS_SPACE.UNUSED_SPACE ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© °í¼öÀ§¸¦ ã°í °í¼öÀ§ À§¿¡ ÀÖ´Â ºí·Ï ¼ö¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

¿¹Á¦

´ÙÀ½ ¿¹Á¦¿¡¼­ ¾à 5°³ÀÇ ºó ºí·ÏÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ºó ºí·Ï°ú Àüü ºí·Ï °£ÀÇ ºñÀ²À» ¸ð´ÏÅÍÇØ¾ß ÇÕ´Ï´Ù.

SQL> analyze table employees estimate statistics for table;

SQL> select num_rows,blocks,empty_blocks

2       ,      avg_space,avg_row_len, sample_size

3       from   dba_tables

4       where  table_name = 'EMPLOYEES' and owner = user;

NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE AVG_ROW_LEN SAMPLE_SIZE

-------- ------ ------------ --------- ----------- -----------

   15132    434            5       225          48        1064

 

ºó ºí·Ï¿¡ ¹®Á¦°¡ ÀÖ´Ù°í ÆÇ´ÜµÉ ¶§´Â Å×À̺íÀ» À籸¼ºÇØ¾ß ÇÕ´Ï´Ù. SQL*Plus, SQL*Loader, ¿¢½ºÆ÷Æ® ¹× ÀÓÆ÷Æ® °°Àº ¿©·¯ ´Ù¸¥ ±â¼úÀ» »ç¿ëÇÏ¿© Å×À̺íÀ» À籸¼ºÇϸé Å×ÀÌºí¿¡ ´õ È¿À²ÀûÀ¸·Î ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ŭ·¯½ºÅ͸µ ¿ä¼Ò

À妽º Ŭ·¯½ºÅ͸µ ¿ä¼Ò´Â ºñ¿ë ±âÁØ ÃÖÀû±â°¡ À妽º ½ºÄµ ºñ¿ë ÃßÁ¤¿¡ »ç¿ëÇÏ´Â Áß¿äÇÑ À妽º Åë°è·Î À妽º¸¦ ÅëÇØ ¸ðµç Å×À̺í ÇàÀ» °Ë»öÇÏ´Â µ¥ ÇÊ¿äÇÑ ³í¸®Àû µ¥ÀÌÅÍ ºí·Ï ¹æ¹® Ƚ¼ö¸¦ ³ªÅ¸³À´Ï´Ù. À妽º Ç׸ñÀÌ Å×À̺í Çà ¼ø¼­¸¦ µû¸£´Â °æ¿ì¿¡´Â °¢ ºí·Ï¿¡ ´ëÇÑ ¹æ¹®ÀÌ ÇÑ ¹ø¸¸ ÀÌ·ç¾îÁö¹Ç·Î ÀÌ °ªÀÌ µ¥ÀÌÅÍ ºí·Ï ¼ö¿¡ ±ÙÁ¢ÇÕ´Ï´Ù. ±×·¯³ª À妽º Ç׸ñÀÌ ¹«ÀÛÀ§·Î ¿©·¯ ´Ù¸¥ µ¥ÀÌÅÍ ºí·ÏÀ» °¡¸®Å°´Â °æ¿ì¿¡´Â Ŭ·¯½ºÅ͸µ ¿ä¼Ò°¡ Çà ¼ö¿¡ ±ÙÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹Á¦

 

SQL> analyze index reg_pk compute statistics;

SQL> select blevel, leaf_blocks, distinct_keys, clustering_factor

  2  from   dba_indexes

  3  where  index_name = 'REG_PK' and owner = user;

BLEVEL LEAF_BLOCKS DISTINCT_KEYS CLUSTERING_FACTOR

------ ----------- ------------- -----------------

     2         682         56252             21349

¿­ Åë°è º¸±â

°¡Àå ³·Àº °ª°ú °¡Àå ³ôÀº °ª µÑ ´Ù RAW(ÀÌÁø) Çü½ÄÀ¸·Î ÀúÀåµÈ´Ù´Â Á¡¿¡ À¯ÀÇÇϽʽÿÀ.

USER_TAB_COL_STATISTICS ºä´Â USER_TAB_COLUMNS ºä¿¡ Ç¥½ÃµÇ´Â ¿­ÀÇ °ü·Ã ºÎºÐ ÁýÇÕÀ» Á¦°øÇÕ´Ï´Ù. ´ë½Å DBA_TAB_COL_STATISTICS ºä¸¦ »ç¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ÀÌ ºä´Â OWNER ¿­À» Æ÷ÇÔÇÏÁö ¾ÊÀ¸¹Ç·Î µ¥ÀÌÅͺ£À̽ºÀÇ ¿©·¯ ´Ù¸¥ ½ºÅ°¸¶¿¡ °°Àº À̸§ÀÇ Å×À̺íÀÌ ¿©·¯ °³ ÀÖÀ» ¶§´Â È¥¶õ½º·¯¿î °á°ú¸¦ ¾ò°Ô µË´Ï´Ù.

NUM_BUCKETS ¿­Àº ÀÏ¹Ý ¿­ Åë°è°¡ ÇϳªÀÇ ¹öŶÀÌ ÀÖ´Â È÷½ºÅä±×·¥À¸·Î 󸮵ÊÀ» Ç¥½ÃÇÕ´Ï´Ù. È÷½ºÅä±×·¥Àº ´ÙÀ½ ÆäÀÌÁö¿¡¼­ °ËÅäµË´Ï´Ù.

¿¹Á¦

 

SQL> select column_name, num_distinct, low_value, high_value

  2  ,      num_nulls, num_buckets

  3  from   user_tab_col_statistics

  4  where  table_name = 'EMPLOYEES' and column_name = 'SALARY';

COLUMN_NAME NUM_DIST LOW_VALUE HIGH_VALUE NUM_NULLS NUM_BUCKETS

----------- -------- --------- ---------- --------- -----------

SALARY           496 C208      C30A62             0           1

È÷½ºÅä±×·¥ »ç¿ë

ÀÏ¹Ý ¿­ Åë°è¸¦ »ç¿ëÇÒ ¶§ °¢°¢ÀÇ ¿­¿¡ ´ëÇÑ ÃÖ¼Ò°ª°ú ÃÖ´ë°ªÀÌ ÀúÀåµË´Ï´Ù. ºñ¿ë ±âÁØ ÃÖÀû±â´Â ÀÌ °ªÀ» »ç¿ëÇؼ­ µÎ ¾ç±Ø °ª »çÀÌ¿¡ µ¥ÀÌÅÍ°¡ ±ÕµîÇÏ°Ô ºÐ»êµÇ¾ú´Ù°í °¡Á¤ÇÏ¿© ¼ú¾î ¼±ÅüºÀ» °è»êÇÕ´Ï´Ù. ±×·¯³ª µ¥ÀÌÅÍ°¡ ºñ´ëĪÀÎ °æ¿ì ÀÌ °¡Á¤Àº ºÎºÐÀûÀÎ ÃÖÀûÈ­ °èȹÀÌ µÉ ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù. È÷½ºÅä±×·¥¿¡¼­ ¿­ °ªÀ» ¸¹Àº ¹öŶÀ¸·Î ºÐÇÒÇÏ¿© ¿­ ³»¿¡¼­ÀÇ µ¥ÀÌÅÍ ºÐ»ê¿¡ ´ëÇØ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â °ÍÀ» °í·ÁÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÌ·¸°Ô Çϸé Ãß°¡ µ¥ÀÌÅÍ µñ¼Å³Ê¸® ÀúÀå ¿µ¿ªÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¹öŶÀÇ ³ôÀÌ´Â ±ÕÇüÀ» ÀÌ·ç¸ç ÀÌ°ÍÀº °¢ ¹öŶÀÌ ´ë·« °°Àº ¼öÀÇ °ªÀ» Æ÷ÇÔÇÔÀ» ÀǹÌÀÔ´Ï´Ù.

±âº» ¹öŶ ¼ö´Â 75ÀÌ°í ÃÖ´ë°ªÀº 254ÀÔ´Ï´Ù.

¿¹Á¦

SQL> analyze table classes compute statistics for columns class_id;

SQL> select endpoint_number, endpoint_value

  2  from   user_histograms

  3  where  table_name = 'CLASSES' and column_name = 'CLASS_ID';

ENDPOINT  ENDPOINT

 _NUMBER    _VALUE

--------  --------

       0     50008

       1     55198

       2     56718

       3     63037

     ...       ...

      75    155801

DBMS_STATS¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º °£ÀÇ Åë°è º¹»ç

DBMS_STATS ÆÐÅ°Áö ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇؼ­ ¿î¿ë ÁßÀÎ Oracle8i µ¥ÀÌÅͺ£À̽ºÀÇ Åë°è¸¦ Å×½ºÆ® µ¥ÀÌÅͺ£À̽º·Î º¹»çÇÏ¿© Æ©´×À» ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ½ºÅ°¸¶ Åë°è¸¦ º¹»çÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

  1. ¿î¿ë ÁßÀÎ µ¥ÀÌÅͺ£À̽ºÀÇ DBMS_STATS.CREATE_STAT_TABLE ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ Åë°è Å×À̺íÀ» »ý¼ºÇÕ´Ï´Ù.
  2. ¿î¿ë ÁßÀÎ µ¥ÀÌÅͺ£À̽ºÀÇ DBMS_STATS.EXPORT_SCHEMA_STATS ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ µñ¼Å³Ê¸®ÀÇ Åë°è¸¦ 1´Ü°èÀÇ »ç¿ëÀÚ Á¤ÀÇ Åë°è Å×À̺í·Î º¹»çÇÕ´Ï´Ù.
  3. ¿¢½ºÆ÷Æ®/ÀÓÆ÷Æ® À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¿© Å×½ºÆ® µ¥ÀÌÅͺ£À̽ºÀÇ ÇØ´ç »ç¿ëÀÚ Á¤ÀÇ Åë°è Å×À̺í·Î Åë°è¸¦ Àü¼ÛÇÕ´Ï´Ù.
  4. DBMS_STATS.IMPORT_SCHEMA_STATS ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© Å×½ºÆ® µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅÍ µñ¼Å³Ê¸®·Î Åë°è¸¦ ÀÓÆ÷Æ®ÇÕ´Ï´Ù.

°´Ã¼¸¦ ºÐ¼®Çϱâ Àü¿¡ DBMS_STATS ÆÐÅ°Áö¸¦ »ç¿ëÇÏ¿© Åë°è¸¦ ¹é¾÷ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¹é¾÷Àº ´ÙÀ½°ú °°Àº ¸ñÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Åë°è º¹»ç

µ¥ÀÌÅÍ µñ¼Å³Ê¸®¿¡¼­ »ç¿ëÀÚ Á¤ÀÇ Åë°è Å×À̺í·Î Å×ÀÌºí¿¡ ´ëÇÑ Åë°è¸¦ º¹»çÇÏ·Á¸é, CREATE_STAT_TABLE ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ Å×À̺íÀ» »ý¼ºÇÑ ´ÙÀ½ EXPORT_TABLE_STATS ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© Åë°è¸¦ º¹»çÇÕ´Ï´Ù.

DBMS_STATS´Â Åë°è º¹»ç¸¦ À§ÇØ ´ÙÀ½°ú °°Àº ÇÁ·Î½ÃÀú¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

ÇÁ·Î½ÃÀú

¼³¸í

CREATE_STAT_TABLE

Åë°è¸¦ º¸À¯ÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ Á¤ÀÇ Å×À̺íÀ» »ý¼ºÇÕ´Ï´Ù.

DROP_STAT_TABLE

»ç¿ëÀÚ Á¤ÀÇ Åë°è Å×À̺íÀ» »èÁ¦ÇÕ´Ï´Ù.

EXPORT_object_STATS

µ¥ÀÌÅÍ µñ¼Å³Ê¸®¿¡¼­ »ç¿ëÀÚ Á¤ÀÇ Å×À̺í·Î Åë°è¸¦ ¿¢½ºÆ÷Æ®ÇÕ´Ï´Ù.

IMPORT_ object_STATS

»ç¿ëÀÚ Á¤ÀÇ Å×ÀÌºí¿¡¼­ µ¥ÀÌÅÍ µñ¼Å³Ê¸®·Î Åë°è¸¦ ÀÓÆ÷Æ®ÇÕ´Ï´Ù.

object

COLUMN, INDEX, TABLE, SCHEMA°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.

°èȹ ¾ÈÁ¤µµ

ÃÖÀû±â¿¡ Ç×»ó ¿ÏÀüÇÑ Á¤º¸°¡ ÀÖ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î °¡´ÉÇÑ ÃÖ»óÀÇ ½ÇÇà °èȹÀ» ¼±ÅÃÇÒ ¼ö ¾ø´Â °æ¿ì°¡ Á¾Á¾ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì ÈùÆ®³ª ´Ù¸¥ Æ©´× ±â¹ýÀ» »ç¿ëÇÏ¿© SQL ¹®À» ÀçÀÛ¼ºÇÔÀ¸·Î½á ÃÖÀû±â°¡ °èȹÀ» ¼±ÅÃÇÏ´Â µ¥ µµ¿òÀ» ÁÖ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¸¸Á·½º·¯¿î °á°ú°¡ ³ª¿Â °æ¿ì ÃÖÀûÈ­¿¡ ¿µÇâÀ» ÁÖ´Â ¿ä¼Ò°¡ º¯°æµÇ¾úÀ»Áö¶óµµ °°Àº ÁúÀÇ°¡ ÀçÄÄÆÄÀ쵃 ¶§¸¶´Ù °°Àº Æ©´× °èȹÀÌ »ý¼ºµÇµµ·Ï ÇÏ°í ½ÍÀ» °ÍÀÔ´Ï´Ù.

Oracle8i´Â Oracle ¸±¸®½º, µ¥ÀÌÅͺ£À̽ºÀÇ º¯°æ ¶Ç´Â ÀϹÝÀûÀ¸·Î ½ÇÇà °èȹÀ» º¯°æÇϵµ·Ï ¸¸µå´Â ´Ù¸¥ ¿ä¼Ò¸¦ Æ÷¿ëÇϸ鼭 ½ÇÇà °èȹÀ» ¾ÈÁ¤È­ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ ½ÇÇà °èȹÀ» »ý¼ºÇϱâ À§ÇØ ÃÖÀû±â¿¡¼­ »ç¿ëÇÏ´Â ¿©·¯ ÈùÆ®°¡ Æ÷ÇÔµÈ ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

SQL ¹® µî°¡

°èȹ ¾ÈÁ¤µµ´Â ÁúÀÇ¿¡ Á¤È®È÷ ÀÏÄ¡ÇÏ´Â ÅؽºÆ®°¡ ÀÖ´ÂÁö¸¦ È®ÀÎÇÏ¿© ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀÌ ÀÖ´ÂÁö ÆÇ´ÜÇÕ´Ï´Ù. ÀÌ´Â °øÀ¯ Ç®ÀÇ ½ÇÇà °èȹÀ» Àç»ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¸¦ ÆÇ´ÜÇÒ ¶§ »ç¿ëÇÏ´Â °Í°ú µ¿ÀÏÇÑ ÀÏÄ¡ Á¶°ÇÀÔ´Ï´Ù.

½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀº ÃÖÀû±â¿¡¼­ ¾ÈÁ¤ÀûÀÎ ½ÇÇà °èȹÀ» ¾ò´Â µ¥ »ç¿ëÇÏ´Â ÈùÆ®¿¡ ºÎºÐÀûÀ¸·Î ÀÇÁ¸ÇÕ´Ï´Ù. µû¶ó¼­ °èȹÀÌ µî°¡°¡ µÇ´Â Á¤µµ´Â °èȹ¿¡¼­ »ç¿ëÇÏ´Â ÈùÆ®ÀÇ ¼º´É¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ½ºÅä¾Æµå ¾Æ¿ô¶óÀο¡ Æ÷ÇÔµÈ ½ÇÇà ´Ü°è¿¡´Â Çà ¾×¼¼½º ¹æ½Ä, Á¶ÀÎ ¼ø¼­, Á¶ÀÎ ¹æ½Ä, ºÐ»ê ¾×¼¼½º, ºä/¼­ºê Äõ¸® º´ÇÕÀÌ Æ÷ÇԵ˴ϴÙ. ºÐ»ê ¾×¼¼½º´Â ¿ø°Ý ³ëµåÀÇ ½ÇÇà °èȹÀ» Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù.

°èȹ ¾ÈÁ¤µµ

ÀÌ °èȹÀº ¸¹Àº À¯ÇüÀÇ µ¥ÀÌÅͺ£À̽º¿Í ÀνºÅϽº º¯°æÀ» °ÅÃÄ À¯Áö °ü¸®µË´Ï´Ù. µû¶ó¼­ ´ë·® ¹èÆ÷ÇÒ ÀÀ¿ë ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â °æ¿ì ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀ» »ç¿ëÇÏ¿© ¸ðµç °í°´ÀÌ °°Àº ½ÇÇà °èȹÀ» ¾×¼¼½ºÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, À妽º Ãß°¡·Î ½ºÅ°¸¶°¡ º¯°æµÈ °æ¿ì ½ºÅä¾Æµå ¾Æ¿ô¶óÀο¡¼­ »õ À妽º »ç¿ëÀ» ¸·À» ¼ö ÀÖ½À´Ï´Ù.

½ºÅä¾Æµå ¾Æ¿ô¶óÀÎ »ý¼º

Oracle¿¡¼­ ÀÚµ¿À¸·Î ¾Æ¿ô¶óÀÎÀ» »ý¼ºÇϰųª »ç¿ëÀÚ°¡ ƯÁ¤ SQL ¹®¿¡ ´ëÇÑ ¾Æ¿ô¶óÀÎÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Æ¿ô¶óÀÎÀº ÈùÆ®¿¡ ÀÇÁ¸ÇϹǷΠºñ¿ë ±âÁØ ÃÖÀû±â¸¦ »ç¿ëÇÕ´Ï´Ù.

¹üÁÖ

½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀº ¹üÁÖº°·Î ±×·ìÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. °°Àº SQL ¹®¿¡ ¿©·¯ ¹üÁÖÀÇ ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, OLTP ¹üÁÖ¿Í DSS ¹üÁÖ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¹üÁÖ À̸§À» »ý·«ÇÏ¸é ¾Æ¿ô¶óÀÎÀº DEFAULT ¹üÁÖ¿¡ Æ÷ÇԵ˴ϴÙ.

CREATE_STORED_OUTLINES ¸Å°³º¯¼ö

Oracle¿¡¼­´Â ¸Å°³º¯¼ö CREATE_STORED_OUTLINES°¡ TRUE³ª ¹üÁÖ À̸§À¸·Î ¼³Á¤µÉ ¶§ ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀ» ÀÚµ¿À¸·Î »ý¼ºÇÕ´Ï´Ù. TRUE·Î ¼³Á¤Çϸé DEFAULT ¹üÁÖ°¡ »ç¿ëµË´Ï´Ù. ÀÌ ¸Å°³º¯¼ö°¡ È°¼ºÈ­µÉ ¶§ Oracle¿¡¼­´Â ¸ðµç ½ÇÇàµÈ SQL ¹®¿¡ ´ëÇÑ ¾Æ¿ô¶óÀÎÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö¸¦ FALSE·Î ¼³Á¤ÇÏ¿© ÇÁ·Î¼¼½º¸¦ ºñÈ°¼ºÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Å°³º¯¼ö¸¦ »ç¿ëÇϸé Oracle¿¡¼­ ¾Æ¿ô¶óÀÎ À̸§À» »ý¼ºÇÕ´Ï´Ù.

CREATE OUTLINE ¸í·É

CREATE OUTLINE ¸í·ÉÀ» »ç¿ëÇÏ¿© ƯÁ¤ ¸í·É¹®¿¡ ´ëÇÑ ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀ» »ý¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ Á¢±Ù ¹æ¹ýÀÇ ÇÑ °¡Áö ÀåÁ¡Àº ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀÇ À̸§À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.

½ºÅä¾Æµå ¾Æ¿ô¶óÀÎ »ç¿ë

USE_STORED_OUTLINES¸¦ TRUE·Î ¼³Á¤Çϸé DEFAULT ¹üÁÖÀÇ ¾Æ¿ô¶óÀÎÀÌ »ç¿ëµË´Ï´Ù.

USE_STORED_OUTLINES¸¦ ¹üÁÖ À̸§À¸·Î ¼³Á¤Çϸé ÇØ´ç ¹üÁÖÀÇ ¾Æ¿ô¶óÀÎÀÌ »ç¿ëµË´Ï´Ù. ÇØ´ç ¹üÁÖ¿¡´Â ÀÏÄ¡ÇÏ´Â ¾Æ¿ô¶óÀÎÀÌ ¾øÁö¸¸ DEFAULT ¹üÁÖ¿¡ ÀÖÀ¸¸é ±× ¾Æ¿ô¶óÀÎÀÌ »ç¿ëµË´Ï´Ù.

¸í·É¹®Àº ¾Æ¿ô¶óÀÎÀÇ ¸í·É¹® ÅؽºÆ®¿Í ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. ¸í·É¹®Àº °øÀ¯ Ç®¿¡¼­ Ä¿¼­¸¦ ºñ±³ÇÏ´Â ¹æ½ÄÀ¸·Î ºñ±³µË´Ï´Ù. ÀÌ°ÍÀº ¾Æ¿ô¶óÀÎÀÇ ÈùÆ®°¡ ¸í·É¹®ÀÇ ÅؽºÆ®¿¡¼­ »ç¿ëµÉ ¶§¿Í ÀÏÄ¡ÇØ¾ß ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù. ¹ÙÀÎµå º¯¼ö °ªÀº ÀÏÄ¡ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.

SQL ¹®ÀÇ ½ÇÇà °èȹÀ» °áÁ¤Çϱâ À§ÇØ Oracle8i´Â ´ÙÀ½ ³í¸®¸¦ »ç¿ëÇÕ´Ï´Ù.

»ç¿ëÇÒ ¼ö ¾ø´Â °´Ã¼¸¦ »ç¿ëÇϵµ·Ï ¾Æ¿ô¶óÀο¡¼­ ÁöÁ¤ÇÏ´Â °æ¿ì ¸í·É¹®¿¡¼­´Â ´Ü¼øÈ÷ ÈùÆ®¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¸é, ¸í·É¹®ÀÌ ´õ ÀÌ»ó Á¸ÀçÇÏÁö ¾Ê´Â À妽º¸¦ ÂüÁ¶ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎÀÌ »ç¿ë ÁßÀÎÁö È®ÀÎÇϱâ À§ÇØ ¸í·É¹®¿¡ ´ëÇÑ explain planÀ» USE_STORED_OUTLINES ÁýÇÕ°ú ÇÔ²² ½ÇÇàÇÒ ¶§¿Í USE_STORED_OUTLINES ÁýÇÕ ¾øÀÌ ½ÇÇàÇÒ ¶§¸¦ ºñ±³ÇØ º¼ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

½ºÅä¾Æµå ¾Æ¿ô¶óÀÎ À¯Áö °ü¸®

OUTLN_PKG ÆÐÅ°ÁöÀÇ ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇÏ¿© ½ºÅä¾Æµå ¾Æ¿ô¶óÀÎ ¹× ±× ¹üÁÖ¸¦ °ü¸®ÇÕ´Ï´Ù.

ÇÁ·Î½ÃÀú

¼³¸í

DROP_UNUSED

»ý¼ºµÈ ÀÌÈÄ »ç¿ëµÈ ÀûÀÌ ¾ø´Â ¾Æ¿ô¶óÀÎÀ» »èÁ¦ÇÕ´Ï´Ù.

DROP_BY_CAT

ÁöÁ¤ÇÑ ¹üÁÖ À̸§¿¡ ÇÒ´çµÈ ¾Æ¿ô¶óÀÎÀ» »èÁ¦ÇÕ´Ï´Ù.

UPDATE_BY_CAT

ÇÑ ¹üÁÖÀÇ ¾Æ¿ô¶óÀÎÀ» ´Ù¸¥ ¹üÁÖ·Î ÀçÇÒ´çÇÕ´Ï´Ù.

ALTER/DROP OUTLINE ¸í·ÉÀ» »ç¿ëÇÏ¿© ¾Æ¿ô¶óÀÎÀ» °ü¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

¸ðµç ¾Æ¿ô¶óÀÎÀÌ ÀúÀåµÇ¾î ÀÖ´Â OUTLN ½ºÅ°¸¶¸¦ ¿¢½ºÆ÷Æ®ÇÏ¿© °èȹÀ» ¿¢½ºÆ÷Æ®ÇÏ°í ÀÓÆ÷Æ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. OUTLN ½ºÅ°¸¶ÀÇ Å×ÀÌºí¿¡ ¾Æ¿ô¶óÀÎÀ» ÁúÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

DBA_OUTLINES ¹× DBA_OUTLINE_HINTS´Â µ¿ÀÏÇÑ µ¥ÀÌÅÍ µñ¼Å³Ê¸® ºäÀÔ´Ï´Ù.

Âü°í: µ¥ÀÌÅͺ£À̽º¿Í ÇÔ²² »ç¿ëÀÚ OUTLNÀÌ ÀÚµ¿À¸·Î »ý¼ºµÇ¹Ç·Î ±× ¾ÏÈ£¸¦ º¯°æÇØ¾ß ÇÕ´Ï´Ù.

±¸Ã¼È­µÈ ºä

±¸Ã¼È­µÈ ºä¿¡´Â ºä ½ÇÇàÀÇ °á°ú Çà°ú ºä Á¤ÀÇ°¡ ¸ðµÎ ÀúÀåµË´Ï´Ù. ºä¿Í ¸¶Âù°¡Áö·Î ±¸Ã¼È­µÈ ºäµµ ÁúÀǸ¦ ±â¹ÝÀ¸·Î »ç¿ëÇÏÁö¸¸ ÀÌ ÁúÀÇ´Â ºä°¡ »ý¼ºµÉ ¶§¿¡ ½ÇÇàµÇ¾î ±× °á°ú°¡ Å×ÀÌºí¿¡ ÀúÀåµË´Ï´Ù. »ç¿ëÀÚ°¡ ´Ù¸¥ Å×À̺í°ú µ¿ÀÏÇÑ ÀúÀå ¿µ¿ª ¸Å°³º¯¼ö¸¦ °¡Áö°í Å×À̺íÀ» Á¤ÀÇÇÏ¿© ¼±ÅÃÇÑ Å×ÀÌºí½ºÆäÀ̽º¿¡ ¹èÄ¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ Å×À̺íó·³ ±¸Ã¼È­µÈ ºä Å×À̺íÀ» À妽ºÈ­ÇÏ°í ºÐÇÒÇÏ¿© ÀÌ Å×ÀÌºí¿¡ ´ëÇØ ½ÇÇàµÇ´Â ÁúÀÇÀÇ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.

ÁúÀǸ¦ ÅëÇØ ¾òÀº ±¸Ã¼È­µÈ ºäÀÇ µ¥ÀÌÅÍ°¡ ¸¸Á·½º·¯¿ï °æ¿ì ¼­¹ö¿¡¼­´Â ±âº» Å×À̺íÀÌ ¾Æ´Ñ ºä¸¦ ÂüÁ¶Çϵµ·Ï ÁúÀǸ¦ º¯ÇüÇÕ´Ï´Ù. ±¸Ã¼È­µÈ ºä¸¦ »ç¿ëÇÏ¸é ±¸Ã¼È­µÈ ºä¿¡ ´ëÇÑ ÁúÀǸ¦ ÀçÀÛ¼ºÇÏ¿© Àç½ÇÇàÇÏ´Â °Í°ú °°Àº ºñ°æÁ¦ÀûÀÎ ÀÛ¾÷(¿¹: Á¶ÀÎ ¶Ç´Â ÇÕ°è)À» ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.

±¸Ã¼È­µÈ ºä °»½Å

±¸Ã¼È­µÈ ºä´Â ½º³À¼¦°ú °°Àº ³»ºÎ ó¸® ¹æ¹ýÀ» »ç¿ëÇÏ¸ç ¿©·¯ °»½Å ±â¹ýÀ» Áö¿øÇÕ´Ï´Ù.

±¸Ã¼È­µÈ ºäÀÇ ¿ÏÀüÇÑ °»½Å¿¡´Â CREATE ¸í·ÉÀÇ ÁúÀÇ Á¤ÀǸ¦ Àç½ÇÇàÇÏ¿© ±âÁ¸ µ¥ÀÌÅ͸¦ À߶󳻴 ÀÛ¾÷°ú µðÅ×ÀÏ Å×À̺íÀ» ±â¹ÝÀ¸·Î ÇÏ´Â ¸ðµç µ¥ÀÌÅ͸¦ Àç»ðÀÔÇÏ´Â ÀÛ¾÷ÀÌ Æ÷ÇԵ˴ϴÙ.

ºü¸¥ °»½ÅÀº ¸¶Áö¸· °»½Å ÀÌÈÄÀÇ º¯°æ ³»¿ë¿¡¸¸ Àû¿ëµË´Ï´Ù. µÎ °¡Áö À¯ÇüÀÇ ºü¸¥ °»½ÅÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Force °»½Å À¯ÇüÀ¸·Î Á¤ÀÇµÈ ºä´Â °¡´ÉÇÒ °æ¿ì ºü¸¥ ó¸® ¹æ¹ýÀ¸·Î °»½ÅµË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¿ÏÀü °»½ÅÀ» »ç¿ëÇÕ´Ï´Ù. Force´Â ±âº» °»½Å À¯ÇüÀÔ´Ï´Ù.

Never ¿É¼ÇÀº ±¸Ã¼È­µÈ ºäÀÇ ¸ðµç °»½ÅÀ» ¾ïÁ¦ÇÕ´Ï´Ù.

°»½Å ¸ðµå

DBMS_MVIEW ÆÐÅ°Áö¸¦ »ç¿ëÇÏ¿© ¼öµ¿ °»½ÅÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. DBMS_MVIEW ÆÐÅ°Áö´Â REFRESH, REFRESH_DEPENDENT, REFRESH_ALL_MVIEWS ÇÁ·Î½ÃÀú µî ¸¹Àº ÇÁ·Î½ÃÀú¿Í ÇÔ¼ö¸¦ Á¦°øÇÏ¿© ±¸Ã¼È­µÈ ºä¸¦ °ü¸®ÇÕ´Ï´Ù.

´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÀÚµ¿ °»½ÅÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

Âü°í: ¸ðµç ±¸Ã¼È­µÈ ºä¿¡ ´ëÇØ ¸ðµç °»½Å À¯Çü°ú °»½Å ¸ðµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Oracle8i Replication ¼³¸í¼­ÀÇ ºÎ·Ï C¿¡ °¢°¢ÀÇ ¸ðµå ¹× ¸ðµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì°¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.

±¸Ã¼È­µÈ ºäÀÇ ¼öµ¿ °»½Å

´ÙÀ½Àº ±¸Ã¼È­µÈ ºä(MV)¿¡ ´ëÇØ °¡´ÉÇÑ °»½Å ½Ã³ª¸®¿À ¸ñ·ÏÀÔ´Ï´Ù.

ÆÐÅ°ÁöÀÇ ÇÁ·Î½ÃÀú´Â ¸¹Àº ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© ´ÙÀ½À» ÁöÁ¤ÇÕ´Ï´Ù.

°»½Å ÀÛ¾÷ ½ÇÇà¿¡´Â ¼­¹ö ÀÛ¾÷ ´ë±â¿­ÀÌ »ç¿ëµË´Ï´Ù. µû¶ó¼­ ÇØ´ç ÃʱâÈ­ ¸Å°³º¯¼öÀÎ JOB_QUEUE_PROCESSES¿Í JOB_QUEUE_INTERVALÀ» ¼³Á¤ÇÏ¿© ÀÛ¾÷ ´ë±â¿­ °»½Å ÇÁ·Î¼¼½º¸¦ »ç¿ëÇϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.

ÁúÀÇ ÀçÀÛ¼º

±¸Ã¼È­µÈ ºä¿¡ ´ëÇÑ ¾×¼¼½º°¡ ¹ÙÅÁÀÌ µÇ´Â ±âº» Å×ÀÌºí¿¡ ´ëÇÑ ¾×¼¼½ºº¸´Ù ÈξÀ ´õ ºü¸¦ ¼ö ÀÖÀ¸¹Ç·Î ÃÖÀû±â´Â ÁúÀÇ¿¡¼­ Çã¿ëÇÏ´Â °æ¿ì ºä¿¡ ¾×¼¼½ºÇϵµ·Ï ÁúÀǸ¦ ÀçÀÛ¼ºÇÕ´Ï´Ù. ÁúÀÇ ÀçÀÛ¼º ÀÛ¾÷Àº ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Åõ¸íÇÕ´Ï´Ù. ÀÌ·± Á¡¿¡¼­ ÁúÀǸ¦ ÀçÀÛ¼ºÇÏ´Â °ÍÀº À妽º¸¦ »ç¿ëÇÏ´Â °Í°ú À¯»çÇÕ´Ï´Ù.

»ç¿ëÀÚ´Â ±¸Ã¼È­µÈ ºä¸¦ »ç¿ëÇϱâ À§ÇÑ ¸í½ÃÀû ±ÇÇÑÀ» °¡Áö°í ÀÖÁö ¾Ê¾Æµµ µË´Ï´Ù.  ±âº» Å×ÀÌºí¿¡ ´ëÇÑ ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ°¡ ½ÇÇàÇÑ ÁúÀǸ¦ ÀçÀÛ¼ºÇÏ¿© ±¸Ã¼È­µÈ ºä¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸Ã¼È­µÈ ºä´Â È°¼ºÈ­µÇ°Å³ª ºñÈ°¼ºÈ­µÉ ¼ö ÀÖÀ¸¸ç È°¼ºÈ­µÈ ±¸Ã¼È­µÈ ºä¸¦ ÁúÀÇ ÀçÀÛ¼º¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÁúÀÇ ÀçÀÛ¼º

ÁúÀÇ ÀçÀÛ¼ºÀº ÃÖÀû±â¿¡¼­ ¼öÇàµË´Ï´Ù. ÀçÀÛ¼ºÀº ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Åõ¸íÇÕ´Ï´Ù.

ÀçÀÛ¼ºÀ» ¼öÇàÇÏ´Â ±â´ÉÀº QUERY_REWRITE_ENABLED ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀνºÅϽº ·¹º§À̳ª ¼¼¼Ç ·¹º§ Áß Çϳª¿¡¼­ È°¼ºÈ­µÇ¾î¾ß ÇÕ´Ï´Ù.

ÁúÀÇ ÀçÀÛ¼ºÀ» À§ÇØ °³º° ±¸Ã¼È­µÈ ºä¸¦ È°¼ºÈ­Çϰųª ºñÈ°¼ºÈ­ÇÏ·Á´Â »ç¿ëÀÚ´Â GLOBAL QUERY REWRITE³ª QUERY REWRITE ½Ã½ºÅÛ ±ÇÇÑÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. µÎ ±ÇÇÑ ¸ðµÎ »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ ½ºÅ°¸¶¿¡ ÀÖ´Â ±¸Ã¼È­µÈ ºä¸¦ È°¼ºÈ­ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. GLOBAL ¹öÀüÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚ ¼ÒÀ¯ÀÇ ±¸Ã¼È­µÈ ºä¸¦ ¸ðµÎ È°¼ºÈ­ÇÒ ¼ö ÀÖ´Â ¹Ý¸é ´Ü¼ø QUERY REWRITE ±ÇÇÑÀ» »ç¿ëÇÒ ¶§´Â ºä¸¸ÀÌ ¾Æ´Ï¶ó ±âº» Å×ÀÌºíµµ »ç¿ëÀÚÀÇ ½ºÅ°¸¶¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

±¸Ã¼È­µÈ ºä »ý¼º: ±¸¹®

±¸Ã¼È­µÈ ºä »ý¼º ±¸¹®Àº CREATE SNAPSHOT ¸í·É°ú À¯»çÇϸç Ãß°¡ ¿É¼ÇÀÌ ¸î °¡Áö ÀÖ½À´Ï´Ù. ¿¹Á¦¿¡¼­´Â CREATE ¸í·ÉÀÌ ½ÇÇàµÉ ¶§ ±¸Ã¼È­µÈ ºä°¡ ä¿öÁöµµ·Ï BUILD IMMEDIATE ¿É¼ÇÀ» ¼±ÅÃÇÕ´Ï´Ù. ÀÌ°ÍÀº ±âº» µ¿ÀÛÀ̸ç ÀÌ°Í°ú´Â ´Þ¸® ±¸Á¶´Â »ý¼ºÇÏÁö¸¸ ù¹ø° °»½ÅÀÌ ¹ß»ýÇÒ ¶§±îÁö ±¸Ã¼È­µÈ ºä¸¦ ä¿ìÁö ¾Ê´Â BUILD DEFERRED ¿É¼ÇÀ» ¼±ÅÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

Oracle8i ÀÌÀü¿¡ »ý¼ºµÈ Å×À̺íÀÌ ±¸Ã¼È­µÈ ºäÀÇ ¼Ò½º°¡ µÇµµ·Ï ÇÏ·Á´Â °æ¿ì¿¡´Â ON PREBUILD TABLE ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù.

ENABLE/DISABLE QUERY REWRITE ÀýÀº ±¸Ã¼È­µÈ ºä¿¡ ´ëÇØ ÁúÀÇ ÀçÀÛ¼ºÀÌ ÀÚµ¿À¸·Î È°¼ºÈ­µÇ°Ô ÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù.

±¸Ã¼È­µÈ ºä: ÁúÀÇ ÀçÀÛ¼º

ÁúÀÇ¿¡ ´ëÇÑ ½ÇÇà °èȹ(°èȹ Å×À̺íÀÇ Çü½ÄÀÌ ÁöÁ¤µÈ °á°ú)Àº ÁúÀÇ°¡ µÎ °³ÀÇ ±âº» Å×ÀÌºí¿¡¼­ ½ÇÇàµÇÁö ¾Ê°í ´ÜÁö ±¸Ã¼È­µÈ ºä Å×ÀÌºí¸¸À» ½ºÄµÇÑ´Ù´Â °ÍÀ» º¸¿© ÁÝ´Ï´Ù. ÀÌ ¿¹Á¦´Â ±¸Ã¼È­µÈ ºä¿Í ÁúÀÇ ÀçÀÛ¼ºÀÇ À§·ÂÀ» º¸¿©ÁÖ´Â °ÍÀÔ´Ï´Ù. ±¸Ã¼È­µÈ ºä·Î ±¸¼ºµÈ Å×À̺íÀº ÁúÀÇ¿¡¼­ ¸í¸íµÈ ±âº» Å×À̺í°ú ÀÌµé ±âº» Å×ÀÌºí¿¡ ´ëÇÑ ¸ðµç ÀÛ¾÷À» ¿ÏÀüÈ÷ ´ë½ÅÇÕ´Ï´Ù.

ÁúÀÇ ÀçÀÛ¼º Á¦¾î

´ÙÀ½ ¸Å°³º¯¼ö·Î ÁúÀÇ ÀçÀÛ¼ºÀ» Á¦¾îÇÕ´Ï´Ù.

OPTIMIZER_MODE: ºñ¿ë ±âÁØ ÃÖÀûÈ­¿¡¼­¸¸ ÁúÀÇ ÀçÀÛ¼ºÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±ÔÄ¢ ±â¹Ý ÃÖÀûÈ­¸¦ »ç¿ëÇϸé ÁúÀÇ ÀçÀÛ¼ºÀÌ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù.

QUERY_REWRITE_ENABLED: ÀÌ ¸Å°³º¯¼ö¸¦ FALSE·Î ¼³Á¤ÇÏ¸é ºñ¿ë ±âÁØ ÃÖÀû±â¸¦ »ç¿ëÇϸ鼭µµ ÁúÀÇ ÀçÀÛ¼º »ç¿ëÀ» ¾ïÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Â °³º° ¼¼¼Ç»Ó¸¸ ¾Æ´Ï¶ó Àüü ÀνºÅϽº¿¡ ´ëÇØ µ¿ÀûÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

QUERY_REWRITE_INTEGRITY: ÀÌ ¸Å°³º¯¼ö´Â ÀνºÅϽº¿Í °³º° ¼¼¼Ç¿¡ ´ëÇØ µ¿ÀûÀ¸·Î Àç¼³Á¤µÉ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Â ´ÙÀ½ °ªÀ» ¹Þ¾ÆµéÀÔ´Ï´Ù.

  • ±âº»°ªÀÎ ENFORCED´Â Oracle¿¡¼­ ÀÏ°ü¼ºÀ» º¸ÀåÇÒ ¼ö ÀÖ´Â °æ¿ì¿¡¸¸ ÁúÀÇ ÀçÀÛ¼ºÀ» È°¼ºÈ­ÇÕ´Ï´Ù. ÃÖ½ÅÀÇ ±¸Ã¼È­µÈ ºä¿Í È°¼ºÈ­µÇ°í °ËÁõµÈ Á¦¾à Á¶°Ç¸¸ÀÌ ÁúÀÇ ÀçÀÛ¼º¿¡ »ç¿ëµË´Ï´Ù.
  • TRUSTED´Â ¹Ýµå½Ã °­Á¦ÀûÀÎ °ÍÀº ¾Æ´ÏÁö¸¸ ¼±¾ðµÈ °ü°è¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ÁúÀÇ ÀçÀÛ¼ºÀ» Çã¿ëÇÕ´Ï´Ù. °»½ÅµÈ ±¸Ã¼È­µÈ ºä¿Í RELY Ç÷¡±×¸¦ °¡Áø Á¦¾à Á¶°ÇÀÌ ¸ðµÎ ÁúÀÇ ÀçÀÛ¼º¿¡ »ç¿ëµË´Ï´Ù.
  • STALE_TOLERATED¸¦ »ç¿ëÇÏ¸é ¸¶Áö¸· DML ÀÛ¾÷ ÀÌÈÄ °»½ÅµÈ ÀûÀÌ ¾ø´Â ±¸Ã¼È­µÈ ºä¿Í ¼±¾ðµÈ °ü°è¸¦ ÁúÀÇ ÀçÀÛ¼º¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÁúÀÇ ÀçÀÛ¼ºÀº ½ÇÇà °èȹ °æ·Î¿Í À¯»çÇÏ°Ô Ã³¸®µË´Ï´Ù. µû¶ó¼­ ÁúÀÇ ÀçÀÛ¼º°ú °ü·ÃµÈ °´Ã¼ ±ÇÇÑÀº ¾ø½À´Ï´Ù. µðÅ×ÀÏ Å×ÀÌºí¿¡ ´ëÇÑ ¾×¼¼½º¸¦ °¡Áö°í ÀÖ´Â »ç¿ëÀÚ´Â ¿ä¾à ÀçÀÛ¼º¿¡¼­ ¾Ï½ÃÀûÀ¸·Î ÀÌÀÍÀ» ¾ò½À´Ï´Ù.

»õ ÈùÆ®ÀÎ REWRITE¸¦ »ç¿ëÇÏ¿© ÁúÀÇ ÀçÀÛ¼ºÀÇ °í·Á ´ë»óÀÌ µÉ ±¸Ã¼È­µÈ ºä¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç ´Ù¸¥ ÈùÆ®ÀÎ NOREWRITE¸¦ »ç¿ëÇÏ¿© ÁúÀÇ ºí·Ï¿¡ ´ëÇØ ÀçÀÛ¼ºÀ» ÇÏÁö ¾Êµµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Â÷¿ø

Â÷¿øÀº ±âÁ¸ µ¥ÀÌÅͺ£À̽º Å×À̺íÀÇ ¿­À» ±â¹ÝÀ¸·Î ÇÏ´Â °èÃþÀ» Á¤ÀÇÇÏ´Â Oracle8i µ¥ÀÌÅÍ µñ¼Å³Ê¸® ±¸Á¶ÀÔ´Ï´Ù. Â÷¿øÀº ¿É¼ÇÀÌÁö¸¸ ´ÙÀ½°ú °°Àº ÀÌÀ¯ ¶§¹®¿¡ »ç¿ëÇÒ °ÍÀ» Àû±ØÀûÀ¸·Î ±ÇÀåÇÏ°í ÀÖ½À´Ï´Ù.

  • Á¦¾à Á¶°ÇÀ» »ç¿ëÇÏÁö ¾Ê°íµµ Ãß°¡ ÀçÀÛ¼ºÀÌ °¡´ÉÇÕ´Ï´Ù. ¼º´É»óÀÇ ÀÌÀ¯·Î µ¥ÀÌÅÍ ¿þ¾îÇϿ콺¿¡¼­ Á¦¾à Á¶°ÇÀ» ±¸ÇöÇÏ´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.
  • Â÷¿ø°ú °èÃþÀ» ¸í½ÃÀûÀ¸·Î ¹®¼­È­ÇÏ´Â µ¥ µµ¿òÀÌ µË´Ï´Ù.
  • OLAP Åø¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Â÷¿ø¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº Oracle8i Server Tuning ¼³¸í¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÁúÀÇ ÀçÀÛ¼º ºñÈ°¼ºÈ­

ÀÌ ¿¹Á¦¿¡¼­ NOREWRITE ÈùÆ®´Â ÃÖÀû±â¿¡¼­ ±¸Ã¼È­µÈ ºä¸¦ »ç¿ëÇÏ´Â ÁúÀǸ¦ ÀçÀÛ¼ºÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. ÀÌ Á¡¸¸ Á¦¿ÜÇÏ¸é ¸í·É¹®ÀÌ ÀÌÀü ¿¹Á¦¿Í µ¿ÀÏÇÕ´Ï´Ù. ÁúÀÇ¿¡¼­ ÆÄ»ýµÈ ½ÇÇà °èȹÀº ±×·ìÀ» ¾òÀ¸·Á´Â Á¤·Ä°ú µÎ Å×ÀÌºí »çÀÌÀÇ Çؽà Á¶ÀÎÀ» Æ÷ÇÔÇÏ¿© ¿ø·¡ÀÇ ¸í·É¹®ÀÌ ½ÇÇàµÇ´Â °ÍÀ» º¸¿©ÁÝ´Ï´Ù.

REWRITE/NOREWRITE ÈùÆ®´Â ENABLE QUERY REWRITE ÀýÀ» °¡Áø CREATE ¶Ç´Â ALTER MATERIALIZED VIEW ¸í·É¿¡¼­ ¼³Á¤µÈ ±¸Ã¼È­µÈ ºä Á¤ÀǸ¦ ¹«È¿È­ÇÕ´Ï´Ù.

X Á¤´ä:A


X Á¤´ä:B


X Á¤´ä:B


X Á¤´ä:B


X Á¤´ä:A