À妽º ºÐ·ù

À妽º´Â Å×ÀÌºí¿¡ ÀÖ´Â ÇàÀ» Á÷Á¢ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â Æ®¸® ±¸Á¶·Î¼­ ³í¸®Àû ¼³°è ¶Ç´Â ¹°¸®Àû ±¸Çö¿¡ ±Ù°ÅÇÏ¿© ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù. ³í¸®Àû ºÐ·ù´Â À妽º¸¦ ÀÀ¿ë ÇÁ·Î±×·¥ °üÁ¡¿¡¼­ ³ª´« °ÍÀÌ°í ¹°¸®Àû ºÐ·ù´Â À妽º ÀúÀå ¹æ¹ý¿¡ µû¶ó ³ª´« °ÍÀÔ´Ï´Ù.

´ÜÀÏ ¿­ À妽º ¹× ¿¬°áµÈ À妽º

´ÜÀÏ ¿­ À妽º´Â ÇØ´ç À妽º Ű¿¡ ¿­ÀÌ Çϳª¸¸ Àִµ¥ ¿¹¸¦ µé¸é, »ç¿ø Å×À̺íÀÇ »ç¿ø ¹øÈ£ ¿­¿¡ ´ëÇÑ À妽º°¡ ¿©±â¿¡ ÇØ´çµË´Ï´Ù.

¿¬°áµÈ À妽º´Â Á¶ÇÕ À妽º¶ó°íµµ Çϸç Å×À̺íÀÇ ¿©·¯ ¿­¿¡ ´ëÇØ »ý¼ºµÇ´Â ÀÌ ¿­Àº Å×À̺íÀÇ ¿­°ú ¼ø¼­°¡ µ¿ÀÏÇϰųª ÀÎÁ¢ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, »ç¿ø Å×À̺íÀÇ ºÎ¼­ ¿­°ú Á÷À§ ¿­¿¡ ´ëÇÑ À妽º°¡ ¿©±â¿¡ ÇØ´çµË´Ï´Ù.

Á¶ÇÕ Å° À妽ºÀÇ ÃÖ´ë ¿­ ¼ö´Â 32°³Áö¸¸ ¸ðµç ¿­À» ÇÕÄ£ Å©±â°¡ ÇØ´ç µ¥ÀÌÅÍ ºí·Ï Å©±âÀÇ 3ºÐÀÇ 1À» ³ÑÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù.

°íÀ¯ ¹× ºñ°íÀ¯ À妽º

°íÀ¯ À妽º´Â Å×À̺íÀÇ µÎ Çà °ªÀÌ À妽º Á¤ÀÇ ¿­¿¡¼­ Áߺ¹µÇÁö ¾Êµµ·Ï ÇϹǷΠ°íÀ¯ À妽ºÀÇ À妽º Ű Çϳª´Â Å×ÀÌºí¿¡¼­ ÇÑ ÇุÀ» °¡¸®Å³ ¼ö ÀÖ½À´Ï´Ù.

ºñ°íÀ¯ À妽º¿¡¼­´Â ´ÜÀÏ Å°°¡ ¿©·¯ Çà°ú ¿¬°üµÉ ¼ö ÀÖ½À´Ï´Ù.

ÇÔ¼ö ±â¹Ý À妽º

ÇÔ¼ö ±â¹Ý À妽º´Â À妽ºÈ­µÈ Å×À̺íÀÇ ¿­À» Çϳª ÀÌ»ó Æ÷ÇÔÇÏ´Â ÇÔ¼ö ¶Ç´Â Ç¥Çö½ÄÀ» »ç¿ëÇÒ ¶§ »ý¼ºµÇ¸ç ÇÔ¼ö ¶Ç´Â Ç¥Çö½ÄÀÇ °ªÀ» ¹Ì¸® °è»êÇÑ ´ÙÀ½ À妽º¿¡ ÀúÀåÇÕ´Ï´Ù. ÇÔ¼ö ±â¹Ý À妽º´Â B Æ®¸® À妽º ¶Ç´Â ºñÆ®¸Ê À妽º·Î »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ºÐÇÒµÈ À妽º ¹× ºÐÇÒµÇÁö ¾ÊÀº À妽º

ºÐÇÒµÈ À妽º´Â Å« Å×ÀÌºí¿¡¼­ ÇϳªÀÇ À妽º¿¡ ÇØ´çÇÏ´Â À妽º Ç׸ñÀ» ¿©·¯ ¼¼±×¸ÕÆ®¿¡ ÀúÀåÇÏ´Â µ¥ »ç¿ëÇϸç ÀÌ·¸°Ô ºÐÇÒÇϸé ÇϳªÀÇ À妽º¸¦ ¿©·¯ Å×ÀÌºí½ºÆäÀ̽º¿¡ ºÐ»ê½ÃÄÑ À妽º Á¶È¸ °æÇÕÀ» ÁÙÀÌ°í °ü¸®¸¦ ¿ëÀÌÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ºÐÇÒµÈ À妽º´Â ´ë°³ È®À强 ¹× °ü¸® ¿ëÀ̼ºÀ» Çâ»ó½Ã۱â À§ÇØ ºÐÇÒµÈ Å×À̺í°ú ÇÔ²² »ç¿ëÇϴµ¥ °¢ Å×À̺íºÐÇÒ ¿µ¿ª¸¶´Ù Çϳª¾¿ À妽º ºÐÇÒ ¿µ¿ªÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ´Ü¿øÀº ºÐÇÒµÇÁö ¾ÊÀº B Æ®¸® À妽º ¹× ºñÆ®¸Ê À妽ºÀÇ »ý¼º ¹× À¯Áö °ü¸® ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.

 

¸ðµç À妽º°¡ B-Æ®¸® ±¸Á¶¿¡ ¿¬°üµÇ¾î ÀÖµíÀÌ B-Æ®¸® À妽º´Â º¸Åë °¢ Ű¿¡ ´ëÇØ ROWID °ªµéÀ» ÀúÀåÇÏ´Â À妽º¿Í ¿¬°üµÇ¾î ÀÖ½À´Ï´Ù.

B-Æ®¸® À妽º ±¸Á¶
À妽º Á¦ÀÏ À§´Â root·Î À妽ºÀÇ ´ÙÀ½ ·¹º§À» °¡¸®Å°´Â ¿£Æ®¸®¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ´ÙÀ½ ·¹º§Àº branch ºí·ÏÀ¸·Î ¸¶Âù°¡Áö·Î ´ÙÀ½ ·¹º§ÀÇ À妽º ºí·ÏÀ» °¡¸®Åµ´Ï´Ù. ÃÖÇÏÃþ ·¹º§Àº leaf ³ëµå·Î Å×À̺íÀÇ ÇàÀ» °¡¸®Å°´Â À妽º ¿£Æ®¸®¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. leaf ºí·ÏÀº Ű °ªÀÇ ³»¸²Â÷¼øÀº ¹°·Ð ¿À¸§Â÷¼øÀÇ Å° °ªÀ¸·Î À妽º¸¦ °Ë»öÇϴµ¥ Æí¸®Çϵµ·Ï ¾ç¹æÇâ(doubling)À¸·Î ¿¬°á(link)µÇ¾î ÀÖ½À´Ï´Ù.

À妽º Leaf  ¿£Æ®¸®ÀÇ Çü½Ä
À妽º ¿£Æ®¸®´Â ´ÙÀ½ ¿ä¼Òµé·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
   -  ¿­ ¼ö¿Í Àá±Ý(locking) Á¤º¸¸¦ ÀúÀåÇÏ´Â ¿£Æ®¸® Çì´õ
   -  Å°ÀÇ ¿­ ±æÀÌ¿Í ¿­ °ªÀÌ Â÷·Ê·Î Á¤ÀÇµÈ ½Ö(pair)À¸·Î µÈ °ª(ÀÌµé ½ÖÀÇ °¹¼ö°¡ À妽º¿¡ µé¾î°¥ ¼ö ÀÖ´Â ¿­ ¼öÀÇ ÃÖ´ëÄ¡ÀÔ´Ï´Ù.)
   -  Å° °ªÀ» Æ÷ÇÔÇÏ´Â ÇàÀÇ ROWID

