À妽º¿¡ ´ëÇÏ¿©
ÀÛ¼ºÀÚ °ü¸®ÀÚ ÀÛ¼º½Ã°£ 2003-12-12 00:37:08
 

À妽º¶õ?

¿À¶óŬ ¼­¹ö À妽º´Â Æ÷ÀÎÅ͸¦ »ç¿ëÇÏ¿© ÇàÀÇ °Ë»öÀ» ÃËÁøÇÒ ¼ö ÀÖ´Â ½ºÅ°¸¶ °´Ã¼ÀÔ´Ï´Ù. À妽º´Â ¸í½ÃÀûÀ¸·Î  ¶Ç´Â ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ¿­¿¡¼­ À妽º¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù¸é, À̶§´Â Àüü Å×ÀÌºí ½ºÄµ(scan)ÀÌ ¹ß»ýÇÒ °Í ÀÔ´Ï´Ù.

À妽º´Â Å×À̺íÀÇ Çà¿¡ ´ëÇØ Á÷Á¢ÀûÀÌ°í  ºü¸¥ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ°ÍÀÇ ¸ñÀûÀº  ºü¸£°Ô µ¥ÀÌÅ͸¦ ã±â À§ÇØ À妽º µÈ °æ·Î¸¦ »ç¿ëÇÏ¿© µð½ºÅ© I/OÀÇ Çʿ伺À» °æ°¨½ÃÅ°´Â °Í ÀÔ´Ï´Ù. À妽º´Â ¿À¶óŬ ¼­¹ö¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î »ç¿ëµÇ°í À¯ÁöµË´Ï´Ù. Çѹø À妽º°¡ »ý¼ºµÇ¸é , »ç¿ëÀÚ¿¡°Ô ¿ä±¸µÇ´Â Á÷Á¢ÀûÀÎ ÀÛ¾÷Àº ¾ø½À´Ï´Ù. À妽º´Â ±×µéÀÌ À妽ºÇÑ Å×ÀÌºí¿¡ ´ëÇØ ³í¸®ÀûÀ¸·Î ¹°¸®ÀûÀ¸·Î µ¶¸³ÀûÀÔ´Ï´Ù. Áï À妽º´Â  ¾î´À ¶§¿¡³ª »ý¼ºµÇ°Å³ª Á¦°ÅµÉ ¼ö ÀÖ°í ±âº» Å×ÀÌºí ¶Ç´Â ´Ù¸¥ À妽º¿¡ ¿µÇâÀÌ ¾øÀ½À» ÀǹÌÇÕ´Ï´Ù.

ÁÖ: Å×À̺íÀ» Á¦°ÅÇßÀ» ¶§, ÇØ´ç À妽ºµµ ¿ª½Ã Á¦°ÅµË´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº Oracle Server Concepts Manual, Release 7.3 ¶Ç´Â 8.0, ¡°Schema Objects¡± section, ¡°Indexes¡± topicÀ» ÂüÁ¶ÇϽʽÿÀ.


À妽º¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀº?

2°¡Áö ŸÀÔÀÇ À妽º°¡ »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ÇÑ Å¸ÀÔÀº À¯ÀÏÇÑ À妽ºÀÔ´Ï´Ù. ¿À¶óŬ ¼­¹ö´Â  PRIMARY Key ¶Ç´Â UNIQUE Key Á¦¾àÁ¶°ÇÀ» °¡Áö±â À§ÇØ Å×ÀÌºí¿¡¼­ ¿­À» Á¤ÀÇÇÒ ¶§ ÀÚµ¿À¸·Î ÀÌ À妽º¸¦ »ý¼ºÇÕ´Ï´Ù.

»ç¿ëÀÚ°¡ »ý¼ºÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ŸÀÔÀÇ À妽º´Â À¯ÀÏÇÏÁö ¾ÊÀº À妽ºÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, °Ë»ö ¼Óµµ¸¦ Çâ»ó½ÃÅ°Å° À§ÇØ ÁúÀÇ ¾ÈÀÇ Á¶ÀÎÀ» À§ÇÑ FOREIGN KEY ¿­ À妽º¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.



À妽º »ý¼º

