°úÁ¤¸ñÀû
º» °úÁ¤¿¡¼´Â
ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ´Ù¸¥ µ¥ÀÌÅͺ£À̽º °´Ã¼ Áß ÀϺθ¦ »ý¼ºÇÏ°í À¯ÁöÇÏ´Â ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù. ÀÌ °´Ã¼´Â ½ÃÄö½º , À妽º, µ¿ÀǾ
Æ÷ÇÔÇÕ´Ï´Ù.
µ¥ÀÌÅͺ£À̽º °´Ã¼
¸¹Àº
¾îÇø®ÄÉÀ̼ǵéÀº À¯ÀÏÇÑ ¼ýÀÚ °ªÀ» ±âº» Å° °ªÀ¸·Î »ç¿ëÇÕ´Ï´Ù. ÀÌ ¿ä±¸»çÇ×À» ó¸®Çϱâ À§ÇØ Äڵ带 ¾îÇø®ÄÉÀ̼ǿ¡¼ ±¸ÃàÇϰųª À¯ÀÏÇÑ ¹øÈ£¸¦
»ý¼ºÇϱâ À§ÇØ ½ÃÄö½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀϺΠÁúÀÇÀÇ ¼º´ÉÀ» Çâ»ó½ÃÅ°±æ ¿øÇÑ´Ù¸é, À妽ºÀÇ »ý¼ºÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ
¿ ¶Ç´Â ¿ÁýÇÕ¿¡¼ À¯ÀϼºÀ» °È½ÃÅ°±â À§ÇØ À妽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¿ÀǾ »ç¿ëÇÏ¿© °´Ã¼¸¦ À§ÇÑ ´ëü¸íÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
À妽º¶õ?
¿À¶óŬ ¼¹ö À妽º´Â Æ÷ÀÎÅ͸¦ »ç¿ëÇÏ¿© ÇàÀÇ °Ë»öÀ» ÃËÁøÇÒ ¼ö
ÀÖ´Â ½ºÅ°¸¶ °´Ã¼ÀÔ´Ï´Ù. À妽º´Â ¸í½ÃÀûÀ¸·Î ¶Ç´Â ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¿¡¼ À妽º¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù¸é, À̶§´Â Àüü Å×À̺í
½ºÄµ(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.¡±¸¦ ÂüÁ¶ÇϽʽÿÀ.
¸¹Àº °ÍÀÌ Ç×»ó ´õ ÁÁÀº °ÍÀº ¾Æ´Ï´Ù.
À¯ÀϼºÀ» °ÇàÇϱ⸦ ¿øÇÑ´Ù¸é, Å×À̺í Á¤ÀÇ¿¡ À¯ÀÏÇÑ Á¦¾àÁ¶°ÇÀ» Á¤ÀÇÇØ¾ß ÇÔÀ» ¸í½É ÇϽʽÿÀ. À̶§ À¯ÀÏÇÑ À妽º´Â ÀÚµ¿À¸·Î »ý¼ºµË´Ï´Ù.
|
¾ðÁ¦ À妽º¸¦ »ý¼ºÇؼ´Â ¾ÈµÇ´Â°¡
À妽º È®ÀÎ
USER_INDEXES µ¥ÀÌÅÍ »çÀü ºä¿¡¼ À妽ºÀÇ Á¸À縦
È®ÀÎÇÕ´Ï´Ù. ¶ÇÇÑUSER_IND_COLUMNS ºä¸¦ ÁúÀÇÇÔÀ¸·Î½á À妽º¿¡ °ü°èµÈ ¿À» È®ÀÎÇÕ´Ï´Ù. À§ÀÇ ¿¹´Â EMP Å×ÀÌºí¿¡¼ ÀÌÀü¿¡ »ý¼ºµÈ
À妽º, °ü·Ã À̸§, À¯Àϼº ¸ðµÎ¸¦ µð½ºÇ÷¹ÀÌÇÕ´Ï´Ù
INDEX_NAME COLUMN_NAME COL_POS
UNIQUENES |
ÁÖ: À§ÀÇ Ãâ·ÂÀº Æ÷¸ËµÇ¾ú½À´Ï´Ù.
ÇÔ¼ö ±â¹Ý À妽º
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 ±ÇÇÑÀ» °¡Áö°í ÀÖ¾î¾ß
ÇÕ´Ï´Ù.
±¸¹®¿¡¼
index À妽ºÀÇ À̸§ÀÔ´Ï´Ù.
emp tableÀÇ ¸ðµç column¿¡ ´ëÇÏ¿© nonunique index°¡ »ý¼ºµÇ¾î ÀÖ´Ù°í ÇÒ ¶§, ´ÙÀ½ ¹®ÀåÀ» ½ÇÇàÇÒ °æ¿ì ¾î¶²
columnÀÇ index°¡ »ç¿ëµÇ°Ú´Â°¡?
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno = 30
ORDER BY sal, ename;
A. empno
B. ename
C.
sal
D. deptno
´ä