À妽º Leaf ¿£Æ®¸® Ư¼º
ºÐÇÒµÇÁö ¾ÊÀº Å×À̺íÀÇ  B-Æ®¸® À妽º´Â ´ÙÀ½°ú °°½À´Ï´Ù.
     -   °°Àº Ű °ªÀ» °®´Â ÇàÀÌ ¿©·¯ °³ ÀÖÀ¸¸é Ű °ªÀÌ ¹Ýº¹µË´Ï´Ù.
     -   ¸ðµç Ű ¿­ÀÇ °ªÀÌ NULLÀÎ Çà¿¡ ´ëÀÀµÇ´Â À妽º ¿£Æ®¸®´Â ¾ø½À´Ï´Ù.
     -   ¸ðµç ÇàÀÌ °°Àº ¼¼±×¸ÕÆ®¿¡ ¼ÓÇϹǷΠÁ¦ÇÑµÈ ROWID°¡ Å×À̺íÀÇ ÇàÀ»  
     -   °¡¸®Å°´Âµ¥ »ç¿ëµË´Ï´Ù.

À妽º¿¡ÀÇ DML ÀÛ¾÷ÀÇ È¿°ú
¿À¶óŬ ¼­¹ö´Â Å×ÀÌºí¿¡ DML ÀÛ¾÷ÀÌ ¼öÇàµÉ ¶§ ¸ðµç À妽ºµµ À¯Áö º¸¼öÇÕ´Ï´Ù. À妽º¿¡ÀÇ DML ¸í·ÉÀÇ È¿°ú´Â ´ÙÀ½°ú °°½À´Ï´Ù.
  -    »ðÀÔ(insert) ÀÛ¾÷Àº ÀûÀýÇÑ ºí·Ï¿¡ À妽º ¿£Æ®¸®¸¦ »ðÀÔÇÕ´Ï´Ù.
  -    Çà »èÁ¦(delete)´Â À妽º ¿£Æ®¸®ÀÇ ³í¸®Àû »èÁ¦¸¸À» ÇÏ°Ô µË´Ï´Ù. »èÁ¦µÈ Çà¿¡  ÀÇÇØ »ç¿ëµÇ´Â °ø°£Àº ºí·Ï ³»ÀÇ ¸ðµç ¿£Æ®¸®°¡ »èÁ¦µÉ ¶§±îÁö »õ ¿£Æ®¸®¸¦
ÀúÀåÇϴµ¥ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
  -     Å° ¿­¿¡ ´ëÇÑ °»½Å(update)Àº À妽º¿¡ ³í¸®Àû »èÁ¦¿Í »ðÀÔÀ» ÇÏ°Ô µË´Ï´Ù.
  -  PCTFREE ¼³Á¤Àº »ý¼º½Ã¸¦ Á¦¿ÜÇϸé À妽º¿¡ ¾Æ¹«·± ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù.   -  À妽º ºí·ÏÀÌ PCTFREE¿¡ ÀÇÇØ ÁöÁ¤µÈ °Íº¸´Ù ÀÛÀº °ø°£À» °¡Áö°í ÀÖ´õ¶óµµ  »õ ¿£Æ®¸®°¡ Ãß°¡µÉ ¼ö ÀÖ½À´Ï´Ù. 

 

º¸Åë B-Æ®¸® À妽º¿Í´Â ¹Ý´ë·Î Reverse Ű À妽º´Â ¿­ ¼ø¼­¸¦ µû¶ó À妽º°¡ ÁöÁ¤µÇ¾î(ROWID Á¦¿Ü) ÀÖ´Â °¢ ¿­ÀÇ ¹ÙÀÌÆ®¸¦ ¿ªÀ¸·Î µÚÁý½À´Ï´Ù. ½Ã½ºÅÛÀÌ »ý¼ºÇÑ °í¿ëÀÚ ¹øÈ£ °°Àº ¿À¸§Â÷¼ø Ű·Î ·¹Äڵ带 »ðÀÔÇÒ ¶§ À妽º Æ®¸®ÀÇ ÇÑ °÷¿¡ ¸ðµç À妽º °»½ÅÀÌ ¹ß»ýÇÏ°Ô µÇ¾î I/O º´¸ñ Çö»óÀÌ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. Reverse Ű À妽º´Â À妽º ŰÀÇ µ¥ÀÌÅÍ °ªÀ» µÚÁý¾î ÁÖ¾î À妽º Æ®¸®¿¡ À妽º °»½Å ºÐÆ÷¸¦ ºÐ»ê½ÃÄÑ ÁÝ´Ï´Ù.
¿¹¸¦ µéÀÚ¸é Å×ÀÌºí¿¡ »ç¿ø ¹øÈ£ 7698¸¦ »ðÀÔÇϸé 8967ÀÇ Å° °ªÀÌ À妽º¿¡ ÀúÀåµË´Ï´Ù. ´ÙÀ½ »ç¿ø ¹øÈ£ 7782°¡ ÀԷµǸé À妽º ¿£Æ®¸®´Â 2877ÀÌ µÇ¾î ÀÛ¾÷ ºÎÇÏ(load)¸¦ ¿©·¯ °³ÀÇ À妽º ºí·ÏÀ¸·Î ºÐ»ê½ÃÄÑ ÁÝ´Ï´Ù.
ÀÌ·¯ÇÑ ¹è¿­Àº ¿À¶óŬ º´·Ä ¼­¹ö ȯ°æ¿¡¼­ À妽ºÀÇ ¼º´É ÀúÇϸ¦ ¸·´Âµ¥ ¸Å¿ì À¯¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Reverse Ű À妽º´Â µ¿µî ¼Ó¼º(equality predicate)À» °®´Â ÁúÀÇ¿¡ ´ëÇØ¼­¸¸ À¯¿ëÇÕ´Ï´Ù. »çÀüÀû Àǹ̷δ ÀÎÁ¢ÇÑ Å°°¡ reverse Ű À妽º¿¡¼­´Â ¼­·Î ÀÎÁ¢ÇÏ¿© ÀúÀåµÇ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ÀÌ·¯ÇÑ À妽º¸¦ »ç¿ëÇÏ¿© ¹üÀ§ °Ë»ö(range search)À» ¼öÇàÇÒ ¼ö´Â ¾øÀ» °ÍÀÔ´Ï´Ù.

ÇÔ¼ö ±â¹Ý À妽º

ÇÔ¼ö ±â¹Ý À妽º´Â WHERE Àý¿¡ ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ´Â ¸í·É¹®À» È¿À²ÀûÀ¸·Î Æò°¡ÇÏ´Â ¹æ½ÄÀ» Á¦°øÇϸç À妽º¿¡ °è»ê ÁýÁß Ç¥Çö½ÄÀ» ±¸Ã¼È­Çϱâ À§ÇØ »ý¼ºÇÒ ¼ö ÀÖ¾î SELECT ¹® ¹× DELETE ¹®À» ó¸®ÇÒ ¶§ Oracle ¼­¹ö°¡ Ç¥Çö½Ä °ªÀ» °è»êÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ÇÏÁö¸¸ INSERT ¹® ¹× UPDATE ¹®À» ó¸®ÇÒ °æ¿ì¿¡´Â Oracle ¼­¹ö°¡ ¿©ÀüÈ÷ ÇÔ¼ö¸¦ Æò°¡ÇØ¾ß ÇÕ´Ï´Ù.

ÇÔ¼ö ±â¹Ý À妽º´Â B Æ®¸® ¶Ç´Â ºñÆ®¸Ê À妽º ±¸Á¶·Î »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.


ºñÆ®¸Ê À妽º´Â ´ÙÀ½°ú °°Àº °æ¿ì¿¡ B-Æ®¸® À妽ºº¸´Ù ´õ À¯¿ëÇÕ´Ï´Ù.
   -  Å×À̺íÀÌ ¸¹Àº ÇàÀ» °¡Áö¸ç Ű ¿­Àº ÀûÀº ºÐÆ÷µµ(cardinality)¸¦ °¡Áú ¶§, Áï ¿­ÀÌ °®´Â ¼­·Î ´Ù¸¥ °ªÀÌ ¸î °³ ¾È µÉ ¶§. ¿¹¸¦ µé¾î ¿©±Ç ±â·ÏÀ» Æ÷ÇÔÇϰí ÀÖ´Â Å×À̺íÀÇ ¼ºº° ¿­À̳ª °áÈ¥ ¿©ºÎ ¿­ÀÇ °æ¿ì¿¡´Â B-Æ®¸® À妽ºº¸´Ù´Â ºñÆ®¸Ê À妽º°¡ ´õ À¯¸®ÇÒ °ÍÀÔ´Ï´Ù.
   -  ÁúÀǹ®ÀÌ OR ¿¬»êÀÚ¸¦ Æ÷ÇÔÇÏ´Â ¿©·¯ °³ÀÇ WHERE Á¶°ÇÀ» ÀÚÁÖ »ç¿ëÇÒ ¶§
   -  Å° ¿­ÀÌ Àбâ Àü¿ëÀ̰ųª °»½Å ÀÛ¾÷À» Àû°Ô ÇÒ ¶§