CREATE INDEX ¹®ÀåÀ» »ý¼ºÇÔÀ¸·Î½á Çϳª ÀÌ»óÀÇ ¿­ÀÇ À妽º¸¦ »ý¼ºÇÕ´Ï´Ù.

±¸¹®¿¡¼­:

        index                  À妽ºÀÇ À̸§ÀÔ´Ï´Ù.
        table                  Å×À̺íÀÇ À̸§ÀÔ´Ï´Ù.
        column              À妽º µÇ±â À§ÇÑ Å×À̺íÀÇ ¿­ À̸§ÀÔ´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀ» º¸½Ã·Á¸é
Oracle Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, ¡°CREATE INDEX.¡±¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸¹Àº °ÍÀÌ Ç×»ó ´õ ÁÁÀº °ÍÀº ¾Æ´Ï´Ù.

Å×À̺íÀÇ ¸¹Àº À妽º°¡ ÁúÀÇÀÇ ½ºÇǵå Çâ»óÀ» ²À ÀǹÌÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. À妽º¸¦ °¡Áö°í  ÀÖ´Â Å×ÀÌºí¿¡ ´ëÇÑ °¢ DML ÀÛ¾÷Àº À妽ºµµ °»½ÅµÇ¾î¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù. ¸¹Àº À妽º°¡ Å×À̺í°ú °ü·ÃµÇ¾î ÀÖÀ¸¸é, ¿À¶óŬ ¼­¹ö´Â DML ÈÄ¿¡ ¸ðµç À妽º¸¦ °»½Å½ÃÅ°±â À§ÇØ ´õ ¸¹Àº ³ë·ÂÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù.

¾ðÁ¦ À妽º¸¦ »ý¼ºÇϴ°¡?


¿­Àº WHERE Àý ¶Ç´Â Á¶ÀÎ Á¶°Ç¿¡¼­ ÀÚÁÖ »ç¿ëµË´Ï´Ù.

¿­Àº ±¤¹üÀ§ÇÑ °ªÀ» Æ÷ÇÔÇÕ´Ï´Ù.

¿­Àº ¸¹Àº ¼öÀÇ null °ªÀ» Æ÷ÇÔÇÕ´Ï´Ù.

µÑ ¶Ç´Â ÀÌ»óÀÇ ¿­Àº WHERE Àý ¶Ç´Â Á¶ÀÎ Á¶°Ç¿¡¼­ ÀÚÁÖ ÇÔ²² »ç¿ëµË´Ï´Ù.

Å×À̺íÀº ´ëÇüÀÌ°í ´ëºÎºÐÀÇ ÁúÀǵéÀº ÇàÀÇ 2-4%º¸´Ù Àû°Ô ÀоîµéÀÏ °ÍÀ¸·Î ¿¹»óµË´Ï´Ù.

À¯ÀϼºÀ» °­ÇàÇϱ⸦ ¿øÇÑ´Ù¸é, Å×À̺í Á¤ÀÇ¿¡ À¯ÀÏÇÑ Á¦¾àÁ¶°ÇÀ» Á¤ÀÇÇØ¾ß ÇÔÀ» ¸í½É ÇϽʽÿÀ. À̶§ À¯ÀÏÇÑ À妽º´Â ÀÚµ¿À¸·Î »ý¼ºµË´Ï´Ù.




¾ðÁ¦ À妽º¸¦ »ý¼ºÇؼ­´Â ¾ÈµÇ´Â°¡

Å×À̺íÀÌ ÀÛ´Ù.

¿­ÀÌ ÁúÀÇÀÇ Á¶°ÇÀ¸·Î ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â´Ù.

´ëºÎºÐÀÇ ÁúÀǵéÀº ÇàÀÇ 2-4%ÀÌ»óÀ» ÀоîµéÀÏ °ÍÀ¸·Î ¿¹»óµÈ´Ù.

Å×À̺íÀº ÀÚÁÖ °»½ÅµË´Ï´Ù. Å×ÀÌºí¿¡ Çϳª ÀÌ»ó À妽º¸¦ °¡Áö°í ÀÖ´Ù¸é Å×À̺íÀ» ¾×¼¼½ºÇÏ´Â DML ¹®ÀåÀº À妽ºÀÇ À¯Áö ¶§¹®¿¡ »ó´ëÀûÀ¸·Î ´õ ¸¹Àº ½Ã°£ÀÌ °É¸®°Ô µË´Ï´Ù.