ºñÆ®¸Ê À妽ºÀÇ ±¸Á¶
ºñÆ®¸Êµµ B-Æ®¸®Ã³·³ Á¶Á÷µÇ¾î ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ leaf ³ëµå´Â ROWID °ª µé ´ë½Å °¢ Ű °ª¿¡ ´ëÇÑ ºñÆ®¸ÊÀ» ÀúÀåÇÕ´Ï´Ù. ºñÆ®¸ÊÀÇ °¢ ºñÆ®´Â °¡´ÉÇÑ ROWID¿¡ ´ëÀÀµÇ¸ç ºñÆ®°¡ 1ÀÌ µÇ¸é(set), ´ëÀÀµÇ´Â ROWID¸¦ °¡Áø ÇàÀÌ Å° °ªÀ» °¡Áø´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

 ±×¸²¿¡¼­Ã³·³ ºñÆ®¸Ê À妽ºÀÇ leaf ³ëµå´Â ´ÙÀ½À» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
  -   ¿£Æ®¸® Çì´õ: ¿­ ¼ö¿Í Àá±Ý(lock) Á¤º¸¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
  -   Å° °ª: °¢ Ű ¿­¿¡ ´ëÇØ ±æÀÌ¿Í °ªÀÌ ½Ö(value pair)À¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.(
        ¿¹¸¦ µé¾î Ű´Â ¿ÀÁ÷ ÇϳªÀÇ ¿­·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç ù¹øÂ° ¿£Æ®¸®´Â BlueÀÇ Å° °ªÀ» °¡Áý´Ï´Ù.)
  -  ½ÃÀÛ ROWID: ÀÌ ¿¹¿¡¼­´Â ÆÄÀÏ ¹øÈ£ 3, ºí·Ï ¹øÈ£ 10, ±×¸®°í Çà ¹øÈ£ 0À»
        Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
  -  ³¡ ROWID: ÀÌ ¿¹¿¡¼­´Â ºí·Ï ¹øÈ£ 12, ±×¸®°í Çà ¹øÈ£ 8À» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
  -   ºñÆ®¸Ê ¼¼±×¸ÕÆ®: ºñÆ®(bit)ÀÇ ¹®ÀÚ¿­À» °¡Áö°í ÀÖ½À´Ï´Ù.(´ëÀÀµÇ´Â ÇàÀÌ Å° °ªÀ» °¡Áú  ¶§ ºñÆ®°¡ 1ÀÌ µÇ°í ÇàÀÌ Å° °ªÀ» °®Áö ¾ÊÀ» ¶§ 0ÀÌ µË´Ï´Ù. ¿À¶óŬ ¼­¹ö´Â ºñÆ®¸Ê ¼¼±×¸ÕÆ®¸¦ ÀúÀåÇÒ ¶§ ƯÇã¹ÞÀº ¾ÐÃà ±â¼úÀ» »ç¿ëÇÕ´Ï´Ù.)

½ÃÀÛ ROWID´Â ºñÆ®¸ÊÀÇ ºñÆ®¸Ê ¼¼±×¸ÕÆ®°¡ °¡¸®Å°°í Àִ ù¹øÂ° ÇàÀÇ ROWIDÀÔ´Ï´Ù. Áï, ºñÆ®¸ÊÀÇ Ã¹¹øÂ° ºñÆ®´Â ±× ROWID¿¡ ´ëÀÀµÇ¸ç µÎ¹øÂ° ºñÆ®´Â ºí·ÏÀÇ ´ÙÀ½ Çà¿¡ ´ëÀÀµË´Ï´Ù. ³¡ ROWID´Â ºñÆ®¸Ê ¼¼±×¸ÕÆ®°¡ ´ã´çÇÏ´Â Å×À̺íÀÇ ¸¶Áö¸· ÇàÀ» °¡¸®Åµ´Ï´Ù. ºñÆ®¸Ê À妽º´Â Á¦ÇÑµÈ ROWID¸¦ »ç¿ëÇÕ´Ï´Ù.

ºñÆ®¸Ê À妽º »ç¿ë
B-Æ®¸®¸¦ »ç¿ëÇÏ¿© ÁÖ¾îÁø Ű °ªÀ» °®´Â ºñÆ®¸Ê ¼¼±×¸ÕÆ®¸¦ Æ÷ÇÔÇÏ´Â leaf ³ëµåÀÇ À§Ä¡¸¦ ã½À´Ï´Ù. ½ÃÀÛ ROWID¿Í ºñÆ®¸Ê ¼¼±×¸ÕÆ®´Â Ű °ªÀ» °¡Áø ÇàÀÇ À§Ä¡¸¦ ã´Âµ¥ »ç¿ëµË´Ï´Ù.
Å×À̺íÀÇ Å° ¿­ÀÌ º¯°æµÇ¸é ºñÆ®¸ÊÀÌ ¼öÁ¤µÇ¾î¾ß Çϸç, ÀÌ °á°ú °ü·ÃµÈ ºñÆ®¸Ê ¼¼±×¸ÕÆ®°¡ Àá±â°Ô(locking) µË´Ï´Ù. ÀÌ ¶§ ¸ðµç ºñÆ®¸Ê ¼¼±×¸ÕÆ®°¡ Àá±â°Ô µÇ¹Ç·Î ÀÌ ºñÆ®¸ÊÀÌ ´ã´çÇÏ´Â ÇàÀº ù¹øÂ° Æ®·£Àè¼ÇÀÌ ³¡³¯ ¶§±îÁö ´Ù¸¥ Æ®·£Àè¼ÇÀÌ °»½ÅÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.

 


½½¶óÀ̵åÀÇ Ç¥´Â B-Æ®¸® À妽º¿Í ºñÆ®¸Ê À妽º¸¦ ºñ±³ÇÑ °ÍÀÔ´Ï´Ù.
ºñÆ®¸Ê À妽º´Â ÀûÀº ºÐÆ÷µµ¸¦ °®´Â ¿­¿¡ »ç¿ëµÉ ¶§ B-Æ®¸® À妽ºº¸´Ù °£°áÇÕ´Ï´Ù.
ºñÆ®¸ÊÀº ºñÆ®¸Ê ¼¼±×¸ÕÆ® ·¹º§ÀÇ Àá±Ý(locking)À» »ç¿ëÇϹǷΠºñÆ®¸Ê À妽º¿¡¼­ Ű ¿­À» °»½ÅÇÏ´Â ºñ¿ëÀÌ ¸Å¿ì Å®´Ï´Ù. ¹Ý¸é B-Æ®¸® À妽º¿¡¼­´Â Àá±ÝÀÌ Å×À̺íÀÇ °¢ Çà¿¡ ´ëÀÀµÇ´Â ¿£Æ®¸®¿¡ °É¸³´Ï´Ù.
ºñÆ®¸Ê À妽º´Â Bitmap OR µîÀÇ ÀÛ¾÷À» ¼öÇàÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. Áï, ¿À¶óŬ ¼­¹ö´Â µÎ °³ÀÇ ºñÆ®¸Ê ¼¼±×¸ÕÆ®¸¦ »ç¿ëÇÏ¿© ºñÆ® ¹æ½Ä OR¸¦ ¼öÇàÇÏ¿© °á°ú ºñÆ®¸ÊÀ» ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ½ÄÀº ORÀ» »ç¿ëÇÏ´Â ÁúÀǹ®¿¡¼­ ºñÆ®¸ÊÀ» È¿À²ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù.
¿ä¾àÇÏÀÚ¸é B-Æ®¸® À妽º´Â µ¿Àû Å×À̺íÀ» À妽ºÇÏ´Â OLTP ȯ°æ¿¡ ´õ ÀûÇÕÇÕ´Ï´Ù. ¹Ý¸é ºñÆ®¸Ê À妽º´Â Å©°í Á¤ÀûÀÎ Å×ÀÌºí¿¡ º¹ÀâÇÑ ÁúÀǹ®ÀÌ »ç¿ëµÇ´Â DSS ȯ°æ¿¡ À¯¿ëÇÕ´Ï´Ù.


À妽º´Â Å×À̺íÀ» ¼ÒÀ¯Çϰí ÀÖ´Â »ç¿ëÀÚ °èÁ¤¿¡¼­ »ý¼ºÇÒ ¼öµµ ÀÖ°í ´Ù¸¥ °èÁ¤¿¡¼­ »ý¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ Å×À̺í°ú °°Àº °èÁ¤¿¡¼­ »ý¼ºÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÔ´Ï´Ù.