À妽º È®ÀÎ

USER_INDEXES µ¥ÀÌÅÍ »çÀü ºä¿¡¼­ À妽ºÀÇ Á¸À縦 È®ÀÎÇÕ´Ï´Ù. ¶ÇÇÑUSER_IND_COLUMNS ºä¸¦ ÁúÀÇÇÔÀ¸·Î½á À妽º¿¡ °ü°èµÈ ¿­À» È®ÀÎÇÕ´Ï´Ù. À§ÀÇ ¿¹´Â EMP Å×ÀÌºí¿¡¼­ ÀÌÀü¿¡ »ý¼ºµÈ À妽º, °ü·Ã À̸§, À¯Àϼº ¸ðµÎ¸¦ µð½ºÇ÷¹ÀÌÇÕ´Ï´Ù INDEX_NAME        COLUMN_NAME    COL_POS UNIQUENES
-----------------  --------------- ------- ----------
EMP_EMPNO_PK      EMPNO                1 UNIQUE
EMP_ENAME_IDX      ENAME                1 NONUNIQUE



ÁÖ: À§ÀÇ Ãâ·ÂÀº Æ÷¸ËµÇ¾ú½À´Ï´Ù.


ÇÔ¼ö ±â¹Ý À妽º

UPPER(column_name) ¶Ç´Â LOWER(column_name) Å°¿öµå·Î Á¤ÀÇµÈ ÇÔ¼ö ±â¹Ý À妽º¸¦ »ç¿ëÇÏ¸é ´ë¼Ò¹®ÀÚ ±¸ºÐ ¾øÀÌ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ À妽º´Â

  SQL> CREATE INDEX uppercase_idx ON emp (UPPER(ename));

´ÙÀ½°ú °°Àº ÁúÀǸ¦ ó¸®ÇÕ´Ï´Ù.

    SQL> SELECT * FROM emp WHERE UPPER(ename) = 'KING';

Àüü Å×À̺íÀ» ½ºÄµÇÏ´Â ´ë½Å À妽º¸¦ »ç¿ëÇÏ·Á¸é ÀÌÈÄ ÁúÀÇÀÇ ÇÔ¼ö °ªÀÌ ³ÎÀÌ ¾Æ´Ï¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ¸í·É¹®Àº À妽º¸¦ »ç¿ëÇϵµ·Ï µÇ¾î ÀÖÁö¸¸ where ÀýÀÌ ¾øÀ¸¸é OracleÀÌ Àüü Å×À̺íÀ» ½ºÄµÇÕ´Ï´Ù.

  SQL> SELECT * FROM emp

      2  WHERE UPPER (ename) IS NOT NULL

      3  ORDER BY UPPER (ename);

OracleÀº ¿­¿¡ DESC°¡ Ç¥½ÃµÈ À妽º¸¦ ÇÔ¼ö ±â¹Ý À妽º·Î ó¸®ÇÕ´Ï´Ù. DESC°¡ Ç¥½ÃµÈ ¿­Àº ³»¸²Â÷¼øÀ¸·Î Á¤·ÄµË´Ï´Ù.



À妽º Á¦°Å

À妽º¸¦ ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù. À妽º¸¦ º¯°æÇϱâ À§Çؼ­´Â, ±×°ÍÀ» Á¦°ÅÇÏ°í ´Ù½Ã ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù. DROP INDEX ¹®ÀåÀ» »ý¼ºÇÏ¿© µ¥ÀÌÅÍ »çÀü¿¡¼­ À妽º Á¤ÀǸ¦ Á¦°ÅÇÕ´Ï´Ù. À妽º¸¦ Á¦°ÅÇϱâ À§Çؼ­´Â À妽ºÀÇ ¼ÒÀ¯ÀÚÀ̰ųª DROP ANY INDEX ±ÇÇÑÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.


¸ñ·Ï | ÀÔ·Â | ¼öÁ¤ | ´äº¯ | »èÁ¦