±¸¹®
´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÏ¿© B-Æ®¸® À妽º¸¦ »ý¼ºÇϽʽÿÀ.
   CREATE [ UNIQUE ] INDEX [schema.]index
   ON [schema.]table
   (column [ ASC | DESC ] [ , column [ASC | DESC ] ] . . .)
   [ TABLESPACE tablespace ]
     [ PCTFREE integer ]
     [ INITRANS integer ]
     [ MAXTRANS integer ]
     [ storage-clause ]
     [ LOGGING | NOLOGGING ]
     [ NOSORT ]

 ±¸¹®¿¡¼­:
UNIQUE            uniqueÀ妽º¸¦ ÁöÁ¤Çϴµ¥ »ç¿ëÇÕ´Ï´Ù.(NONUNIQUE°¡
                        ±âº»°ªÀÔ´Ï´Ù.)
schema            À妽º/Å×À̺íÀÇ ¼ÒÀ¯ÀÚÀÔ´Ï´Ù.
index                À妽º À̸§ÀÔ´Ï´Ù.
table                 Å×À̺í À̸§ÀÔ´Ï´Ù.
column             ¿­ À̸§ÀÔ´Ï´Ù.
ASC/DESC        ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ±¸¹® ȣȯ¼ºÀ» À§ÇØ Á¦°øµË´Ï´Ù.
TABLESPAC     À妽º°¡ »ý¼ºµÉ Å×ÀÌºí½ºÆäÀ̽º¸¦ ³ªÅ¸³À´Ï´Ù.
PCTFREE          »ý¼º½Ã »õ À妽º ¿£Æ®¸®¸¦ ¼ö¿ëÇϱâ À§ÇØ °¢ ºí·Ï¿¡ ¿¹¾àµÈ                         °ø°£ÀÇ ÃÑ·®ÀÔ´Ï´Ù.(ÃÑ °ø°£¿¡¼­ ºí·Ï Çì´õ¸¦ »« °ÍÀ» ¹éºÐÀ²·Î)
INITRANS         °¢ ºí·Ï¿¡ ¹Ì¸® ÇÒ´çµÈ Æ®·£Àè¼Ç ¿£Æ®¸®ÀÇ ¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
                       (±âº»°ªÀº ÃÖ¼Ò°ªÀÎ 2 ÀÔ´Ï´Ù.)
MAXTRANS      °¢ ºí·Ï¿¡ ÇÒ´çµÉ ¼ö ÀÖ´Â Æ®·£Àè¼Ç ¿£Æ®¸®ÀÇ ¼ö¸¦ Á¦ÇÑÇÕ´Ï´Ù.
                       (±âº»°ªÀº 255 ÀÔ´Ï´Ù.)
STORAGE        ÀͽºÅÙÆ®°¡ À妽º¿¡ ÇÒ´çµÇ´Â ¹æ¹ýÀ» °áÁ¤ÇÏ´Â ½ºÅ丮Áö ÀýÀ»                         ³ªÅ¸³À´Ï´Ù.
LOGGING         À妽ºÀÇ »ý¼º°ú ÀÌÈÄÀÇ À妽º¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ¸®µÎ ·Î±× ÆÄÀÏ¿¡                        ±â·ÏµÇµµ·Ï ¸í½ÃÇÕ´Ï´Ù.(±âº»°ªÀÔ´Ï´Ù.)
NOLOGGING     À妽º »ý¼º°ú ƯÁ¤ À¯ÇüÀÇ µ¥ÀÌÅÍ ·Îµå°¡ ¸®µÎ ·Î±× ÆÄÀÏ¿¡                         ±â·ÏµÇÁö ¾Êµµ·Ï ¸í½ÃÇÕ´Ï´Ù.
NOSORT          ÇàÀÌ µ¥ÀÌÅͺ£À̽º¿¡ ¿À¸§Â÷¼øÀ¸·Î ÀúÀåµÇ¾î ÀÖÀ½À» ¸í½ÃÇÕ´Ï´Ù.                         ÀÌ °æ¿ì ¿À¶óŬ ¼­¹ö´Â »ý¼º½Ã ÇàÀ» Á¤·ÄÇÏÁö ¾Ê½À´Ï´Ù

ÁÖ
  -   Å×ÀÌºí½ºÆäÀ̽º¿¡ MINIMUM EXTENT°¡ Á¤ÀǵǾî ÀÖ´Ù¸é À妽º¿¡ ´ëÇÑ
      ÀͽºÅÙÆ® Å©±â´Â ´ÙÀ½À¸·Î Å« MINIMUM EXTENT °ªÀÇ Á¤¼ö¹è·Î ¹Ý¿Ã¸²µÉ
      °ÍÀÔ´Ï´Ù.
  -  [NO]LOGGING ÀýÀÌ »ý·«µÇ¸é À妽ºÀÇ ±â·Ï(logging) ¼Ó¼ºÀº À妽º°¡
      »óÁÖÇϰí ÀÖ´Â Å×ÀÌºí½ºÆäÀ̽ºÀÇ ±â·Ï ¼Ó¼ºÀ» µû¸£°Ô µË´Ï´Ù.
  -   À妽º¿¡´Â PCTUSED°¡ ÁöÁ¤µÉ ¼ö ¾ø½À´Ï´Ù. ¿Ö³ÄÇÏ¸é ¿£Æ®¸®°¡ ¿Ã¹Ù¸¥
      ¼ø¼­´ë·Î ÀúÀåµÇ¾î ÀÖ¾î¾ß¸¸ Çϱ⠶§¹®¿¡ »ç¿ëÀÚ´Â À妽º ºí·ÏÀÌ »ðÀÔ¿¡ »ç       ¿ëµÉ ¶§ Á¦¾îÇÒ ¼ö ¾ø½À´Ï´Ù.
  -   µ¥ÀÌÅͰ¡ Ű¿¡ ´ëÇØ Á¤·ÄµÇÁö ¾ÊÀº »óÅ¿¡¼­ NOSORT Ű¿öµå¸¦ »ç¿ëÇÏ¸é       ¸í ·É¹®Àº ¿¡·¯¸¦ Ãâ·ÂÇϰí Á¾·áÇÏ°Ô µË´Ï´Ù.  
  -  ¿À¶óŬ ¼­¹ö´Â °¡´ÉÇÏ´Ù¸é ±âÁ¸ À妽º¸¦ »ç¿ëÇÏ¿© »õ À妽º¸¦ »ý¼ºÇÕ´Ï´Ù.
  -   ÀÌ·¯ÇÑ ÀÏÀº »õ À妽º¿¡ ´ëÇÑ Å°°¡ ±âÁ¸ À妽ºÀÇ Å°ÀÇ ÁÖ¿ä ºÎºÐ¿¡ ´ëÀÀÇÒ        ¶§ ¹ß»ýÇÕ´Ï´Ù.

OEM
 1  Oracle Schema Manager¸¦ »ç¿ë ÇϽʽÿÀ.
 2  Object->Create¸¦ ¼±ÅÃÇϽʽÿÀ.
 3  ³ª¿­µÈ °ªµé Áß¿¡¼­ Index¸¦ ¼±ÅÃÇϰí OK¸¦ Ŭ¸¯ ÇϽʽÿÀ.
 4  Property sheet¿¡¼­ General, Storage, ±×¸®°í Option Á¤º¸¸¦ ÀÔ·Â ÇϽʽÿÀ.
 5  Create¸¦ Ŭ¸¯ ÇϽʽÿÀ
¶Ç´Â ³»ºñ°ÔÀÌÅÍ¿¡¼­ ±âÁ¸ À妽º¸¦ ¼±ÅÃÇÑ ÈÄ Object->Create Like¸¦ »ç¿ëÇÏ¿© ±âÁ¸ À妽º¿Í À¯»çÇÑ ¼ºÁúÀ» °®´Â »õ À妽º¸¦ »ý¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Oracle Schema Manager¸¦ »ç¿ëÇÒ ¶§ Ãʱâ Å©±â(volume), ¼ºÀå·ü(growth rate), Å×ÀÌºí¿¡ ´ëÇÑ »ðÀÔ ÀÛ¾÷, ±×¸®°í ÇàÀÌ »ðÀÔµÈ ¼ø¼­¿¡ ±âÃÊÇÏ¿© ½ºÅ丮Áö ÆÄ¶ó¹ÌÅÍ¿Í °ø°£ Ȱ¿ë ÆÄ¶ó¹ÌÅ͸¦ ÀÚµ¿À¸·Î Á¤ÀÇÇϵµ·Ï ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

 

À妽º¸¦ »ý¼ºÇÒ ¶§ ´ÙÀ½À» °í·ÁÇϽʽÿÀ.
 -  À妽º´Â ÁúÀǹ®ÀÇ ¼º´ÉÀ» Çâ»ó ½ÃÄÑÁÖ°í DML ÀÛ¾÷À» ´À¸®°Ô ÇÕ´Ï´Ù. ÀÚÁÖ º¯ÇÏ´Â Å×ÀÌºí¿¡   ÇÊ¿äÇÑ À妽º ¼ýÀÚ´Â Ç×»ó ÃÖ¼ÒÈ­ ÇϽʽÿÀ.
 -  À妽º¸¦ ·Ñ¹é ¼¼±×¸ÕÆ®, Àӽà ¼¼±×¸ÕÆ®, ±×¸®°í Å×À̺í°ú´Â º°µµÀÇ Å×ÀÌºí½ºÆäÀ̽º¿¡  À§Ä¡½ÃŰ½Ê½Ã¿À.
 -  ´ÜÆíÈ­¸¦ ÃÖ¼ÒÈ­ÇÏ·Á¸é 5*DB_BLOCK_SIZEÀÇ Á¤¼ö¹èÀΠǥÁØ ÀͽºÅÙÆ® Å©±â¸¦ »ç¿ëÇϽʽÿÀ.
 -  ¸®µÎ »ý¼ºÀ» ÇÇÇÔÀ¸·Î½á Å« À妽º¿¡ ´ëÇØ ÇöÀúÇÑ ¼º´É Çâ»óÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù.
 -  Å« À妽º¸¦ »ý¼ºÇÒ ¶§´Â NOLOGGING ÀýÀ» »ç¿ëÇÏ´Â °ÍÀ» °í·ÁÇØ º¸½Ê½Ã¿À.
 -  À妽º ¿£Æ®¸®´Â ±×µéÀÌ À妽ºÇÏ´Â Çà¿¡ ºñ±³ÇØ º¼ ¶§ À۱⠶§¹®¿¡ À妽º ºí·ÏÀÌ ºí·Ï´ç ´õ  ¸¹Àº ¿£Æ®¸®¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ÀÌÀ¯·Î INITRANS´Â ÀϹÝÀûÀ¸·Î ´ëÀÀµÇ´Â Å×ÀÌºí  ¿¡¼­º¸´Ù´Â À妽º¿¡¼­ ´õ Ä¿¾ß ÇÕ´Ï´Ù. 

 


À妽º¿Í PCTFREE
À妽º¿¡ ´ëÇÑ PCTFREE´Â Å×ÀÌºí¿¡ ´ëÇÑ PCTFREE¿Í´Â ´Þ¶ó¼­ µ¿ÀÏ À妽º ºí·Ï¿¡ »ðÀԵǾî¾ß ÇÒ À妽º ¿£Æ®¸®¿¡ ´ëºñÇÑ °ø°£À» ¿¹ºñÇØ µÎµµ·Ï À妽º »ý¼º½Ã¿¡¸¸ »ç¿ëµË´Ï´Ù. À妽º ¿£Æ®¸®´Â °»½ÅµÇÁö ¾Ê½À´Ï´Ù. Ű ¿­ÀÌ °»½ÅµÉ ¶§´Â À妽º ¿£Æ®¸®°¡ ³í¸®ÀûÀ¸·Î »èÁ¦µÈ ÈÄ »ðÀԵ˴ϴÙ.

½Ã½ºÅÛ »ý¼º ¼ÛÀå ¹øÈ£(system-generated invoice number)°°ÀÌ Â÷·Ê´ë·Î Áõ°¡ÇÏ´Â ¿­¿¡ ´ëÇÑ À妽º¿¡´Â PCTFREE¸¦ ³·°Ô ÀâÀ¸½Ê½Ã¿À. ÀÌ °æ¿ì »õ À妽º ¿£Æ®¸®´Â Ç×»ó ±âÁ¸ ¿£Æ®¸®¿¡ Ãß°¡µÇ¸ç ±âÁ¸ÀÇ µÎ À妽º ¿£Æ®¸® °£¿¡ »õ ¿£Æ®¸®¸¦ »ðÀÔÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

»ðÀ﵃ ÇàÀÇ À妽º ¿­ °ªÀÌ ¾î¶² °ªÀÌ¶óµµ °¡Áú ¼ö ÀÖ´Ù¸é, Áï ÇöÀç °¡Áö°í ÀÖ´Â °ªÀÇ ¹üÀ§ ³»ÀÇ ¾î´À °ªÀÌ¶óµµ °¡Áú ¼ö ÀÖ´Ù¸é ³ôÀº °ªÀÇ PCTFREE¸¦ Á¦°øÇؾ߸¸ ÇÕ´Ï´Ù. ³ôÀº PCTFREE °ªÀ» ¿ä±¸ÇÏ´Â À妽ºÀÇ ÇÑ ¿¹´Â ¼ÛÀå Å×À̺íÀÇ ¼ÒºñÀÚ ÄÚµå ¿­¿¡ ´ëÇÑ À妽ºÀÔ´Ï´Ù. ÀÌ °æ¿ì ´ÙÀ½ ½ÄÀÌ °¡¸®Å°´Â ´ë·Î PCTFREE °ªÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ À¯¸®ÇÕ´Ï´Ù.

                          ÃÖ´ë ÇàÀÇ °¹¼ö - Ãʱâ ÇàÀÇ °¹¼ö
         --------------------------------------------------- *100
                                      ÃÖ´ë ÇàÀÇ °¹¼ö

ÃÖ´ë °ªÀº Àϳ⠰°Àº ƯÁ¤ ±â°£¿¡ ¸ÂÃá °ªÀÏ ¼ö ÀÖ½À´Ï´Ù. 

 


µ¥ÀÌÅÍ µñ¼Å³Ê¸® ºä DBA_INDEXES¿Í DBA_IND_COLUMNSÀº À妽º¿Í À妽ºµÈ ¿­¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.

À妽º¿Í ±× À¯È¿¼º °Ë»ç
´ÙÀ½ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ SCOTTÀÌ ¼ÒÀ¯ÇÑ À妽ºÀÇ À̸§, À¯Çü, ±×¸®°í »óŸ¦ È®ÀÎÇϽʽÿÀ.
SVRMGR> SELECT index_name, tablespace_name, index_type,
             2> uniqueness, status
             3> FROM dba_indexes
             4> WHERE owner=¡®SCOTT¡¯;
INDEX_NAME        TABLESPACE_NAME INDEX_TYPE UNIQUENESS  STATUS
---------------   --------------- ---------- ---------   ------
EMP_LNAME_IDX     INDX01          NORMAL     NONUNIQUE   VALID
ORD_ORD_NO_IDX    INDX01          NORMAL     UNIQUE      VALID
ORD_REGION_ID_IDX INDX02          BITMAP     NONUNIQUE   VALID
3 rows selected.

INDEX_TYPE ¿­Àº À妽º°¡ ºñÆ®¸ÊÀÎÁö º¸Åë À妽ºÀÎÁö¸¦ °¡¸®Åµ´Ï´Ù. ¸ðµç reverse Ű À妽ºÀÇ À̸§À» º¸°íÀÚ ÇÒ ¶§´Â ´ÙÀ½ ÁúÀǹ®À» »ç¿ëÇϽʽÿÀ.
        SVRMGR> SELECT o.object_name
                2> FROM dba_objects o
                3> WHERE owner=¡®SCOTT¡¯
                4> AND o.object_id IN (SELECT I.obj#
                5>                  FROM ind$ I
                6>                  WHERE BITAND (I.property, 4) = 4);
        OBJECT_NAME
        -----------------------
        ORD_ORD_NO_IDX
        1 row selected.

À妽º°¡ Á¤ÀÇµÈ ¿­ ã±â
´ÙÀ½ ÁúÀǹ®Àº »ç¿ëÀÚ SCOTTÀÌ ¼ÒÀ¯ÇÑ À妽º ÀüºÎ¸¦ º¸¿©ÁÖ¸ç À妽º°¡ ±¸ÃàµÈ Å×À̺í°ú ¿­À» º¸¿© ÁÝ´Ï´Ù.
        SVRMGR> SELECT index_name, table_owner, table_name, column_name
                2> FROM dba_ind_columns
                3> WHERE index_owner = ¡®SCOTT¡¯
                4> ORDER BY index_name, column_position;
        INDEX_NAME          TABLE_OWNER   TABLE_NAME   COLUMN_NAME
        ------------------- ------------- ------------ -----------
        EMP_LNAME_IDX       SCOTT         EMP          LAST_NAME
        ORD_ORD_NO_IDX      SCOTT         ORD          ORD_NO
        ORD_REGION_ID_IDX   SCOTT         ORD          REGION_ID
        3 rows selected. 

 

±¸¹®
Reverse Ű À妽º¸¦ »ý¼ºÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ.
  CREATE [ UNIQUE ] INDEX [schema.]index
  ON [schema.]table
  (column [ ASC | DESC ] [ , column [ASC | DESC] ] . . .)
  [ TABLESPACE tablespace ]
     [ PCTFREE integer ]
     [ INITRANS integer ]
     [ MAXTRANS integer ]
     [ storage-clause ]
     [ LOGGING | NOLOGGING ]
      REVERSE
Reverse Ű À妽º »ý¼ºÀ» À§ÇÑ ¸í·ÉÀº REVERSE Ű¿öµå°¡ »ç¿ëµÈ´Ù´Â Á¡À» Á¦¿ÜÇϸé Á¤±Ô À妽º¸¦ »ý¼ºÇÏ´Â ¸í·É°ú ºñ½ÁÇÕ´Ï´Ù. Reverse Ű À妽º¿¡´Â NOSORT Ű¿öµå°¡ »ç¿ëµÉ ¼ö ¾ø´Ù´Â °ÍÀ» ¸í½ÉÇϽʽÿÀ


±¸¹®
ºñÆ®¸Ê À妽º¸¦ »ý¼ºÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ.
 CREATE BITMAP INDEX [schema.]index
 ON [schema.]table
 (column [ ASC | DESC ] [ , column [ASC | DESC ] ] . . .]
 [ TABLESPACE tablespace ]
      [ PCTFREE integer ]
      [ INITRANS integer ]
      [ MAXTRANS integer ]
      [ storage-clause ]
      [ LOGGING | NOLOGGING ]
      [ NOSORT ]
ºñÆ®¸Ê À妽º´Â unique À妽º°¡ µÉ ¼ö ¾øÀ½À» ¸í½ÉÇϽʽÿÀ.

CREATE_BITMAP_AREA_SIZE
ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ CREATE_BITMAP_AREA_SIZE´Â ¸Þ¸ð¸® ³»¿¡ ºñÆ®¸Ê ¼¼±×¸ÕÆ®¸¦ ÀúÀåÇϱâ À§ÇØ »ç¿ëµÉ °ø°£ÀÇ ÃÑ·®À» °áÁ¤ÇÕ´Ï´Ù. ±âº» °ªÀº 8 MBÀÔ´Ï´Ù. ÀÌ °ªÀ» Å©°Ô ÇÏ¸é ´õ »¡¸® À妽º¸¦ »ý¼ºÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ºÐÆ÷µµ°¡ ¸Å¿ì ÀÛ´Ù¸é ÀÛÀº °ªÀ¸·Î ¼³Á¤µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ºÐÆ÷µµ(cardinality)°¡ 2¶ó¸é ÆÄ¶ó¹ÌÅÍ °ªÀº ¸Þ°¡¹ÙÀÌÆ® ´ÜÀ§ º¸´Ù´Â ų·Î¹ÙÀÌÆ® ´ÜÀ§°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀÎ ±ÔÄ¢ ´ë·Î ºÐÆ÷µµ°¡ Ä¿Áú¼ö·Ï ÃÖÀûÈ­µÈ ¼º´ÉÀ» À§Çؼ­´Â ´õ ¸¹Àº ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ°Ô µË´Ï´Ù.

OEM
1       Oracle Schema Manager¸¦ »ç¿ë ÇϽʽÿÀ.
2       Object->Create¸¦ »ç¿ë ÇϽʽÿÀ.
3       ³ª¿­µÈ °ª Áß¿¡¼­ Index¸¦ ¼±ÅÃÇϰí OK¸¦ Ŭ¸¯ ÇϽʽÿÀ.
4       Property sheet¿¡ General, Storage, ±×¸®°í Options Á¤º¸¸¦ ÀÔ·ÂÇϰí General  
        ÆäÀÌÁö¿¡ Bitmap ¿É¼ÇÀÌ ¼±ÅõǾú´ÂÁö È®ÀÎ ÇϽʽÿÀ.
5       Create¸¦ Ŭ¸¯ ÇϽʽÿÀ. 

 

½ºÅ丮Áö ÆÄ¶ó¹ÌÅÍ¿Í °ø°£ Ȱ¿ë ÆÄ¶ó¹ÌÅÍ ÀϺδ ALTER INDEX ¸í·ÉÀ» »ç¿ëÇÏ¿© ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
 ±¸¹®
   ALTER INDEX [schema.]index
   [ storage-clause ]
   [ INITRANS integer ]
   [ MAXTRANS integer ]
À妽º¿¡ ´ëÇÑ ½ºÅ丮Áö ÆÄ¶ó¹ÌÅÍÀÇ º¯°æÀÇ Àǹ̴ Å×ÀÌºí¿¡ ´ëÇÑ ÀÌ ÆÄ¶ó¹ÌÅ͵éÀÌ º¯°æµÇ´Â °Í°ú ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î À妽º¿¡ ´ëÇÑ º¯°æÀºMAXEXTENTS¸¦ Áõ°¡½ÃŰ´Â °ÍÀÔ´Ï´Ù.
°ø°£ Ȱ¿ë ÆÄ¶ó¹ÌÅÍ´Â À妽º ºí·Ï¿¡ ´ëÇÑ ³ôÀº ¼öÁØÀÇ µ¿½Ã¼ºÀ» º¸ÀåÇϱâ À§ÇØ º¯°æµÉ ¼öµµ ÀÖ½À´Ï´Ù.

 OEM
1      Oracle Schema Manager¸¦ »ç¿ë ÇϽʽÿÀ.
2      Index ³ëµå¸¦ È®Àå ÇϽʽÿÀ.
3      »ç¿ëÀÚ À̸§(¶Ç´Â ½ºÅ°¸¶)À» È®Àå ÇϽʽÿÀ.
4      À妽º¸¦ ¼±Åà ÇϽʽÿÀ.
5      Property sheetÀÇ Storage tabÀÇ °ªÀ» ¼öÁ¤ ÇϽʽÿÀ. ÀͽºÅÙÆ®ÀÇ ÃÖ¼Ò°ªÀº         ÀÌ ¹æ¹ýÀ¸·Î  º¯°æµÉ ¼ö ¾ø´Ù´Â °ÍÀ» ¸í½ÉÇϽʽÿÀ.
6      Apply¸¦ Ŭ¸¯ ÇϽʽÿÀ.

 

 À妽º¿¡ ´ëÇÑ ¼öµ¿ °ø°£ ÇÒ´ç
Å×ÀÌºí¿¡ ¸¹Àº »ðÀÔ ÀÛ¾÷À» Çϱâ Àü¿¡ À妽º¿¡ ÀͽºÅÙÆ®¸¦ Ãß°¡ÇÏ¿©¾ß ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀͽºÅÙÆ®¸¦ ¹Ì¸® Ãß°¡ÇÏ¸é ¼öÇàÁßÀÇ À妽ºÀÇ µ¿Àû È®Àå°ú ±×·Î ÀÎÇÑ ¼º´É ÀúÇϸ¦ ¸·¾Æ ÁÝ´Ï´Ù.

À妽º·ÎºÎÅÍÀÇ ¼öµ¿ °ø°£ ÇØÁ¦

À妽ºÀÇ high water mark ÀÌ»óÀÇ »ç¿ëµÇÁö ¾Ê´Â °ø°£À» ÇØÁ¦ÇÏ·Á¸é ALTER INDEX ¸í·ÉÀÇ DEALLOCATE ÀýÀ» »ç¿ëÇϽʽÿÀ.
±¸¹®
À妽º °ø°£À» ÇÒ´çÇϰųª ÇØÁ¦ÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ.
  ALTER INDEX [schema.]index
  {ALLOCATE EXTENT ([SIZE integer [K|M] ]
              [ DATAFILE ¡®filename¡¯ ])
  | DEALLOCATE UNUSED [ KEEP integer [ K|M ] ] }
À妽º¿¡ ¼öµ¿À¸·Î °ø°£À» ÇÒ´çÇϰųª ÇØÁ¦ÇÏ´Â °ÍÀº Å×ÀÌºí¿¡ ´ëÇØ ÀÌ·¯ÇÑ ¸í·ÉÀ» »ç¿ëÇÒ ¶§¿Í °°½À´Ï´Ù.

ÁÖ
À妽º °ø°£Àº À妽º°¡ ±¸ÃàµÈ Å×À̺íÀÌ Àß·ÁÁú(truncate) ¶§ ÇØÁ¦µË´Ï´Ù. Å×À̺íÀ» Àß¶ó ¹ö¸®¸é °ü·Ã À妽ºµµ Àß·Á Áý´Ï´Ù.

 

À妽º À籸Ãà

À妽º À籸Ãà¿¡´Â ´ÙÀ½ Ư¼ºÀÌ ÀÖ½À´Ï´Ù.

À籸ÃàÀÌ ÇÊ¿äÇÑ »óȲ

´ÙÀ½ »óȲÀÏ ¶§ À妽º¸¦ À籸ÃàÇÕ´Ï´Ù.

±¸¹®

´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÏ¿© À妽º¸¦ À籸ÃàÇÕ´Ï´Ù.

   ALTER INDEX [schema.] index REBUILD

     [ TABLESPACE tablespace]

     [ PCTFREE integer ]

     [ INITRANS integer ]

     [ MAXTRANS integer ]

     [ storage-clause ]

     [ LOGGING | NOLOGGING ]

     [ REVERSE | NOREVERSE ]

ALTER INDEX ... REBUILD ¸í·ÉÀº ºñÆ®¸Ê À妽º¸¦ B Æ®¸® À妽º·Î ¹Ù²Ù°Å³ª ¶Ç´Â ±× ¹Ý´ëÀÎ °æ¿ì »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç REVERSE Ű¿öµå ¶Ç´Â NOREVERSE Ű¿öµå´Â B Æ®¸® À妽º¿¡¸¸ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

¿Â¶óÀÎÀ¸·Î À妽º À籸Ãà

À妽º ±¸Ãà ¶Ç´Â À籸Ãà ÀÛ¾÷Àº Å×À̺íÀÌ ¾ÆÁÖ Å« °æ¿ì ½Ã°£ÀÌ ¸¹ÀÌ °É¸®´Â ÀÛ¾÷À̸ç Oracle8i ÀÌÀü¿¡´Â À妽º¸¦ »ý¼º ¶Ç´Â À籸ÃàÇÒ °æ¿ì Å×À̺íÀ» Àᱸ¾î¾ß Çß°í µ¿½Ã DML ÀÛ¾÷À» ÇÒ ¼ö ¾ø¾ú½À´Ï´Ù.

Oracle8i´Â À妽º¸¦ »ý¼º ¶Ç´Â Àç»ý¼ºÇϸ鼭 ±âº» Å×ÀÌºí¿¡ ´ëÇÑ µ¿½Ã ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖÁö¸¸ ÀÌ·¯ÇÑ ÀýÂ÷ Áß¿¡´Â Å« DML ÀÛ¾÷À» ¼öÇàÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

Âü°í : °è¼ÓÇØ¼­ DML ¹®ÀÌ Àá°Ü ÀÖÀ¸¸é ¿Â¶óÀÎ À妽º ±¸Ãà Áß¿¡ ´Ù¸¥ DDL ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ¾øÀ½À» ÀǹÌÇÕ´Ï´Ù.

Á¦ÇÑ »çÇ×

 

À妽º º´ÇÕ

À妽º ´ÜÆíÈ­°¡ ÀÖ´Â °æ¿ì ÇØ´ç À妽º¸¦ À籸Ãà ¶Ç´Â º´ÇÕÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÇϱâ Àü¿¡ ¸ÕÀú °¢ ¿É¼ÇÀÇ ºñ¿ë ¹× ÀÌÀÍÀ» °í·ÁÇÏ¿© ÀÚ½ÅÀÇ »óȲ¿¡ °¡Àå ÀûÇÕÇÑ ÀÛ¾÷À» ¼±ÅÃÇØ¾ß ÇÕ´Ï´Ù.

Àç»ç¿ëÀ» À§ÇØ °ø°£À» ´Ã¸± ¼ö ÀÌ´Â B Æ®¸® À妽º ÃÖÇÏÀ§ ºí·ÏÀÌ ÀÖ´Â »óȲ¿¡¼­´Â ´ÙÀ½ SQL ¹®À» »ç¿ëÇÏ¿© ÀÌ ÃÖÇÏÀ§ ºí·ÏÀ» º´ÇÕÇÒ ¼ö ÀÖ½À´Ï´Ù.

   SQL> ALTER INDEX summit.orders_id_idx COALESCE;

´ÙÀ½À» ¼öÇàÇÏ·Á¸é À妽º¸¦ ºÐ¼®ÇϽʽÿÀ.
   -   ¸ðµç À妽º ºí·ÏÀ» °Ë»çÇÏ¿© ºí·Ï ÈѼÕÀ» Á¶»çÇÕ´Ï´Ù. À妽º ¿£Æ®¸®°¡ Å×À̺íÀÇ µ¥ÀÌÅÍ¿¡ ´ëÀÀµÇ´ÂÁö ¿©ºÎ´Â °ËÁõÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ¸í½ÉÇϽʽÿÀ.
   -   À妽º¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â INDEX_STATS ºä¿¡ ±â·ÏÇÕ´Ï´Ù.

±¸¹®

   ANALYZE INDEX [schema.]inex VALIDATE STRUCTURE
À§ ¸í·ÉÀ» ¼öÇàÇÑ ÈÄ INDEX_STATS¸¦ ÁúÀÇÇÏ¿© ´ÙÀ½ ¿¹¿¡ º¸¿©Áö´Â °Íó·³ À妽º¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ¸½Ê½Ã¿À.
  SVRMGR> SELECT blocks, pct_used,
       2> lf_rows, del_lf_rows
       3> FROM index_stats;
BLOCKS            PCT_USED           LF-ROWS       DEL_LF_ROWS
-------           --------           -------       ------------                 
     25                 11                14                  0           
1 row selected.
À妽º°¡ »èÁ¦µÈ ÇàÀ» ¸¹ÀÌ °¡Áö°í ÀÖ´Ù¸é À妽º¸¦ À籸ÃàÇϽʽÿÀ. ¿¹¸¦ µé¾î LF_ROWS¿¡ ´ëÇÑ DEL_LF_ROWSÀÇ ºñ°¡ 30%¸¦ ÃʰúÇϸé À妽º¸¦ À籸ÃàÇϽʽÿÀ.


´ÙÀ½°ú °°Àº °æ¿ì À妽º¸¦ »èÁ¦ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
    ?  ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀº À妽º´Â Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
    ?  ´ë·®À¸·Î ·ÎµåÇϱâ Àü¿¡ À妽º¸¦ »èÁ¦ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Å« µ¥ÀÌÅ͸¦ ·ÎµåÇϱâ Àü¿¡ À妽º¸¦ »èÁ¦ÇÏ°í ·ÎµåÇÑ ÈÄ Àç»ý¼ºÇÏ¿©:
        -       ·Îµå ¼º´ÉÀ» Çâ»ó½ÃŰ½Ê½Ã¿À.
        -       À妽º °ø°£À» º¸´Ù È¿À²ÀûÀ¸·Î »ç¿ëÇϽʽÿÀ.
    ? Á¤±âÀûÀ¸·Î¸¸ »ç¿ëµÇ´Â À妽º´Â ºÒÇÊ¿äÇÏ°Ô À¯Áö º¸¼öµÉ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ƯÈ÷ Àá±ñ¾¿  »ç¿ëÇÏ´Â(volatile) Å×ÀÌºí¿¡ ±âÃÊÇÑ °æ¿ì¿¡´Â ´õ¿í ±×·¸½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ȸÀÇ¿ë ÀڷḦ ¸ðÀ¸±â À§ÇØ ¿¬¸», ¶Ç´Â ºÐ±â ¸»¿¡ ÁúÀǹ®ÀÌ ¸¸µé¾îÁö´Â OLTP ½Ã½ºÅÛÀÇ °æ¿ì°¡ ±×·¸½À´Ï´Ù.
    ?  À妽º´Â ·Îµå °°Àº ƯÁ¤ À¯ÇüÀÇ ÀÛ¾÷ Áß ÀνºÅϽº°¡ ºñÁ¤»óÀûÀ¸·Î Á¾·áÇÒ ¶§ À妽º°¡   INVALID¶ó°í Ç¥½ÃµÉ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì À妽º´Â »èÁ¦µÇ°Å³ª Àç»ý¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.
    ?  À妽º°¡ ÈѼյǾúÀ» ¶§

 ±¸¹®
´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÏ¿© À妽º¸¦ »èÁ¦ÇϽʽÿÀ.
        DROP INDEX [schema.]index

OEM
1   Oracle Schema Manager¸¦ »ç¿ë ÇϽʽÿÀ.
2   Index ³ëµå¸¦ È®Àå ÇϽʽÿÀ.
3   »ç¿ëÀÚ À̸§(¶Ç´Â ½ºÅ°¸¶)¸¦ È®Àå ÇϽʽÿÀ.
4   À妽º¸¦ ¼±Åà ÇϽʽÿÀ.
5   Object->Remove ¼±ÅÃ
6   ´ÙÀ̾ó·Î±× ¹Ú½º¿¡¼­ Yes¸¦ ¼±Åà ÇϽʽÿÀ.

ÁÖ
À妽º°¡ enableµÈ ¹«°á¼º Á¦¾à Á¶°Ç ±¸Çö¿¡ »ç¿ëµÇ¾úÀ» °æ¿ì »èÁ¦µÉ ¼ö ¾ø½À´Ï´Ù. Á¦¾à Á¶°ÇÀº ¡°µ¥ÀÌÅÍ ¹«°á¼º °ü¸®¡± Àå¿¡¼­ ´Ù·ç¾î Áý´Ï´Ù.

 

¿ä¾àÂüÁ¶

 °ü·Ã³»¿ë

 ÂüÁ¶

 ÃÊ±â ÆÄ¶ó¹ÌÅÍ

 CREATE_BITMAP_AREA_SIZE

 µ¿Àû ¼º´É ºä

 ¾ø½¿

 µ¥ÀÌÅÍ µñ¼Å³Ê¸® Å×À̺í/ºä

 DBA_INDEXS
 DBA_IND_COLUMNS
 IND$
 INDEX_STATS

 ¸í·É¾î

 CREATE INDEX
 CREATE UNIQUE INDEX
 CREATE BITMAP INDEX
 CREATE INDEX...REVERSE
 ALTER INDEX...STORAGE
 ALTER INDEX...INITRANS...MAXTRANS
 ALTER INDEX...ALLOCATE EXTENT
 ALTER INDEX...DEALLOCATE UNUSDE
 ALTER INDEX...REBUILD
 ALTER INDEX...REBUILD...REVERSE
 ALTER INDEX...REBUILD...NOREVERSE
 ANALYZEINDEX...VALIDATE STRUCTURE
 DROPINDEX

 ÆÐŰÁö ÇÁ·Î½ÃÀú¿Í ÇÔ¼ö

 ¾ø½¿

 

  1. Analyze¸¦ ÇØ º¸´Ï 1ÁÖÀÏ Àüº¸´Ù À妽º ¿£Æ®¸®°¡ ÇöÀúÇÏ°Ô ÁÙ¾ú´Ù. ¾î¶² Á¶Ä¡¸¦ ÃëÇØ¾ß Çϳª?
    A. ÇÊ¿ä¾øÀ¸¹Ç·Î DropÇÑ´Ù.
    B. Deallocate unused¸¦ »ç¿ëÇÏ¿© ÇÊ¿ä¾ø´Â °ø°£À» ¹Ý³³ÇÑ´Ù.
    C. ¿£Æ®¸®ÀÇ ÀúÇÏ´Â ¼º´ÉÀ» Å©°Ô Á¿ìÇÏÁö ¾ÊÀ¸¹Ç·Î ±×´ë·Î »ç¿ëÇÑ´Ù.
    D. À妽º¸¦ rebuildÇÑ´Ù.
    ´ä
    X Á¤´ä:D


  2. Bitmap Index¸¦ »ç¿ëÇϸé ÁÁÀº °æ¿ì´Â?
    A. OLTP ȯ°æ
    B. WhereÀýÀÇ Á¶°Ç¿¡ OR¸¦ »ç¿ë
    C. High cardinality column
    D. Update°¡ ÀÚÁÖ ÀϾ´Â column
    ´ä
    O


  3. Index segmentÀÇ Æ¯Â¡À¸·Î ¸Â´Â °ÍÀ» ¸ðµÎ °í¸£½Ã¿À.
    A. nologgingÀ¸·Î »ý¼ºµÉ ¼ö ÀÖ´Ù.
    B. ´ë°³ °ü·Ã Å×ÀÌºíº¸´Ù Å©±â°¡ ÀÛ´Ù.
    C. Ç×»ó ¿À¶óŬ ¼­¹ö¿¡ ÀÇÇØ ÀÚµ¿À¸·Î »ý¼ºµÇ°í °ü¸®µÈ´Ù.
    D. Å×À̺í°ú´Â ´Ù¸¥ Å×ÀÌºí½ºÆäÀ̽º¿¡ ÀúÀåµÉ ¼ö ÀÖ´Ù.
    ´ä
    X Á¤´ä:ABD


  4. index¸¦ °¡Áø table ÀÇ data°¡ ¸¹ÀÌ »èÁ¦µÈ °æ¿ì, ´ÙÀ½ Áß °¡Àå ÁÁÀº ó¸® ¹æ¹ýÀº?
    A. indexÀÇ PCTUSED¸¦ 20À¸·Î °¨¼Ò
    B. indexÀÇ PCTUSED¸¦ 80À¸·Î Áõ°¡
    C. indexÀÇ NEXT¸¦ Áõ°¡
    D. index¸¦ dropÇϰí Àç»ý¼º
    ´ä
    X Á¤´ä:D


  5. ´ÙÀ½ Áß index¿¡ ´ëÇÑ ¼³¸íÀÌ Æ²¸° °ÍÀº?
    A. columnÀÇ cardinality°¡ ³ôÀ¸¸é B*tree index°¡ ÁÁ´Ù.
    B. Bitmap index´Â OR ¿¬»ê¿¡ ´ëÇØ¼­ È¿À²ÀûÀÌ´Ù.
    C. B*tree index°¡ Bitmap indexº¸´Ù Update ºñ¿ëÀÌ ´õ Å©´Ù.
    D. B*tree index´Â OLTP ¾÷¹«¿¡, Bitmap index´Â DSS ¾÷¹«¿¡ È¿°úÀûÀÌ´Ù.
    ´ä
    O


  6. ´ÙÀ½ Áß ÀûÀº key cardinality¸¦ °¡Áö°í OR ¿¬»êÀÚ ¼öÇà ½Ã ÀûÇÕÇÑ À妽º ±¸Á¶´Â?
    A. Reverse Index
    B. Bitmap Index
    C. B-tree Index
    D. Index organized table
    ´ä
    O


  7. ´ÙÀ½°ú °°Àº ¹®ÀåÀÌ ¼öÇàµÇ¾ú´Ù. ´ÙÀ½ Áß ¸Â´Â °ÍÀº?
    create index i_payroll on payroll ( last_name );

    A. tablespace¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ ½ÇÆÐÇÑ´Ù.
    B. userÀÇ default tablespace¿¡ »ý¼ºµÉ °ÍÀÌ´Ù.
    C. applicationÀÌ Á¤ÀÇ µÉ ¶§, application manager¿¡ ÀÇÇØ Á¤ÀÇµÈ tablespace¿¡ »ý¼ºµÉ °ÍÀÌ´Ù.
    D. tablespace¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ SYSTEM tablespace¿¡ »ý¼ºµÉ °ÍÀÌ´Ù.
    ´ä
    X Á¤´ä:B


  8. ºñÆ®¸Ê À妽º(Bitmap Index)°¡ °¡Àå À¯¿ëÇÑ °æ¿ì´Â?
    A. Å×À̺íÀÌ Å©°í Ű Ä÷³ÀÌ ³ôÀº cardinality¸¦ °¡Áö´Â °æ¿ì
    B. Å×À̺íÀÌ ÀÛ°í Ű Ä÷³ÀÌ ³·Àº cardinality¸¦ °¡Áö´Â °æ¿ì
    C. Å×À̺íÀÌ Å©°í Ű Ä÷³ÀÌ ³·Àº cardinality¸¦ °¡Áö´Â °æ¿ì
    D. Å×À̺íÀÌ ÀÛ°í Ű Ä÷³ÀÌ ³ôÀº cardinality¸¦ °¡Áö´Â °æ¿ì
    ´ä
    X Á¤´ä:C