HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] °³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î Æ©´× À̽´ 10°¡Áö À¯Çü ºÐ¼®
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 211.¢½.74.31 ÀÐÀ½:5019  

http://blog.naver.com/tosaymin/30018902426

 
°³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î Æ©´× À̽´ 10°¡Áö À¯Çü ºÐ¼®
¹Ú ¼º ¿ì
dont4get@chol.com

Çö¿µ¾¾½ºÅÛÁî¿Í LG-CNS¸¦ °ÅÃÄ ÇöÀç´Â ¼ö·ÎÅØ ¿¬±¸¼Ò ÆÀÀåÀ¸·Î ÀÏÇÏ°í ÀÖ´Ù. ÅÂÆò¾ç ÆǸŠ¹°·ù °³¹ß, KT-ICIS ¿ä±Ý°ü¸®½Ã½ºÅÛ ÇÁ·ÎÁ§Æ® DBA, KTF-Â÷¼¼´ë ºô¸µ ÇÁ·ÎÁ§Æ® DBA, ÅëÇÕ Çϼö°ü°Å À¯Áö°ü¸® SW °³¹ß ÆÀÀåÀ¸·Î È°µ¿Çß´Ù.

 
Áö³­ 2ȸ¿¡ °ÉÃÄ ±âº»À» Æ°Æ°È÷ ÇÏÀÚ´Â Àǹ̿¡¼­ ½¬¿î ¿¹Á¦¸¦ Áß½ÉÀ¸·Î ÁÖ·Î Ç÷£(PLAN)À» ÀÛ¼ºÇÏ°í Çص¶ÇÏ´Â µ¥ ÁÖ·ÂÇß´Ù. Áö³­ °­Á¸¸ Àڱ⠰ÍÀ¸·Î ¸¸µé¾ú´Ù¸é Àû¾îµµ Æ©´× ºÎ¹®¿¡¼­´Â À¢¸¸ÇÑ Æò¹üÇÑ DBA´Â ´É°¡ÇÒ ¼ö ÀÖ´Ù. À̹ø¿¡´Â Áö±Ý±îÁö °³¹ßÀÚµéÀÌ ÀÚ½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ´À¸®´Ù°í ã¾Æ¿À´Â °¡Àå ¸¹Àº À¯ÇüÀ» 10°¡Áö Á¤µµ·Î ¿ä¾àÇØ ¼³¸íÇÏ°íÀÚ ÇÑ´Ù. ÇÊÀÚ°¡ 10³â µ¿¾È DBA ¾÷¹«¸¦ Çϸ鼭 ÀÌ 10°¡Áö À¯ÇüÀ» Á¦¿ÜÇÏ°í ´À¸° °æ¿ì´Â 10% ¹Ì¸¸À̾ú´Ù. 10% ¹Ì¸¸Àº ÇÁ·Î±×·¥ ±¸Á¶ Á¶Á¤ ¹× ÇÁ·Î¼¼½ºÀÇ Á¶Á¤À» ÅëÇÑ ´ë´ëÀûÀÎ Æ©´× ÀÛ¾÷ÀÌ ÀÌ·ïÁ®¾ß ÇÑ´Ù. ÀÌ·± °æ¿ì´Â ÁøÂ¥ Æ©´× Àü¹®°¡¿¡°Ô ¸Ã°Ü¶ó. 90%¸¸ °³¹ßÀÚµéÀÌ ½Å°æ½á¼­ ÀÚ½ÅÀÇ ÇÁ·Î±×·¥À» Æ©´×ÇÑ´Ù¸é ÇÁ·ÎÁ§Æ®¿¡¼­ ¾öû³² È¿°ú°¡ ³ªÅ¸³­´Ù.

 
2ȸºÐ ÁٰŸ®

Áö³­ ȸ¸¦ °£´ÜÇÏ°Ô ²À ¾Ë¾Æ¾ß ÇÒ ºÎºÐ¸¸ ¿ä¾àÇØ º»´Ù. ¸î ¹øÀ» °­Á¶Çصµ Áö³ªÄ§ÀÌ ¾ø´Â ºÎºÐÀÌ´Ù.

1ȸ
¿ÉƼ¸¶ÀÌÀú¿¡´Â ·ê ±â¹Ý°ú ºñ¿ë ±â¹ÝÀÇ ¿ÉƼ¸¶ÀÌÀú°¡ ÀÖÀ¸¸ç Ç÷£ ÀÛ¼º¹ý¿¡´Â ´ÙÀ½ÀÇ ³× °¡Áö°¡ ÀÖ´Ù.
1. SQLPLUSÀÇ Autotrace ±â´É È°¿ë
2. EXPLAIN ¸í·É°ú Ç÷£ Å×À̺í Á¶È¸
3. tkprof À¯Æ¿¸®Æ¼ È°¿ë ¹æ¹ý : °¡Àå ÀÚ¼¼È÷ º¼ ¼ö ÀÖ´Â ¹æ¹ý
4. Æ©´× ÅøÀ» ÅëÇØ Á¶È¸ÇÏ´Â ¹æ¹ý

2ȸ
Æ©´×Àº ÇÁ·Î±×·¥À» ºü¸£°Ô Çϱâ À§ÇÑ Æ©´× Àü¹®°¡ÀÇ ³ë·ÂÀÌ ¾Æ´Ñ Á¦ÇÑµÈ ÀÚ¿øÀ¸·Î ¼³Á¤µÈ ¸ñÇ¥ ½Ã°£ ³»¿¡ Á¤È®ÇÑ °á°ú¸¦ Áö¼ÓÀû, ¾ÈÁ¤ÀûÀ¸·Î ³»±â À§ÇÑ ÇÁ·Î±×·¡¸ÓÀÇ ¸ðµç ³ë·ÂÀÌ´Ù. µû¶ó¼­ Á¤È®¼º, ½Å¼Ó¼º, ¿î¿µÀÇ ÆíÀ̼º, Àå¾Ö ´ëó¼º, ÀÚ¿ø È°¿ë¼º, °¡µ¶¼º, À̽ļºÀÇ ¸ðµç Ãø¸éÀÌ °í·ÁµÅ¾ß ÇÑ´Ù. ±×¸®°í ·ê ±â¹Ý ¿ÉƼ¸¶ÀÌÀúÀÇ ¿ì¼± ¼øÀ§¿¡ µû¶ó Á¢±Ù °æ·Î¸¦ Ç÷£ ÀÛ¼ºÀ» À§ÁÖ·Î ÃßÀûÇÏ¿© º¸¾Ò´Ù.


1. À妽º¸¦ ¿Ö ¾È Ÿ³ª¿ä
Æ©´×¿¡¼­ ¿ª½Ã °¡Àå ¸¹Àº ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °ÍÀº À妽ºÀÇ À߸øµÈ È°¿ëÀÌ´Ù. ¶ÇÇÑ °³¹ßÀÚµé ´ëºÎºÐ ´À¸®´Ù°í »ý°¢µÇ¸é À妽º¸¦ Àß »ç¿ëÇÏ°í ÀÖ´ÂÁö¸¦ °ËÅäÇÑ´Ù. À妽º¸¦ »ç¿ëÇÑ´Ù°í ¹«Á¶°Ç »¡¶óÁö´Â °ÍÀº ¾Æ´ÏÁö¸¸ À妽ºÀÇ ¿Ã¹Ù¸¥ È°¿ëÀº SQL Æ©´×ÀÇ Ã¹ ½ÃÀÛÀÓÀº ºÐ¸íÇÏ´Ù. ƯÈ÷ OLTP¼º ¾÷¹«¿¡¼­´Â À妽º È°¿ëÀÌ Áß¿äÇÏ´Ù. Çϳª¾¿ °æ¿ìÀÇ ¼ö¸¦ ³ª¿­ÇØ º¸ÀÚ.

À妽º°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì(À妽º ±¸Á¶¸¦ º¼ ÁÙ ¸ð¸£´Â »ç¶÷À» À§ÇØ)
¿ì¹®Çö´äÀ̶ó°í ÇÒ±î? À妽º°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ´ç¿¬È÷ À妽º¸¦ ŸÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ¸¹Àº °³¹ßÀÚ´Â ÇØ´ç Å×ÀÌºí¿¡ À妽º°¡ Á¸ÀçÇÏ´ÂÁö, ¾î¶² Ä÷³À¸·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö ¾ËÁö ¸øÇÑ´Ù. ½ÉÁö¾î OCP ÀÚ°ÝÁõÀ» °¡Áø °³¹ßÀÚµµ ÀÌ·± °æ¿ì°¡ ÀÖ´Ù. Áö³­ ȸ¿¡ °£·«ÇÏ°Ô ¼³¸íÇÏ¿´Áö¸¸ USER_INDEXES, USER_IND_COLUMNS¶ó´Â µñ¼Å³Ê¸®¿¡ ÇØ´ç °èÁ¤¿¡¼­ ¸¸µç À妽º ¹× À妽º Ä÷³À» Á¶È¸ÇÒ ¼ö ÀÖ´Ù. ¿©±â±îÁö´Â °³¹ßÀÚµéÀÌ ´ëºÎºÐ ¾Ë °ÍÀ̶ó »ý°¢ÇÑ´Ù.

[È­¸é 1]ÀÚ½ÅÀÇ °èÁ¤¿¡ »ý¼ºµÈ Å×À̺íÀÇ À妽º¸¦ Á¶È¸ÇÏ´Â È­¸é

ÇÏÁö¸¸ ´ëºÎºÐ ÇÁ·ÎÁ§Æ®¿¡¼­ °³¹ßÀÚ °èÁ¤¿¡ Å×À̺íÀ» ¸¸µé¾î ÁÖ´Â °æ¿ì´Â ¾ø´Ù. DBA °èÁ¤¿¡ Å×À̺íÀ» ¸¸µé°í ½Ã³ë´Ô(synonym)À̳ª ºä(view)¸¦ ÅëÇØ °³¹ßÀÚ¿¡°Ô ±ÇÇÑÀ» ÁÖ°Ô µÈ´Ù. SCOTT ¸»°í SYSTEM °èÁ¤À¸·Î ·Î±äÇÑ ´ÙÀ½ ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ º¸ÀÚ.

[È­¸é 2] ´Ù¸¥ °èÁ¤¿¡¼­ ½Ã³ë´ÔÀ¸·Î ¿¬°áµÇ´Â ¿¹Á¦ È­¸é
ÀÌ ´ÙÀ½ SELECT * FROM EMP;¸¦ ½ÇÇàÇϸé ÀÌÀü°ú °á°ú´Â °°À» °ÍÀÌ´Ù. ÇÏÁö¸¸ SELECT * FROM USER_INDEXES WHERE TABLE_NAME = ¡®EMP¡¯ÇÏ¸é ¾Æ¹« À妽ºµµ ¾ø´Ù°í ³ª¿Ã °ÍÀÌ´Ù. ¹°·Ð SELECT * FROM USER_TABLES WHERE TABLE_NAME = ¡®EMP¡¯Çصµ Å×À̺íÀº ¾øÀ» °ÍÀÌ´Ù. [È­¸é 2]ÀÇ ÀÛ¾÷À» º»ÀÎÀÌ ÇÏÁö ¾Ê¾ÒÀ» °æ¿ì¿¡ ¾î¶² °èÁ¤ÀÇ Å×À̺í·Î ½Ã³ë´ÔÀÌ »ý¼ºµÇ¾î ÀÖ´ÂÁö ¸ð¸£´Â °³¹ßÀÚ°¡ ÀÇ¿Ü·Î ¸¹´Ù.
ÀÏ´Ü SELECT OBJECT_TYPE FROM ALL_OBJECTS WHERE OBJECT_NAME = ¡®EMP¡¯ÇÏ¿© EMP°¡ Å×À̺íÀÎÁö ºäÀÎÁö ½Ã³ë´ÔÀÎÁö¸¦ È®ÀÎÇÑ ÈÄ ÀÌ¿¡ ÇØ´çÇÏ´Â Å×À̺íÀ» ã¾Æ°¡¸é µÈ´Ù.
½Ã³ë´ÔÀÏ °æ¿ì¿¡´Â SELECT TABLE_OWNER, TABLE_NAME FROM USER_SYNONYMS WHERE SYNONYM_NAME = ¡®EMP¡¯¶ó°í Çؼ­ ÇØ´ç Å×À̺íÀÇ ¿À³Ê¿Í Å×À̺í¸íÀ» ãÀ¸¸é µÈ´Ù. ¸¸¾à¿¡ ½Ã³ë´ÔÀÌ PUBLICÀ¸·Î µÇ¾î ÀÖÀ¸¸é ALL_SYNONYMS¸¦ ã¾Æ ¿À³Ê°¡ ¡®PUBLIC¡¯ÀÎ °ÍÀ» ãÀ¸¸é µÈ´Ù.
À妽º°¡ Á¸ÀçÇϴµ¥µµ À妽º¸¦ È°¿ë ¸øÇÏ´Â °æ¿ì
  • ù ¹ø° Ä÷³¿¡ Á¶°ÇÀ» ÁÖÁö ¾ÊÀº °æ¿ì
    Áö³­ È£¿¡µµ ¼³¸íÇßµí ù ¹ø° Ä÷³¿¡ = ¶Ç´Â LILE, > Á¶°Ç µîÀ» ±â¼úÇØ¾ß ÇÑ´Ù. 10°³ Ä÷³À¸·Î ±¸¼ºµÈ °áÇÕ À妽º°¡ ÀÖ¾î 9°³ Ä÷³¿¡ = Á¶°ÇÀ» ÁÖ´õ¶óµµ ù ¹ø° Ä÷³ Á¶°ÇÀÌ ºüÁø´Ù¸é ÀÌ À妽º´Â ÀÖÀ¸³ª¸¶³ª ÇÑ °ÍÀÌ´Ù. À妽º¶õ B-Æ®¸® ÇüÅ·ΠÁ¤·ÄµÈ ¼ø¼­¸¦ °¡Áö°í ÀÖ´Ù. ÀÌ ¼ø¼­¸¦ °¡Áö°í ¾×¼¼½º¸¦ ÇÏ¿© ÇØ´ç ¹üÀ§°¡ ÃÊ°úµÇ¸é °Ë»öÀ» Áß´ÜÇÑ´Ù. ±×·¯¹Ç·Î À妽º¸¦ ±¸¼ºÇÏ´Â Ä÷³ ¼ø¼­´ë·Î Á¶°ÇÀÌ ¸¹ÀÌ ÁÖ¾îÁú¼ö·Ï ÁÁÀº °á°ú¸¦ ³½´Ù. Áß°£¿¡ Çϳª¶óµµ ºüÁö°Ô µÇ¸é µÚ ¼ø¼­ÀÇ Á¶°ÇÀº À妽º¿Í´Â ¹«°üÇÏ°Ô Ã¼Å© Á¶°ÇÀÌ µÉ »ÓÀÌ´Ù.
    À妽º¸¦ ÅëÇØ °Ë»ö Á¶°ÇÀ» ÁÙ¿©ÁÖ´Â Ä÷³À» ¡®À妽º È°¿ë Ä÷³¡¯À̶ó ÇÏ°í, °Ë»ö Á¶°ÇÀ» ÁÙ¿©ÁÖÁö ¸øÇÏ°í µ¥ÀÌÅ͸¦ ÃßÃâÇϴ üũ Á¶°Ç¸¸ µÉ ¶§ À̸¦ ¡®µ¥ÀÌÅÍ Ã¼Å© Ä÷³¡¯À̶ó Á¤ÀÇÇÑ´Ù([Ç¥ 1]).

±¸¼º Ä÷³ Á¶ °Ç ºñ ±³
À妽º Ä÷³
¨ç ¸ÅÀå ÄÚµå
¨è ÆǸŠÀÏÀÚ
¨é Á¦Ç° ÄÚµå
ù ¹ø° Ä÷³ Á¶°ÇÀÌ ´©¶ôµÈ °æ¿ì
WHERE ÆǸŠÀÏÀÚ = ¡®20030618''
AND Á¦Ç° ÄÚµå = ¡®50001¡¯
À妽º È°¿ë ¸øÇÔ
ÆǸŠÀÏÀÚ, Á¦Ç° ÄÚµå´Â ´ÜÁö µ¥ÀÌÅÍ Ã¼Å© Ä÷³
=> Àüü µ¥ÀÌÅÍ ´Ù ÀÐÀ½
* Áß°£ Ä÷³ Á¶°ÇÀÌ ´©¶ôµÈ °æ¿ì
WHERE ¸ÅÀåÄÚµå = ¡®R2001¡¯
?AND Á¦Ç° ÄÚµå = ¡®50001¡¯
À妽º È°¿ë °¡´É
=> ¸ÅÀå ÄÚµå : À妽º È°¿ë Ä÷³
=> Á¦Ç° ÄÚµå : µ¥ÀÌÅÍ Ã¼Å© Ä÷³
ÆǸŠÀÏÀÚÀÇ Á¶°ÇÀÌ ´©¶ôµÊ¿¡ µû¶ó ¸ÅÀå ÄÚµå Á¶°Ç¿¡ ÀÇÇØ ¸ðµÎ µ¥ÀÌÅÍ°¡ ÀоîÁö¸é¼­ Á¦Ç° ÄÚµå´Â µ¥ÀÌÅ͸¦ °¡Áö°í ¿Ã °ÍÀΰ¡¸¦ üũÇÏ´Â Á¶°Ç¸¸ µÈ´Ù.
* ù ¹ø?? Ä÷³ Á¶°ÇÀÌ ¡®=¡¯ÀÌ ¾Æ´Ñ °æ¿ì
WHERE ¸ÅÀå ÄÚµå = ¡®R2%¡¯
¡¡?AND ÆǸŠÀÏÀÚ = ¡®20030618¡¯
AND Á¦Ç° ÄÚµå = ¡®50001¡¯
À妽º È°¿ë °¡´É
=> ¸ÅÀåÄÚµå : À妽º È°¿ë Ä÷³
=> ÆǸÅÀÏÀÚ : µ¥ÀÌÅÍ Ã¼Å© Ä÷³
=> Á¦Ç°ÄÚµå : µ¥ÀÌÅÍ Ã¼Å© Ä÷³
ÇÏÁö¸¸ ù ¹ø° Ä÷³ÀÌ LIKE Á¶°ÇÀ̹ǷΠÆǸŠÀÏÀÚ¿Í Á¦Ç° ÄÚµå´Â ´ÜÁö µ¥ÀÌÅ͸¦ °¡Áö°í ¿À±â À§ÇÑ Ã¼Å© Ä÷³¸¸ µÈ´Ù. Áï, ¿ì¼± ¼ø¼­¸¦ °¡Áø Ä÷³ÀÌ = Á¶°ÇÀÌ ¾Æ´Ñ °æ¿ì´Â µÚ Ä÷³Àº ¸ðµÎ µ¥ÀÌÅÍ Ã¼Å© Ä÷³ÀÌ´Ù.

°áÇÕ À妽º¸¦ »ç¿ëÇÒ ¶§¿¡´Â À妽º È°¿ë Ä÷³ÀÌ µ¥ÀÌÅÍ ¹üÀ§¸¦ ÃæºÐÈ÷ Á¼ÇôÁú ¶§ À¯¿ëÇÑ °ÍÀÌ´Ù. [±×¸² 1]°ú °°ÀÌ µ¥ÀÌÅÍ°¡ À妽º È°¿ë Ä÷³¿¡ ÀÇÇØ Á¡Á¡ Á¼ÇôÁö´Â ±¸Á¶°¡ µÅ¾ß ÇÑ´Ù. µ¥ÀÌÅÍ Ã¼Å© Ä÷³Àº µ¥ÀÌÅ͸¦ Á¼ÇôÁÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÐÀº ÈÄ ¹ö·ÁÁö´Â °æ¿ì°¡ ¸¹±â ¶§¹®ÀÌ´Ù.
[±×¸² 1]
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
À妽º¸¦ È°¿ëÇÏÁö ¸øÇϵµ·Ï SQLÀ» ÀÛ¼ºÇÑ °æ¿ì
SQL¹®ÀÇ WHERE Á¶°ÇÀý ±â¼ú½Ã ÇØ´çÇÏ´Â À妽º°¡ À־ ÈùÆ®¸¦ °­Á¦ÀûÀ¸·Î »ç¿ëÇÏÁö ¾ÊÀ¸¸é À妽º¸¦ È°¿ë ¸øÇÏ´Â °æ¿ì´Â [Ç¥ 2]¿Í °°´Ù.


À¯Çü ¿¹Á¦ ¹× ÇØ°á ¹æ¹ý
À妽º Ä÷³ ÀýÀ» º¯ÇüÇÑ °æ¿ì ¼ö½Ä, ÇÔ¼ö µîÀ¸·Î À妽º Ä÷³ ÀýÀ» º¯ÇüÇßÀ» °æ¿ìÀÌ´Ù.
¹Ýµå½Ã ÇÔ¼ö³ª ¼ö½ÄÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â À妽º Ä÷³ ºÎºÐ¿¡ Àû¿ëÇÏÁö ¸»°í ¿©±â¿¡ ´ëÀԵǴ Ä÷³ ¶Ç´Â »ó¼ö ºÎºÐ¿¡ Àû¿ëÇØ¾ß ÇÑ´Ù.
WHERE TO_CHAR(µî·ÏÀÏ, ¡¯YYYYMMDD) = ¡®20030618¡¯
=> WHERE µî·ÏÀÏ = TO_DATE(¡®20030618¡¯, ¡¯YYYYMMDD¡¯)
WHERE SAL * 30 > 30000
=> WHERE SAL > 1000
³»ºÎÀûÀ¸·Î µ¥ÀÌÅÍ Çü º¯È¯ÀÌ ÀϾ °æ¿ì ¼­·Î ´ëÀԵǴ Ç׸ñ³¢¸® µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Ù¸£¸é ³»ºÎÀûÀÎ Çü º¯È¯¿¡ ÀÇÇØ Ä÷³ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÑ È¿°ú¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
WHERE µî·ÏÀÏ = ¡®20030618¡¯
µî·ÏÀÏÀÌ DATE ŸÀÔÀε¥ ¹®ÀÚÇüÀ» Á÷Á¢ ´ëÀÔÇÏ°Ô µÇ¸é WHERE TO_CHAR(µî·ÏÀÏ, ¡¯YYYYMMDD¡¯) = ¡®20030618¡¯·Î ±â¼úµÈ °Í°ú ¶È °°Àº È¿°ú, Áï À妽º Ä÷³À» º¯ÇüÇÑ °Í°ú °°´Ù. µû¶ó¼­ »ó¼ö ÀýÀ» º¯Çü½ÃÄÑ ÁÖ¾î¾ß ÇÑ´Ù.
=> WHERE µî·ÏÀÏ = TO_DATE(¡®20030618¡¯, ¡¯YYYYMMDD¡¯)
Á¶°ÇÀý¿¡ NULL ¶Ç´Â NOT NULLÀ» »ç¿ëÇÑ °æ¿ì WHERE ¿¬Ã¼±Ý¾× IS NULL
±âº»ÀûÀ¸·Î À妽º¸¦ ±¸¼ºÇÑ Ä÷³ °ªÀÌ ÀüºÎ NULLÀ̶ó¸é À妽º´Â ÀÌ·± °ªÀ» ÀúÀåÇÏÁö ¾Ê´Â´Ù. µû¶ó¼­ NULLÀÎ °ªÀÌ ¸¹Áö ¾Ê¾Æ À妽º¸¦ ÅëÇØ ¾×¼¼½º¸¦ ÇÏ°íÀÚ ÇÑ´Ù¸é µ¥ÀÌÅÍ »ý¼º½Ã µðÆúÆ®·Î 0°ú °°ÀÌ µ¥ÀÌÅ͸¦ ¸¸µé¾î ÁÖ´Â °ÍÀÌ ³´´Ù. ¹Ý´ë·Î, ¸¸¾à ¿¬Ã¼±Ý¾×ÀÌ NULLÀÎ »ç¶÷ÀÌ ¸¹°í ¿¬Ã¼±Ý¾×ÀÌ ¾ø´Â »ç¶÷Àº º°·Î ºÐ¼® ´ë»óÀÌ ¾Æ´Ï°í ¿¬Ã¼±Ý¾×ÀÌ NOT NULLÀÎ »ç¶÷ÀÌ ºÐ¼® ´ë»óÀ̶ó¸é ¿¬Ã¼±Ý¾× Ä÷³À» NULL Çã¿ë Ä÷³À¸·Î µÎ´Â °ÍÀÌ ÁÁ´Ù.
WHERE ¿¬Ã¼±Ý¾× IS NOT NULL
=> WHERE ¿¬Ã¼±Ý¾× > 0
¾Õ¼­ ¸»ÇÑ °Íó·³ À妽º¿¡´Â ¿¬Ã¼±Ý¾× NULLÀÎ »ç¶÷Àº Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡, ¿¬Ã¼±Ý¾× ÀÖ´Â »ç¶÷¸¸À» ÃßÃâÇÏ°íÀÚ ÇÒ ¶§¿¡´Â ÇØ´ç À妽º¸¦ È°¿ëÇÏ´Â °ÍÀÌ ÈξÀ À¯¸®ÇÏ´Ù.
ºÎÁ¤ÇüÀ¸·Î Á¶°ÇÀ» »ç¿ëÇÑ °æ¿ì WHERE ¿¬Ã¼ÄÚµå != ¡®ºÎºÐ³³¡¯
ºÎÁ¤¹®Àº À妽º¸¦ È°¿ëÇÏÁö ¸øÇÑ´Ù.
WHERE ¿¬Ã¼ÄÚµå < ¡®ºÎºÐ³³¡¯ OR ¿¬Ã¼ÄÚµå > ¡®ºÎºÐ³³¡¯
¶Ç´Â Å×À̺íÀ» Çѹø ´õ Àоî NOT EXISTS¸¦ »ç¿ëÇ϶ó
WHERE NOT EXISTS
(SELECT ¡®X¡¯ FROM ü³³ WHERE ¿¬Ã¼ÄÚµå=¡¯ºÎºÐ³³¡¯)
LIKE ¿¬»êÀÚ¸¦ ¸Ç ¾Õ¿¡ »ç¿ëÇÏ´Â °æ¿ì WHERE ÁÖ¼Ò LIKE ¡®%½Å¸²¡¯
ÀÌ °æ¿ì¿¡´Â À妽º¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·± ÀÌÀ¯·Î Ä÷³À» ½Ãµµ, ±º±¸, µ¿À¾À¸·Î ÁÖ¼Ò Ä÷³À» ³ª´©¾î »ý¼ºÇÏ´Â °ÍÀÌ ÁÁ´Ù.
[Ç¥ 2] À妽º È°¿ëÀ» ¸øÇÏ´Â À¯Çü


¿ªÀ¸·Î À妽º¸¦ »ç¿ëÇÏ´Â °ÍÀ» ¹æÇØÇÏ´Â ¿ø¸®¸¦ ÀÌ¿ëÇÏ¿© À妽º°¡ ºÒ¸®ÇÏ´Ù°í »ý°¢µÇ´Â °æ¿ì ÀϺη¯ ¾ÕÀÇ ¿¹¿¡ ±â¼úµÈ °Íó·³ ½á ÁÖ´Â ±â¹ýµµ ¸¹ÀÌ »ç¿ëµÈ´Ù. ÇÏÁö¸¸ ÇÊÀÚ ÀÇ°ßÀ¸·Î´Â ÀûÀýÇÏ°Ô ÈùÆ®¸¦ ±¸»çÇÏ¿© Á¦¾î¸¦ ÇÏ´Â °ÍÀÌ °¡µ¶¼º Ãø¸é¿¡¼­ ´õ ³ªÀº ¹æ¹ýÀ̶ó »ý°¢ÇÑ´Ù.

¿ÉƼ¸¶ÀÌÀúÀÇ ¼±ÅÃ(ÈùÆ® ÀÌ¿ë)
·ê ±â¹Ý ¿ÉƼ¸¶ÀÌÀú°¡ ¾Æ´Ñ °æ¿ì À妽º¸¦ È°¿ëÇÏ°íÀÚ Çϳª ¿ÉƼ¸¶ÀÌÀú°¡ ÆÇ´ÜÇÏ¿© ÀÚ½ÅÀÌ »ý°¢ÇÏ´Â À妽º¸¦ È°¿ëÇÏÁö ¾Ê°í Ç®(FULL) ½ºÄµÀ̳ª ´Ù¸¥ À妽º¸¦ »ç¿ëÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ´Â ¿ÉƼ¸¶ÀÌÀú°¡ ÀÚüÀûÀ¸·Î ÆÇ´ÜÇÏ¿© SQL ½ÇÇà°èȹÀ» ÀÛ¼ºÇϱ⠶§¹®ÀÌ´Ù. ÇÏÁö¸¸ ¾ÆÁ÷ ÃÖÀûÈ­µÈ SQL ½ÇÇà °èȹÀ» Á¦½ÃÇØ ÁÖÁö ¸øÇÏ°í ÀÖ´Ù. µû¶ó¼­ ÀÌ·± °æ¿ì ÈùÆ®¸¦ »ç¿ëÇÑ´Ù¸é ÀÚ½ÅÀÌ »ý°¢ÇÏ´Â À妽º¸¦ »ç¿ëÇ϶ó°í Áö½Ã¸¦ ³»¸± ¼ö ÀÖ´Ù.

ÈùÆ® »ç¿ë ¹®¹ýÀº /*+ INDEX(Å×À̺í¸í À妽º¸í) */ÀÌ´Ù. ÈùÆ®´Â /* */À̶ó´Â ÁÖ¼® ¹®±¸¿¡ ÇØ´çÇϹǷΠ´Ù¸£´õ¶óµµ ÄÄÆÄÀÏÀ̳ª ½ÇÇà½Ã ¿À·ù´Â ³»Áö ¾Ê´Â´Ù. µû¶ó¼­ ¹®Á¦°¡ ÀÖ¾î ¼öÁ¤Çߴµ¥ Àß ¸ø »ç¿ëÇÏ¿© ÈùÆ® ¹®ÀåÀÌ Á¦´ë·Î ¼öÇàµÇÁö ¾ÊÀ» ¼ö ÀÖÀ¸´Ï ¹Ýµå½Ã Ç÷£À» ÀÛ¼ºÇØ Á¦´ë·Î È°¿ëµÇ¾ú´ÂÁö¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
 
2. À妽º¸¦ Ÿ´Âµ¥ ¿Ö ´À¸®ÁÒ
(µ¥ÀÌÅÍ ºÐÆ÷µµ¿Í SQL¹® È£Ãâ Ƚ¼ö¸¦ °í·Á)

µ¥ÀÌÅÍ ºÐÆ÷µµ°¡ ³·Àº °æ¿ì
°úµµÇÑ ¼ÒÆ®¸¦ ¹æÁöÇϱâ À§ÇØ À妽º¸¦ È°¿ëÇÏ´Â °æ¿ìµµ ÀÖÁö¸¸ À妽º È°¿ëÀÇ ÁÖ ¸ñÀûÀº ¼ö¸¹Àº µ¥ÀÌÅÍ Áß ÀÚ½ÅÀÌ ÀаíÀÚ ÇÏ´Â ºÎºÐÀÌ ÀûÀº °æ¿ì ÇØ´ç ºÎºÐ¸¸À» ÀаíÀÚ ÇÒ ¶§ »ç¿ëµÇ´Â °ÍÀÌ´Ù. µû¶ó¼­ À妽º·Î ÁöÁ¤ÇÑ Ä÷³¿¡ ÁÖ¾îÁø Á¶°ÇÀÌ Àüü µ¥ÀÌÅÍÀÇ 10% ¹Ì¸¸ÀÌÁö ¾ÊÀ» ¶§¿¡´Â µÇµµ·Ï Ç® ½ºÄµÀ» ÇÏ´Â °ÍÀÌ ÀÏ¹Ý ·ê·Î µÇ¾î ÀÖ´Ù. ÀÌ´Â À妽º¿Í µ¥ÀÌÅÍ ÆÄÀÏÀ» Àоî¾ß Çϱ⠶§¹®¿¡ 2¹èÀÇ ³ë·ÂÀÌ µå´Â °ÍÀÌ°í ¸ÖƼ ºí·° Read¸¦ ÇÏÁö ¾Ê±â ¶§¹®¿¡ 5°³ ÀÌ»óÀÇ ºí·°À» ÇÑ ¹ø¿¡ Àоî¿À´Â Ç® ½ºÄµ¿¡ ºñÇØ 5¹è, Áï ÃÖ¼Ò 10¹è ÀÌ»óÀÇ ³ë·ÂÀÌ ¼ö¹ÝµÈ´Ù°í º¸±â ¶§¹®ÀÌ´Ù. µû¶ó¼­ Á¶°ÇÀÌ À妽º·Î ÀÐÇôÁø´Ù¸é ¹Ýµå½Ã µ¥ÀÌÅÍ ºÐÆ÷µµ¸¦ »ý°¢ÇØ¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î Àü±¹ ±¹¹ÎÀ» Á¶È¸Çϴµ¥ ÀÌÁß ¼­¿ï¿¡ »ç´Â »ç¶÷¸¸ Á¶È¸¸¦ ÇÑ´Ù¸é ¼­¿ï¿¡ »ç´Â Àα¸ ºÐÆ÷´Â ¹Ý Á¤µµÀÌ´Ù. À̸¦ À妽º¸¦ È°¿ëÇÑ´Ù¸é ºÐ¸í È¿°úÀûÀÎ À妽º È°¿ëÀÌ ¾Æ´Ï´Ù.
SQL¹®ÀÌ °úµµÇÏ°Ô È£ÃâµÇ´Â °æ¿ì
¸¸¾à ´ë¿ë·® µ¥ÀÌÅ͸¦ È°¿ëÇÏ´Â »ç¶÷Àº ¹Ýµå½Ã ¼÷µ¶Çϱ⠹ٶõ´Ù. ÀüÇüÀûÀÎ ¹èÄ¡ ÇÁ·Î±×·¥À» ¿¹·Î µç´Ù¸é [¸®½ºÆ® 1]°ú °°ÀÌ ÇÁ·Î±×·¥ÀÌ ¼öÇàµÈ´Ù.

±¸ Á¶ ¿¹ ¹®

DECLARE MAIN-CURSOR;
DECLARE SUB-CURSOR;
OPEN MAIN-CURSOR ;
LOOP
FETCH MAIN-CURSR;
¡¡¡¡¡¡ OPEN SUB-CURSOR ;
FETCH SUB-CURSOR;
CLOSE SUB-CURSOR;
END-LOOP;
CLOSE MAIN-CURSOR;

DECLARE MAIN_CURSOR
SELECT °í°´, °í°´¸í, ¿ìÆí¹øÈ£, ³ª¸ÓÁö ÁÖ¼Ò
FROM °í°´;
DECLARE SUB_CURSOR
SELECT ¿ìÆí¹øÈ£ÁÖ¼Ò FROM ¿ìÆí¹øÈ£
WHERE ¿ìÆí¹øÈ£ = :º¯¼ö;
OPEN MAIN-CURSOR
LOOP
¡¡ FETCH MAIN-CURSOR;
¡¡ :º¯¼ö = °í°´.¿ìÆí¹øÈ£;
SELECT ¿ìÆí¹øÈ£ ÁÖ¼Ò FROM ¿ìÆí¹øÈ£
WHERE ¿ìÆí¹øÈ£ = :º¯¼ö;
END-LOOP
CLOSE MAIN-CURSOR;

¿äÁîÀ½Àº SQL¹®À¸·Î ÇÑ ¹ø¿¡ µ¥ÀÌÅ͸¦ °¡Áö°í ¿À´Â °É ÇÁ·Î±×·¡¸Ó´Â ¼±È£Çϱ⠶§¹®¿¡ [¸®½ºÆ® 1]ó·³ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¿¹´Â µå¹°´Ù. ¾Æ¸¶ MAIN CURSOR¸¦ ´ÙÀ½°ú °°ÀÌ ±¸¼ºÇÒ °ÍÀÌ´Ù.
SELECT A.°í°´¹øÈ£, A.°í°´¸í, A.¿ìÆí¹øÈ£, B.¿ìÆí¹øÈ£ ÁÖ¼Ò, A.³ª¸ÓÁö ÁÖ¼Ò
FROM °í°´ A, ¿ìÆí¹øÈ£ B
WHERE A.¿ìÆí¹øÈ£ = B.¿ìÆí¹øÈ£;
ÇÁ·Î±×·¥ÀÇ ÆíÀ̼º ¶§¹®¿¡ ÀÌ·¸°Ô ÇÏ´Â »ç¶÷µéÀÌ ¸¹Áö¸¸, ¿Ö SQL¹®À» ÇÕÃÄ¾ß ÇÏ´ÂÁö¸¦ ¹°¾îº¸¸é ¿ø¸®¸¦ ÀÌÇØÇÏ´Â »ç¶÷Àº ¸¹Áö ¾Ê´Ù. [¸®½ºÆ® 1]ÀÇ °æ¿ì LOOP¹® ¾È¿¡ Á¤¸» °£´ÜÇÑ SQL¹®ÀÌ À妽º¸¦ È°¿ëÇÏ¿© Á¦´ë·Î ÀÐÇôÁø´Ù Çصµ °í°´ ¼ö°¡ ¸î õ¸¸ °ÇÀÎ °æ¿ì ¾î¶°ÇÑ°¡? ÀÌ SQL¹®Àº ¿©Áö¾øÀÌ ¸î õ¸¸¹ø DB ¿£Áø¿¡°Ô ÀڷḦ ¿äûÇÑ´Ù. SQL¹®ÀÌ ´øÁ®Áö¸é [±×¸² 2]¿Í °°ÀÌ ±¸¹®Çؼ® -> ½ÇÇà°èȹ -> ¹ÙÀεå -> ½ÇÇà -> ÀÎÃâÀ̶ó´Â °úÁ¤À» °ÅÄ¡°Ô µÈ´Ù.


[±×¸² 2] SQL¹® Çؼ® °úÁ¤

¹Ýº¹ ¼öÇàµÊÀº ¹°·Ð °øÀ¯ Ç®À̶ó´Â °÷¿¡ ÀÌ¹Ì ½ÇÇàµÈ SQL¹®ÀÌ Á¸ÀçÇÏ¿© ½ÇÇà°èȹÀ» ´Ù½Ã »ý¼ºÇÏÁö ¾Ê´õ¶óµµ °è¼ÓÀûÀÎ ¼öÇàÀº µ¥ÀÌÅͺ£À̽ºÀÇ »ó´çÇÑ ºÎ´ãÀÌ µÈ´Ù. µû¶ó¼­ LOOP¹® ¾È¿¡ È£ÃâµÇ´Â SQL¹®ÀÌ ´Ü ÇÑ °ÇÀ» ¿äûÇÏ´õ¶óµµ ¹Ýµå½Ã MAIN CURSOR¿¡ º´ÇÕÇÏ´Â ¿¬½ÀÀ» ÇØ¾ß ÇÑ´Ù. Áö±ÝÀº µÎ °³ÀÇ Å×À̺í·Î °£´ÜÇÏ°ÚÁö¸¸ ¿©·¯ Å×À̺íÀÌ µÇ°í µµÁß¿¡ ¾÷¹«°¡ ¹Ù²î¾î ÇÁ·Î±×·¥À» ¼öÁ¤Çϸ鼭 ¿©±âÀú±â SQL¹®À» Ãß°¡Çϱ⠶§¹®¿¡ ÀÌ·± ÇüÅÂÀÇ ÇÁ·Î±×·¥ÀÌ ¸¹ÀÌ ¸¸µé¾îÁö°Ô µÈ´Ù.
ÇÏÁö¸¸ ÀÌ SQL¹®µµ ¸ÍÁ¡Àº ÀÖ´Ù. ¿Ö³ÄÇÏ¸é ¿ìÆí¹øÈ£ À妽º¿Í µ¥ÀÌÅÍ ÆÄÀÏÀ» °è¼ÓÀûÀ¸·Î ¸î õ¸¸¹ø µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇϱ⠶§¹®ÀÌ´Ù. ÀÌ´Â [¸®½ºÆ® 1]¿¡¼­ ³ªÅ¸³­ ÇÁ·Î±×·¥ÀÇ ±¸Á¶¿Í º° Â÷ÀÌ°¡ ¾ø°Ô µÈ´Ù. µû¶ó¼­ À̸¦ °³¼±Çϱâ À§ÇÑ ¹æ¹ýÀÌ Çؽà Á¶ÀÎÀÌ´Ù.
Çؽà Á¶ÀÎÀº Áßø ·çÇÁ(NESTED LOOP) ¹æ½Ä Á¶ÀÎÀÇ ´ÜÁ¡À» ȹ±âÀûÀ¸·Î °³¼±ÇØÁØ´Ù. Åë»óÀûÀ¸·Î ÀÛÀº Å×À̺íÀ» ±âÁØÀ¸·Î Çؽà Å×À̺íÀ» ¸¸µé¾î Á¤·ÄÇÑ ÈÄ Çؽà ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© Á¶ÀÎÇÏ´Â ¹æ½ÄÀÌ´Ù. Çؽà Á¶ÀÎÀÌ ³»ºÎÀûÀ¸·Î ¾î¶»°Ô ÀϾ´ÂÁö´Â ÀÌÇØÇÏÁö ¸øÇÏ´õ¶óµµ, °úµµÇÑ Áßø ·çÇÁ ¹æ½ÄÀ» ÇÇÇÏ°íÀÚ ÇÒ ¶§ ƯÈ÷ °Ç¼ö°¡ Å« Å×À̺íÀ» ÃßÃâÇÏ¿© °Ç¼ö°¡ ÀÛÀº Å×À̺í°ú Á¶Àνÿ¡´Â ÈξÀ ´õ ÁÁÀº ¼º´ÉÀ» ³½´Ù. ´Ü Çؽà Á¶ÀÎÀº ¡®=¡¯ Á¶°ÇÀÏ ¶§ °¡´ÉÇÏ´Ù.
SELECT /*+ USE_HASH(B A) FULL(B) FULL(A) */
A.°í°´¹øÈ£, A.°í°´¸í, A.¿ìÆí¹øÈ£, B.¿ìÆí¹øÈ£ ÁÖ¼Ò, A.³ª¸ÓÁö ÁÖ¼Ò
FROM °í°´ A, ¿ìÆí¹øÈ£ B
WHERE A.¿ìÆí¹øÈ£ = B.¿ìÆí¹øÈ£;
¶Ç ÇÑ °¡Áö ¹æ¹ýÀ¸·Î´Â µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÏÁö ¸»°í ¸Þ¸ð¸®¿¡ »ç¿ëÁ¤º¸¸¦ ¿Ã·Á¼­ À̸¦ ÂüÁ¶ÇÏ´Â ¹æ½ÄÀÌ´Ù. Á¶ÀεǴ Å×À̺íÀÌ ¸¹¾Æ Çؽà Á¶ÀÎÀ¸·Îµµ ¸ñÇ¥ ½Ã°£À» ȹµæÇϱâ Èûµé´Ù¸é ÀÚÁÖ º¯ÇÏÁö ¾Ê´Â Á¤º¸¿¡ ÇÑÇØ µ¥ÀÌÅͺ£À̽º»óÀÇ Á¤º¸¸¦ ÇÁ·Î¼¼½º ½ÃÀ۽ÿ¡ ¸Þ¸ð¸®·Î ·ÎµåÇÑ µÚ ¸Þ¸ð¸®¸¦ ÂüÁ¶Ç϶ó´Â ¶æÀÌ´Ù. ¾ÕÀÇ ¿¹¿Í °°ÀÌ ¿ìÆí¹øÈ£ Å×À̺íÀº °ÅÀÇ º¯µ¿ÀÌ ¾ø´Â Á¤º¸ÀÌ´Ù. ÀÌ Á¤º¸¸¦ ¸Þ¸ð¸®¿¡ ¿Ã·Á »ç¿ëÇÏ´õ¶óµµ µ¥ÀÌÅÍ ¹«°á¼ºÀÌ ±úÁú À§ÇèÀº Àû´Ù. »óÇ° Á¤º¸, ¿äÀ² Á¤º¸, °¢Á¾ ÄÚµå Á¤º¸ µîÀÌ ÀÌ¿¡ ÇØ´çÇÑ´Ù.
ÇÏÁö¸¸ ÀÌ ¹æ¹ýÀº ¹«°á¼ºÀ» ±úÆ®¸± À§ÇèÀÌ ¾î·µç Á¸ÀçÇϹǷΠ¹Ýµå½Ã ´Ù¸¥ ¾÷¹«ÆÀ°ú ÇùÀÇÇÏ¿© °áÁ¤ÇØ¾ß Çϸç, ´ë»ó ÇÁ·Î¼¼½º°¡ ¼öÇà½Ã¿¡´Â °ü·Ã Á¤º¸¸¦ ¼öÁ¤ÇÏ´Â ÀÏÀÌ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.
¸¶Áö¸· ¹æ¹ýÀ¸·Î´Â LOOP¹® ¾È¿¡ SQL¹® ½ÇÇà Ƚ¼ö¸¦ ÁÙÀÌ´Â ÁÁÀº ¾ÆÀ̵ð¾î¸¦ Â¥³»¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î Áö¿ªº°·Î ¼­¹ö°¡ ³ª´²Áø °æ¿ì¶ó¸é ¿ìÆí¹øÈ£°¡ °°Àº °í°´ÀÌ ¿¬´Þ¾Æ ÀÐÇôÁú °¡´É¼ºµµ ÀÖ´Ù. ±×·¸´Ù¸é ÀÌÀü °í°´¿¡¼­ ÀÐÇôÁø °í°´ ¿ìÆí¹øÈ£¿Í Áö±Ý ÀÐÇôÁø °í°´ ¿ìÆí¹øÈ£°¡ °°´Ù¸é ±»ÀÌ ¿ìÆí¹øÈ£ Å×À̺íÀ» ¶Ç ÀÐÀ¸·¯ °¥ ÀÌÀ¯°¡ ¾ø´Ù. ÀÌÀü µ¥ÀÌÅ͸¦ ¸Þ¸ð¸®¿¡ ÀúÀåÇß´Ù°¡ ÀÌ °ªÀ» Àû¿ëÇÏ¸é µÈ´Ù. ÀÌ´Â ¿¹»ó ¹ÛÀÇ ¼ÒµæÀ» ¿Ã¸± ¼ö ÀÖ´Ù.
 
3. ¸îõ ¸¸°ÇÀº ¼Óµµ°¡ »¡¸® ³ª¿À´Âµ¥ ¿Ö °Ü¿ì 100°Ç Á¶È¸ ½Ã¿¡´Â ´À¸°°¡¿ä
(Àüü ¹üÀ§ ó¸®¿Í ºÎºÐ ¹üÀ§ ó¸®ÀÇ °í·Á)
¡°SQLPLUS¿¡¼­ ¸îõ ¸¸ °Ç ÀÌ»óÀÎ Å×À̺íÀ» Á¶È¸ÇÏ¸é ±Ý¹æ °á°ú°¡ È­¸é¿¡ ³ª¿À´Âµ¥ ¸î°Ç µÇÁö ¾Ê´Â µ¥ÀÌÅÍ´Â ¿Ö ¿À·¡ °É¸®³ª¿ä?¡±¶ó°í Áú¹®À» ÇÏ´Â °³¹ßÀÚ°¡ ¸¹ÀÌ ÀÖ´Ù.
SELECT * FROM ÅëÈ­³»¿ª WHERE ¹ß½ÅÁö¿ª = ¡®¼­¿ï¡¯;
SELECT ³â¿ù, SUM(±Ý¾×) FROM ü³³Á¤º¸ GROUP BY ³â¿ù;
ÀÌ°ÍÀÌ ÀϹÝÀûÀ¸·Î Æ©´× Ã¥¿¡¼­ ¸»ÇÏ´Â ºÎºÐ ¹üÀ§¿Í Àüü ¹üÀ§¸¦ ¶æÇÏ´Â °ÍÀÌ´Ù. ù ¹ø° SQL¹®¿¡¼­ ÅëÈ­³»¿ªÀº ¸î¾ï °ÇÀÌ µÇÁö¸¸ DB¿¡¼­ ÀÐÀº °á°ú¸¦ ±×´ë·Î È­¸é¿¡ ³ªÅ¸³»¸é µÇ±â ¶§¹®¿¡ ÀÏÁ¤ ¹öÆÛ¿¡ Â÷¸é Ãâ·ÂÇÑ´Ù. µÎ ¹ø° SQL¹®¿¡¼­´Â DB¿¡¼­ ÀÐÀº °á°ú¸¦ ±×´ë·Î È­¸é¿¡ Ãâ·ÂÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó GROUP BY¿Í SUM ÀÛ¾÷ ÈÄ ±× °á°ú¸¦ Ãâ·ÂÇÑ´Ù.
µû¶ó¼­ ù ¹ø° SQL¹®Àº ¿£ÅÍ Å°¸¦ Ä¡¸é ÁÖ¸£¸¤ È­¸é¿¡ µð½ºÇ÷¹ÀÌµÇ°í µÎ ¹ø° ¹®ÀåÀº ÀÏÁ¤½Ã°£À» ±â´Ù¸° ÈÄ Ãâ·ÂµÇ´Â °ÍÀÌ´Ù. ÀÌ´Â Æ©´×¿¡¼­ Áß¿äÇÑ Àǹ̸¦ °¡Áø´Ù. ƯÈ÷ OLTP¼º ¾÷¹«(¿Â¶óÀÎ, Áï È­¸é ó¸®)¿¡¼­ ´õ¿í Àǹ̰¡ Å©´Ù. ù ¹ø° SQL¹®Àº »¡¸® »¡¸® °á°ú °ªÀÌ Â÷·Ê·Î ¸®ÅϵÇÁö¸¸ ¿ÏÀüÈ÷ Àü µ¥ÀÌÅ͸¦ È­¸é¿¡ Ãâ·ÂÇÑ´Ù¸é µÎ ¹ø° SQL¹®º¸´Ù ´À¸®´Ù. ù ¹ø° °°Àº 󸮸¦ ºÎºÐ ¹üÀ§ 󸮶ó ÇÏ°í µÎ ¹ø° °°Àº 󸮸¦ Àüü ¹üÀ§ 󸮶ó ºÎ¸¥´Ù.
OLTP ¾÷¹«´Â ÇÑÁ¤µÈ È­¸é, ¸¹¾Æ¾ß ¸¸°Ç Á¤µµ¸¦ »ç¿ëÀÚ°¡ ¿Â¶óÀο¡¼­ 󸮸¦ ÇÏ°Ô µÈ´Ù. µû¶ó¼­ ¾ó¸¶³ª »¡¸® »ç¿ëÀÚ¿¡°Ô °á°ú¸¦ óÀ½ ³»º¸³» ÁÖ¾î¾ß Çϴ°¡°¡ Æ©´× Æ÷ÀÎÆ®´Ù. µû¶ó¼­ °Ç¼ö°¡ ¸¹Àº °æ¿ì¿¡´Â ¡®NEXT¡¯ ¹öÆ°À» ÀÌ¿ëÇÏ¿© ´ÙÀ½ °á°úºÎÅÍ 100°Ç Á¤µµ¾¿ º¸¿©ÁÖ¸é µÈ´Ù. ¿ì¸®³ª¶ó »ç¿ëÀÚ´Â ¹«Ã´ ¼Óµµ¿¡ ¹Î°¨ÇÏ´Ù. 5ÃÊ 10ÃÊ°¡ ³Ñ¾î°¡¸é ¾öû Â¥ÁõÀ» ³½´Ù. 30ÃÊ Áö³ª¼­ È­¸é¿¡ µð½ºÇ÷¹ÀÌµÈ´Ù¸é »ç¿ëÀÚ´Â ´çÀå °³¹ßÀÚ¿¡°Ô ½ÃÁ¤À» ¸íÇÒ °ÍÀÌ´Ù. ¸¹Àº Ãâ·Â µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´õ¶óµµ È­¸é ´ÜÀ§·Î ºü¸£°Ô 󸮸¦ ÇØ ³ª°¡¾ß ÇÑ´Ù.
¹Ý´ë·Î ¹èÄ¡¼º ¾÷¹«´Â ÁÖ·Î Àü»ê ÀÛ¾÷ÀÚ°¡ ÀÏÁ¤ÇÑ ÀÛ¾÷ ½Ã³ª¸®¿À·Î ÀÛ¾÷À» ÇÑ´Ù. È­¸é¿¡ ³ªÅ¸³ª´Â Áß°£ °ªº¸´Ù´Â ÃÖÁ¾ ÀÛ¾÷ °á°ú°¡ Áß¿äÇÏ´Ù. È­¸é¿¡ »¡¸® µð½ºÇ÷¹ÀÌµÈ´Ù°í »¡¸® ³¡³ª´Â °ÍÀº Àý´ë ¾Æ´Ï´Ù. ÀÌ·± ÀÌÀ¯·Î OLTP¿¡¼­´Â ÁÖ·Î Áßø ·çÇÁ ¹æ½ÄÀ» ¼±È£ÇÏ°í ¹èÄ¡ ¾÷¹«¿¡¼­´Â Çؽà Á¶ÀÎ ¹æ½ÄÀ» ¼±È£ÇÏ°Ô µÈ´Ù. Çؽà Á¶ÀÎÀº Çؽà Å×À̺íÀ» »ý¼ºÇϱ⠶§¹®¿¡ óÀ½ ¸®ÅÏÇÏ´Â ½Ã°£ÀÌ Áö¿¬µÈ´Ù. ÇÏÁö¸¸ Áßø ·çÇÁ ¹æ½ÄÀº ÇØ´ç Á¶°Ç¿¡ ¸Â´Â µ¥ÀÌÅ͸¦ Â÷·ÊÂ÷·Ê °Ë»öÇϱ⠶§¹®¿¡ ÀÏÁ¤ ¹öÆÛ¿¡ ä¿ì±â±îÁö ¾ó¸¶ÀÇ ½Ã°£ÀÌ ¼Ò¿äµÇÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î °í°´ Å×À̺í°ú »ç¿ë¿ä±Ý Å×À̺íÀÌ ÀÖ´Ù¸é ¿Â¶óÀÎ ¾÷¹«¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ SQL¹®ÀÌ ±¸»çµÉ °ÍÀÌ´Ù.
SELECT /*+ USE_NL(A B) */ A.°í°´¸í, B.»ç¿ë¿ä±Ý FROM °í°´ A, ¿ä±Ý B
WHERE A.°í°´ID = B.°í°´ ID
ÀÌ·± °æ¿ì B Å×ÀÌºí¿¡ °í°´ ID¶ó´Â À妽º°¡ ±¸¼ºµÇ¾î °í°´ ID¸¦ Â÷·Ê·Î Á¶ÀÎÇØ °¡¸é¼­ ÀÐ°Ô µÇ¸ç ÀÏÁ¤ È­¸é ¹öÆÛ¿¡¸¸ Â÷¸é °á°ú¸¦ ¸®ÅÏÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à¿¡ ¹èÄ¡ ÇÁ·Î±×·¥À̶ó¸é ¾Õ¼­ ¸»ÇßµíÀÌ Áßø ·çÇÁ ¹æ½ÄÀÌ ³»ºÎÀûÀÎ DBÀÛ¾÷ÀÌ ºÎ´ãÀÌ ´õ ¸¹±â ¶§¹®¿¡ Çؽà Á¶ÀÎÀ¸·Î ¹Ù²Ù¾î ½ÇÇàÇÒ °ÍÀÌ´Ù.
SELECT /*+ USE_HASH(A B) */ A.°í°´¸í, B.»ç¿ë¿ä±Ý FROM °í°´ A, ¿ä±Ý B
WHERE A.°í°´ID = B.°í°´ID
ÀÌ·¸´Ù¸é °í°´ Å×À̺íÀ» Çؽà Å×À̺í·Î ¸¸µå´Â µ¿¾ÈÀº È­¸é¿¡ ¾Æ¹«°Íµµ Ãâ·ÂµÇÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ÃÖÁ¾ °á°ú´Â Çؽà Á¶ÀÎ ¹æ½ÄÀÌ ÈξÀ ºü¸£´Ù. µû¶ó¼­ ¿Â¶óÀÎ ÇÁ·Î±×·¥ Æ©´×½Ã¿¡´Â È­¸é ¹öÆÛ¿¡ ³ªÅ¸³¾ ºÎºÐÀ» ¾î¶»°Ô ºü¸£°Ô ÇÒ °ÍÀΰ¡¸¦ °í¹ÎÇÏ¿© µÇµµ·Ï ºÎºÐ ¹üÀ§·Î ¸¸µé¾î ÁÖ´Â ¿¬½ÀÀ» ¸¹ÀÌ ÇØ¾ß Çϸç, ¹èÄ¡ ÇÁ·Î±×·¥ÀÎ °æ¿ì´Â Àüü ¿Ï·á½Ã°£ ´ÜÃàÀ» ¸ñÇ¥·Î Æ©´×ÇØ¾ß ÇÑ´Ù. GROUP BY, ORDER BY·Î µÇ¾î ÀÖ´Â ¹®ÀåÀº ±×¿¡ ¸Â´Â À妽º¸¦ »ý¼ºÇÏ¿© º°µµÀÇ Á¤·Ä ÀÛ¾÷À¸·Î ÀÎÇØ Àüü ¹üÀ§·Î ½ÇÇàµÇ´Â °ÍÀ» ¸·¾Æ ÁÙ ¼ö ÀÖ´Ù.
¿Â¶óÀÎ È­¸é ¼³°è½Ã¿¡µµ PC »ç¾çÀÌ ¸¹ÀÌ ÁÁ¾ÆÁø Å¿¿¡ ¸î¸¸ ¶óÀÎÀÌ ³Ñµµ·Ï È­¸é ¹öÆÛ¸¦ Àâ´Â »ç¶÷µéµµ ¸¹´Ù. ÀÌ´Â 1000°Ç ´ÜÀ§·Î È­¸éÀ» ¸¸µé¾úÀ» ¶§º¸´Ù ¼Óµµ°¡ ¶³¾îÁú ¼ö¹Û¿¡ ¾ø´Ù. ÇÊÀÚ´Â ¾î¶² °æ¿ì ¿Â¶óÀÎ ÇÁ·Î±×·¥ÀÌ ¸¶Ä¡ Ãâ·Â ÇÁ·Î±×·¥À» º¸´Â µíÇÑ ´À³¦À» ¹ÞÀ» ¶§°¡ ¸¹´Ù. ¿¹¸¦ µé¾î ÇÑ ´Þ µ¿¾ÈÀÇ Ã¼³³ÀÚ¸¦ Á¶È¸ÇÏ´Â È­¸éÀÌ ÀÖ¾ú´Ù. ÇÑ ´Þ¿¡ 200¸¸ °Ç Á¤µµÀÇ Ã¼³³ÀÚ°¡ Àִµ¥ È­¸é Á¶°Ç¿¡´Â ³â ¿ù Á¶°Ç¸¸ ÀÖ¾úÀ¸¸ç ÇÑ È­¸é¿¡¼­ 1¸¸ °Ç Á¤µµ¾¿ º¸¿© ÁÖ¾ú´ø °ÍÀ¸·Î »ý°¢³­´Ù. ±×·³ ÀÌ »ç¿ëÀÚ´Â 200¹øÀ» ¡®NEXT¡¯ ¹öÆ°À» º¸¸ç Àü ü³³ÀÚ¸¦ Á¶È¸ÇÏ´Â °ÍÀΰ¡?
ÀÌ·± È­¸éÀº ¸®Æ÷Æ®·Î Ãâ·ÂÇÏ¿© º¸°üÀÇ Àǹ̷θ¸ ÇÏ¸ç ¿Â¶óÀÎ ÇÁ·Î±×·¥À¸·Î¼­ÀÇ Á¸Àç Àǹ̰¡ º°·Î ¾ø´Ù. ƯÁ¤ ü³³ÀÚ¸¦ ã±â À§ÇØ ÀÌ »ç¶÷Àº ÃÖ´ë 200¹øÀÇ ¡®NEXT¡¯ ¹öÆ°À» ´­·¯¾ß ÇÑ´Ù. ÀÌ´Â ÀÌ »ç¶÷¿¡°Ô ÇÊ¿ä ¾ø´Â Á¤º¸¸¦ Á¦°øÇϸ鼭 ±ÍÁßÇÑ µ¥ÀÌÅͺ£À̽º ÀÚ¿øÀ» ³¶ºñÇÏ°í ÀÖ´Â °ÍÀÌ´Ù. Áֹεî·Ï¹øÈ£¸¦ ÀÔ·ÂÇϸé ƯÁ¤ ü³³ÀÚ¸¦ ãµµ·Ï ÇØ ÁÖµçÁö, ü³³ ±Ý¾×ÀÌ ¾ó¸¶ ÀÌ»óÀÎ °í°´À» ã´Â´ÙµçÁö ÀÌ·± ÁÖ¿ä Á¶°ÇÀ» °¡Áö°í ãÀ» ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
±×·¸´Ù¸é ¡°ÀÌ·± Áֹεî·Ï¹øÈ£¶óµçÁö, ü³³±Ý¾×, ü³³ Ƚ¼ö µî¿¡ ´ëÇØ Á¶È¸¸¦ Çϱâ À§ÇØ ¸ðµç Ä÷³¿¡ À妽º¸¦ ¸¸µé¾î¾ß Çϴ°¡?¡±¶ó´Â Áú¹®ÀÌ ³ª¿Ã ¼ö ÀÖ´Ù. ¿øÄ¢ÀûÀ¸·Î ÀÌ ÇÁ·Î±×·¥¸¸À» À§Çؼ­´Â ¡®YES¡¯°¡ Á¤´äÀÌ´Ù. ÇÏÁö¸¸ À妽º Çϳª¸¦ ¸¸µé¸é ÀÌ ÇÁ·Î±×·¥ÀÇ ¼Óµµ¸¦ °³¼±ÇÒÁö ¸ô¶óµµ ÀÌ Ã¼³³ Å×À̺íÀ» »ý¼ºÇÏ´Â ÇÁ·Î¼¼½º´Â ±× ÀÌ»ó ´À·ÁÁø´Ù.

ÀÌ ¹®Á¦°¡ Æ©´×½Ã ÀÚÁÖ ºÎµúÈ÷°Ô µÈ´Ù. Á¶È¸¸¦ ºü¸£°Ô ÇÏÀÚ´Ï »ý¼º ÇÁ·Î¼¼½º°¡ ´À·ÁÁö°í »ý¼º ÇÁ·Î¼¼½º¸¦ ºü¸£°Ô ÇÏÀÚ´Ï À妽º¸¦ Æ÷±âÇÏ°Ô µÇ°í. ¾Æ¸¶ Æ©´× ´ã´çÀÚµéÀÌ °¡Àå ¾Ö¸¦ ¸Ô´Â ºÎºÐÀÌ ¾Æ´Ò±î ½Í´Ù. ÇÏÁö¸¸ ¿Õµµ´Â ¾ø´Ù. ¡®µÑ Áß Çϳª´Â Æ÷±âÇ϶󡯰¡ ´äÀÌ´Ù. Æ÷±âÀÇ Á¶°ÇÀº ¾÷¹«ÀÇ Á߿伺°ú »ç¿ë ºóµµ°¡ ±âÁØÀÌ µÈ´Ù. Çϳª¸¦ Æ÷±âÇÑ ´ÙÀ½ ÃÖ¼ÒÀÇ ÇÇÇØ°¡ °¡´Â ¹æÇâÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¸Å¿ì ¾î·Á¿î ¼±ÅÃÀÌ¸ç ¿À·£ °æÇèÀÌ ÇÊ¿äÇÑ ºÎºÐÀÌ´Ù.
4. µ¥ÀÌÅÍ °Ç¼ö°¡ ¸¹¾Æ¼­ µµÀúÈ÷ ¼Óµµ °³¼±ÀÌ Èûµé´Ù?
ÁøÂ¥ ¹«Áö¸·ÁöÇÏ°Ô Å« µ¥ÀÌÅ͸¦ °¡Áø Å×ÀÌºí³¢¸®ÀÇ Á¶ÀÎÀº Ç® ½ºÄµ¿¡ Çؽà Á¶ÀÎ ÇÔ¼ö¸¦ ¾²´õ¶óµµ Èûµç °æ¿ì°¡ ¸¹´Ù. ÀÌ·± °æ¿ì¿¡´Â Æз¯·²(PARALLEL) ¿É¼ÇÀ» ÈùÆ® Àý¿¡ Ãß°¡ÇØ ¼Óµµ¸¦ °³¼±ÇÏ´Â °ÍÀÌ °¡Àå ¼Õ½¬¿î Æ©´× ¹ýÀÌ´Ù. ÀÌ·¡µµ ¾È µÈ´Ù¸é ÇÁ·Î¼¼½º¸¦ Àß°Ô ³ª´©¾î º´·Ä 󸮸¦ ÇØ¾ß Çϴµ¥ ÀÌ´Â ÇÁ·Î±×·¥À» ¼öÁ¤ÇØ¾ß ÇϹǷΠºÎ´ãÀÌ ¸¹ÀÌ µÇ´Â ÀÛ¾÷ÀÌ´Ù. ÀÏ´Ü Æз¯·² ¿É¼ÇÀ» »ç¿ëÇϱâ À§Çؼ­´Â ÈùÆ®¿¡ ´ÙÀ½°ú °°ÀÌ ½áÁÖ¸é µÈ´Ù.
/*+ PARALLEL(Å×ÀÌºí ¸í Æз¯·² ¼­¹ö °³¼ö) */
¿¹¸¦ µé¾î TAB1, TAB2, TAB3¶ó´Â Å×À̺íÀ» ¼­·Î Á¶ÀÎÇÏ¿© PARALLEL OPTIONÀ» ÁÖ°Ô µÇ¸é ´ÙÀ½°ú °°´Ù.
SELECT /*+ PARALLEL(A 5) PARALLEL(B 5) PARALLEL(C 5) */ * FROM TAB1 A, TAB2 B, TAB3 C
WHERE A.COL1 = B.COL1 AND
B.COL1 = C.COL1;
ÈùÆ® Àý¿¡ µÇµµ·Ï Æз¯·² ¿É¼Ç ¼ö¸¦ °°ÀÌ ¸ÂÃß¾î ÁÖ¸é ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù. ¿©·¯ºÐÀÌ Æз¯·² ¿É¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì Ç÷£ °á°ú¸¦ º¸¸é PARALLEL-TO-PARALLEL, SERIAL-TO-PARALLEL, PARALLEL-TO-PARALLELÀ̶ó´Â °ÍÀ» ¹ß°ßÇÑ´Ù. PARALLEL-TO-PARALLELÀ̶ó´Â °ÍÀÌ ³ªÅ¸³¯ ¶§ °¡Àå ÁÁÀº ¼º´ÉÀ» ¹ßÈÖÇÑ´Ù. ¿ì¼±¼øÀ§¿¡¼­ ÀÐÀº °á°ú¸¦ ´ÙÀ½ º´·Ä ÇÁ·Î¼¼¼­·Î °è¼ÓÀûÀ¸·Î ³Ñ±â±â ¶§¹®¿¡ ÁÁÀº °á°ú¸¦ ³Ñ±â´Â °ÍÀÌ´Ù. ¸¸¾à µÎ °³ ÀÌ»óÀÇ Å×À̺íÀ» Á¶Àνÿ¡ ÃÖÀûÀÇ ¼º´ÉÀ» ³»±â À§Çؼ­´Â µÇµµ·Ï °°Àº ¼ö¸¦ ÁöÁ¤ÇØ ÁÖ¾î¶ó.
±×·¯³ª Æз¯·² ¿É¼ÇÀº °úµµÇÑ CPU ºÎÇϸ¦ °¡Áö°í ¿Ã ¼ö ÀÖ´Ù. CPU °³¼ö¸¦ ÃÊ°úÇÏ´Â Æз¯·² ¿É¼ÇÀº º°·Î µµ¿òÀÌ ¾È µÈ´Ù. ±×·¯¹Ç·Î ÇÁ·Î¼¼½º¸¦ ºü¸£°Ô ¼öÇàÇÏ°íÀÚ ÇÏ´Â ¿å½É¿¡ º´·Ä ÇÁ·Î¼¼¼­¸¦ ³Ê¹« ¸¹ÀÌ ¶ç¿î´Ù¸é ´Ù¸¥ ÇÁ·Î¼¼¼­¿¡ ¹æÇØ°¡ µÇ¸ç, ÀÚ½ÅÀÇ ÇÁ·Î¼¼¼­¿¡µµ °áÄÚ µµ¿òÀÌ µÇÁö ¾Ê´Â´Ù.
±×¸®°í DDL ¹®Àå¿¡ Æз¯·² ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÇØ´ç Å×ÀÌºí ½ºÆäÀ̽ºÀÇ µðÆúÆ® INITIAL_EXTENT, NEXT_EXTENT ÀÇ ½ºÅ丮Áö Àý¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. º´·Ä ÇÁ·Î¼¼¼­°¡ Ãʱ⿡ ÀÌ ½ºÅ丮Áö ÀýÀÇ ¿É¼ÇÀ» ±×´ë·Î Àû¿ëÇϱ⠶§¹®ÀÌ´Ù.
 
5. DB°¡ ¹®Á¦Àΰ¡¿ä? ³» SQL¹®ÀÌ ¹®Á¦Àΰ¡¿ä?
°³¹ßÀÚµéÀº ÇÁ·Î¼¼½º°¡ ¼öÇàÀÌ ´À·ÁÁö¸é ¸ÕÀú ¼­¹ö³ª µ¥ÀÌÅͺ£À̽ºÀÇ ¼º´ÉÀ» ÀǽÉÇÏ°Ô µÈ´Ù. ±×·¯³ª ¼­¹ö°¡ °èȹ ÇÏ¿¡ µµÀԵǾú´Ù¸é ±×·² °¡´É¼ºÀº Èñ¹ÚÇÏ´Ù. °¡Àå È®½ÇÇÑ ¹æ¹ýÀº ¿À¶óŬÀÇ ¼º´É ºä¸¦ Á¶È¸¸¦ ÅëÇØ ¾Ë ¼ö ÀÖÁö¸¸ ´ÙÀ½ ȸ¿¡ ´Ù·ç±â·Î ÇÏ°í SQLÀÌ ¹®Á¦ÀÎÁö µ¥ÀÌÅͺ£À̽º³»ÀÇ ¹®Á¦ÀÎÁö¸¦ ½±°Ô ÆǺ°ÇØ º¸±â·Î ÇÏÀÚ. °£´ÜÇÏ´Ù.
µ¥ÀÌÅͺ£À̽º¿¡ ¹®Á¦°¡ ¹ß»ýÇÑ °ÍÀ̶ó¸é SQLPLUS°¡ Á¦´ë·Î Á¢¼ÓµÇÁö ¾Ê°Å³ª ¾öû ´À¸®°Ô Á¢¼ÓµÈ´Ù. ¶ÇÇÑ ps ?ef|grep ÇÁ·Î±×·¥¸íÀ» Ä¡¸é ¼ýÀÚ°¡ µÎ °³ ³ª¿À´Â µ¥ ¼­¹ö¿¡¼­ SQL*NETÀ» ÅëÇÏÁö ¾ÊÀº °æ¿ì µÞ ¼ýÀÚ°¡ ÇØ´ç ÇÁ·Î±×·¥°ú ¿¬°áµÈ ¿À¶óŬ ¼­¹ö ÇÁ·Î¼¼½º ¹øÈ£ÀÌ´Ù.
Ps ?ef|grep ÇÁ·Î¼¼½º ID¸¦ ÇÏ¸é µ¥ÀÌÅͺ£À̽º¿Í ¿¬°üµÈ ÀÛ¾÷À» ÇÏ°í ÀÖÀ» °æ¿ì ºÐ¸í CPU Á¡À¯À² ¶Ç´Â »ç¿ë·®ÀÌ º¯Çϱ⠸¶·ÃÀÌ´Ù. ÀÌ ¼ýÀÚ°¡ º¯ÇÏ°í Àִµ¥ ´À¸®´Ù¸é ºÐ¸í ÀÚ½ÅÀÇ SQL¹®ÀÌ ¹º°¡ ¹®Á¦°¡ ÀÖ´Ù°í º¸°í Ç÷£À» ÀÛ¼ºÇØ ºÐ¼®ÇØ ºÁ¾ß ÇÑ´Ù.
ÇöÀç ÇÁ·Î±×·¥À» ¼öÇà ÁßÀ̾ ¾î¶² SQL¹®ÀÌ ¼öÇàµÇ´ÂÁö ¸ð¸¥´Ù¸é ´ÙÀ½ÀÇ SQL¹®À» ½ÇÇàÇØ º¸±â ¹Ù¶õ´Ù. ¸ÕÀú v$sessionÀ̶ó´Â ¼º´É ºä¿¡¼­ ÀÚ½ÅÀÇ ÇÁ·Î¼¼½º¿¡ ÇØ´çÇÏ´Â SID¸¦ ãÀº ´ÙÀ½(±ÇÇÑÀÌ ¾ø´Ù°Å³ª Àß ¸ð¸¥´Ù¸é ´ÙÀ½¿¡ ÀÚ¼¼È÷ ¼³¸íÇÒ Å×ÀÌ´Ï DBAÀÇ µµ¿òÀ» ¹ÞÀ» °Í) ÇØ´ç SQLÀ» ½ÇÇàÇÏ°í SQL¹®À» ¼öÇàÇØ º¸¾Æ¶ó. ÀÚ½ÅÀÌ ¸¶Áö¸·À¸·Î ¼öÇàÇÑ SQL¹®ÀÌ º¸ÀÏ °ÍÀÌ´Ù. À̸¦ ¹Ýº¹ÇÏ¸é ¼öÇàÀÌ ¿À·¡ °É¸®´Â SQL¹®ÀÌ ½±°Ô º¸ÀÏ °ÍÀÌ´Ù. Æ©´× ÅøÀ» ÀÌ¿ëÇÏ¸é ´õ¿í ½±°Ô ¾Ë ¼ö ÀÖ´Ù.
col piece for 999
col sql_text for a85
select a.piece,b.osuser,b.process,a.sql_text
from v$sqltext_with_newlines a, v$session b
where a.address=b.sql_address and b.sid=&SID
order by 1 asc
/
¸¸¾à º¯ÇÏ°í ÀÖÁö ¾Ê´Ù¸é LOCKÀ» ÀǽÉÇØ º¸°í ´ÙÀ½ÀÇ SQL¹®À» ½ÇÇà½ÃÄÑ º¸±æ ¹Ù¶õ´Ù.
[¸®½ºÆ® 2] Á¦¸ñ
column username format a10
column sid format 999
column lock_type format a25
column MODE_HELD format a11
column MODE_REQUESTED format a10
column LOCK_ID1 format a8
column LOCK_ID2 format a8

select
a.sid,
decode(a.type,
''MR'', ''Media Recovery'',
''RT'', ''Redo Thread'',
''UN'', ''User Name'',
''TX'', ''Transaction'',
''TM'', ''DML'',
''UL'', ''PL/SQL User Lock'',
''DX'', ''Distributed Xaction'',
''CF'', ''Control File'',
''IS'', ''Instance State'',
''FS'', ''File Set'',
''IR'', ''Instance Recovery'',
''ST'', ''Disk Space Transaction'',
''IR'', ''Instance Recovery'',
''ST'', ''Disk Space Transaction'',
''TS'', ''Temp Segment'',
''IV'', ''Library Cache Invalidation'',
''LS'', ''Log Start or Switch'',
''RW'', ''Row Wait'',
''SQ'', ''Sequence Number'',
''TE'', ''Extend Table'',
''TT'', ''Temp Table'',
a.type) lock_type,
decode(a.lmode,
0, ''None'', /* Mon Lock equivalent */
1, ''Null'', /* N */
2, ''Row-S (SS)'', /* L */
3, ''Row-X (SX)'', /* R */
4, ''Share'', /* S */
5, ''S/Row-X (SSX)'', /* C */
6, ''Exclusive'', /* X */
to_char(a.lmode)) mode_held,
decode(a.request,
0, ''None'', /* Mon Lock equivalent */
1, ''Null'', /* N */
2, ''Row-S (SS)'', /* L */
3, ''Row-X (SX)'', /* R */
4, ''Share'', /* S */
5, ''S/Row-X (SSX)'', /* C */
6, ''Exclusive'', /* X */
to_char(a.request)) mode_requested,
to_char(a.id1) lock_id1, to_char(a.id2) lock_id2
from v$lock a
where a.type not in (''MR'', ''DM'', ''RT'')
and (id1,id2) in
(select b.id1, b.id2 from v$lock b where b.id1=a.id1 and
b.id2=a.id2 and b.request>0)
order by 5,6
/
ÀÌ SQL¹®À» ¼öÇàÇÑ´Ù¸é ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ¿µÇâÀ¸·Î LOCKÀÌ °É¸° °ÍÀ» ¹ß°ßÇÒ ¼ö ÀÖ´Ù. ¸¸¾à µ¥ÀÌÅͺ£À̽º¿¡ ¹®Á¦°¡ ÀÖ´Ù¸é [¸®½ºÆ® 2]ÀÇ µÎ SQL¹®Àº Á¶È¸Á¶Â÷ µÇÁö ¾Ê´Â´Ù. ÀÌÁ¦ ´À¸®´Ù°í ´Ù¸¥ »ç¶÷ÀÇ ÇÁ·Î¼¼½º Å¿À̶óµçÁö, µ¥ÀÌÅͺ£À̽º°¡ ´À¸®´ÙµçÁö ÇÏ´Â ¿À·ù´Â ¹üÇÏÁö ¾Ê±æ ¹Ù¶õ´Ù.
 
6. ¿Â¶óÀÎ ÇÁ·Î±×·¥¿¡¼­ ¸ñÇ¥ ½Ã°£³» ÇÁ·Î±×·¥ÀÌ ¼öÇàµÇÁö ¾Ê¾Æ¿ä
Á¤½Å¾øÀÌ ¼³¸íÇÏ´Ù º¸´Ï Àá½Ã ¸Ó¸®¸¦ ½ÄÈ÷¶ó´Â Àǹ̿¡¼­ Àû¾ú´Ù. ¿Â¶óÀÎ ÇÁ·Î±×·¥ÀÎ °æ¿ì Á¶È¸ Á¶°ÇÀÌ ±î´Ù·Ó°í °Ç¼ö°¡ ¸¹Àº Å×À̺íÀº ¼Óµµ¸¦ ÁÙÀ̴µ¥ ÇÑ°è°¡ ÀÖ´Ù. ½ÉÁö¾î ÀϺΠÇÁ·ÎÁ§Æ®¿¡¼­´Â ¡®¿Â¶óÀÎ ÇÁ·Î±×·¥ ¼öÇà ¸ñÇ¥½Ã°£À» 3ÃÊ À̳»¡¯¶ó°í Àý´ëÀûÀÎ ¼öÄ¡¸¦ Á¤ÇØ ³õ°í ¹«Á¶°Ç ½Ã°£ ÃÊ°ú ½Ã¿¡´Â ºÒÇÕ°ÝÀ» ¼±¾ðÇϱ⵵ ÇÑ´Ù. ÇÏÁö¸¸ ÇÊÀÚ´Â ÀÌ·± °æ¿ìµµ ¹«³­È÷ Åë°úÇß´Ù.
´ë°³ Æ©´×À» Çصµ ¾È µÇ´Â Á¶È¸ È­¸éÀº ´ë°³ °Ç¼ö°¡ ¸¹Àº Å×À̺íÀ» ´Ù¾çÇÑ °Ë»ö Á¶°ÇÀ» ÅëÇØ ºÐ¼®¿ë ÇÁ·Î±×·¥ÀÌ ¸¹´Ù. À̴ ƯÁ¤ »ç¿ëÀÚ°¡ ÀÏ ¸îȸ ¹Ì¸¸À¸·Î »ç¿ëÇÏ´Â °ÍÀÌ ´ëºÎºÐÀÌ´Ù. À̸¦ ¾ïÁö·Î Æ©´×ÇÏ´À¶ó ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ Ãß°¡Çϰųª À妽º¸¦ Ãß°¡ÇÑ´Ù¸é ÀÌ´Â µæº¸´Ù ½ÇÀÌ ¸¹´Ù.
¿Â¶óÀÎ ÇÁ·Î±×·¥Àº »ç¿ëÀÚ¿ÍÀÇ ´ëÈ­ÀÌ´Ù. À̵éÀÌ °©°©ÇÏ°Ô ¿©±â´Â °ÍÀº ¿£Å͸¦ Ä£ ´ÙÀ½ PC°¡ ´Ù¿îµÈ °Íó·³ ¾Æ¹«·± ¸Þ½ÃÁö ¾øÀÌ ¸¶¿ì½ºÀÇ ¸ð·¡½Ã°è¸¸ µ¹´Ù°¡ ¼ö½Ê ÃÊ °æ°ú ÈÄ Á¶È¸µÇ´Â °ÍÀÌ´Ù. ±×¸®°í °Ç¼ö°¡ ¸¹Àº Å×À̺íÀ» ºÐ¼®¿ëÀ¸·Î »ç¿ëÇÏ´Â °ÍÀº ¿ù 1¢¦2ȸÀÇ ÇÑÁ¤µÈ »ç¿ëÀÚ¸¸ÀÌ »ç¿ëÇÑ´Ù. ÀÌ·± ÇÁ·Î±×·¥Àº Á¶È¸ ¹öÆ°À» ´©¸£ÀÚ¸¶ÀÚ ¡®Àá½Ã¸¸ ±â´Ù¸®¼¼¿ä¡¯¶ó´Â ¸Þ½ÃÁö ¹Ú½º¸¦ ¶ç¿ö¶ó. ÇÑ ¸Þ½ÃÁö ¹Ú½º¸¦ ¶ç¿ì´Â °Í¸¸À¸·Î´Â ºÎÁ·ÇÏ´Ù. ¿Ö³ÄÇÏ¸é ¶Ç È­¸éÀÌ °¡¸¸È÷ ÀÖÀ» Å״ϱî. ¡®µ¥ÀÌÅ͸¦ ó¸® ÁßÀÔ´Ï´Ù¡¯ °è¼Ó 3ÃÊ °£°ÝÀ¸·Î ¹ø°¥¾Æ ¸Þ½ÃÁö¸¦ º¸¿©ÁÖ¶ó. ³²Àº ½Ã°£À» º¸¿©Áְųª ³²Àº ó¸® °Ç¼ö¸¦ º¸¿©ÁØ´Ù¸é ´õ¿í È¿°úÀûÀÌ´Ù. ¹°·Ð Áõ±Çȸ»çÀÇ ÁÖ¹® µî·Ï °°Àº ¿Â¶óÀÎ ÇÁ·Î±×·¥À» ÀÌ·¸°Ô Çؼ­´Â ¾È µÈ´Ù. ÇÏÁö¸¸ ÀÔÂû ¾È³»¼­³ª ¿ä±¸»çÇ×ÀÌ ¸í½ÃµÇ¾î Àý´ëÀûÀÎ ±âÁØÀ» »ï°Å³ª »ç¿ëÀÚ°¡ ÇÁ·Î±×·¥ÀÌ ´À¸®´Ù°í ºÒÆòÇÑ´Ù¸é ÀÌ·¸°Ô Çغ¸¶ó. ½Å±âÇÏ°Ôµµ »ç¿ëÀÚ´Â ¾Æ¹« ¸» ¾ÈÇÑ´Ù.
 
7. Æз¯·² ¿É¼ÇÀ» ÁÖ¾ú´Âµ¥ ¼Óµµ°¡ ³ªÁö ¾Ê¾Æ¿ä
À̷лóÀ¸·Î´Â ¾Ë°í ÀÖ¾úÁö¸¸ ¾ð¶æ »óȲÀÌ µÇ¸é ¶°¿À¸£Áö ¾Ê´Â ¶§°¡ ÀÖ´Ù. µ¥ÀÌÅÍ ÀÌÇàÀ» ÇÏ¿´À» ¶§ °æÇèÇÑ °ÍÀÌ´Ù. ¹é¾÷ ¼­¹ö¿¡¼­ ¸îÀÏ °£À» Å×½ºÆ®Çϸ鼭 ÇÏ·ç ÀÌ»ó °É¸®´ø ÇÁ·Î¼¼½º¸¦ 2½Ã°£ À̳»·Î ÁÙÀ̴µ¥ ¼º°øÀ» Çß´Ù. ½ÇÇ༭¹ö¿¡¼­ »õ·Î À¯Àú¸¦ ¸¸µé¾î ÇÁ·ÎÁ§Æ® ¿ÀÇ ¸î ÀÏÀü ÃÖÁ¾ ¸®Çã¼³À» ÇÏ°Ô µÇ¾ú´Ù. ±×·±µ¥ ÀÌ°Ô À¢ÀÏÀΰ¡. 2½Ã°£ÀÌ¸é ³¡³µ´ø ÇÁ·Î¼¼½º°¡ 5½Ã°£À» ³Ñ¾îµµ ³¡³ªÁö ¾Ê´Â °ÍÀ̾ú´Ù. ¸ð´ÏÅ͸µ Çغ¸´Ï Æз¯·² ¿É¼ÇÀÌ ¸ÔÈ÷Áö ¾ÊÀº °ÍÀ̾ú´Ù. ¡°½ÇÇà ¼­¹ö´Â CPUµµ ¹é¾÷ ¼­¹öº¸´Ù ¸¹Àºµ¥¡¦¡± ¹®Á¦´Â MAX_PARALLEL_SERVER °³¼ö°¡ ¹é¾÷ ¼­¹öº¸´Ù ÀÛ°Ô ÀâÇôÁ® ÀÖ¾ú´Ù. °ø±³·Ó°Ôµµ ½ÇÇà ¼­¹ö¿¡¼­ ´Ù¸¥ ÇÁ·Î¼¼¼­´Â ´Ù ÁߴܽÃÄ״µ¥ µ¥ÀÌÅÍ ¹é¾÷ ÇÁ·Î¼¼¼­°¡ ¼öÇàµÇ¸é¼­ 10°³ Á¤µµ¸¦ »ç¿ëÇÏ°í ÀÖ¾ú´ø °ÍÀÌ´Ù. Æз¯·² ¿É¼ÇÀº ¾Õ¿¡¼­ ¸»ÇÑ´ë·Î CPU °³¼ö¸¦ ÃÊ°úÇÏ¸é ±×¸® È¿·ÂÀÌ ¾ø´Ù. ¶ÇÇÑ ÃÑ ¼öÇàµÇ´Â Æз¯·² ¼­¹ö °³¼ö°¡ MAX_PARALLEL_SERVER °³¼ö¸¦ ÃÊ°úÇÑ´Ù¸é º´·Ä ¼­¹ö´Â ¼öÇàµÇÁö ¾Ê´Â´Ù. ¸¸¾à ÀÌ°ÍÀÌ ½ÇÁ¦ ÀÌÇà½Ã ÀϾ´Ù¸é ºÐ¸í ÇÊÀÚ´Â ÇØ°íµÇ¾úÀ» °ÍÀÌ´Ù. ¹®Á¦´Â ¿¹±âÄ¡ ¾ÊÀº °÷¿¡¼­ ƯÈ÷ ÀÚ½ÅÇÏ°í üũÇÏÁö ¾Ê´Â ºÎºÐ¿¡¼­ ÀϾ´Ù´Â »ç½ÇÀ» ±â¾ïÇϱ⠹ٶõ´Ù.
8. ¿¹Àü¿¡´Â »¡¸® ¼öÇàµÇ¾ú´Âµ¥ Áö±ÝÀº ¼Óµµ°¡ ¾È³ª¿ä
À妽ºÀÇ Ãß°¡³ª º¯°æ
ÇÁ·Î±×·¥ÀÌ ÀÛ¼ºµÈ ÀÌÈÄ ½Å±Ô·Î Ãß°¡µÇ°Å³ª Ä÷³ÀÌ º¯°æµÈ À妽º°¡ ¿µÇâÀ» ¹ÌÄ¡´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î WHERE °í°´ID LIKE ¡®200310% AND °í°´À¯Çü = ¡®±â¾÷¡¯À̶õ Á¶°Ç ÀýÀÌ ÀÖ´Ù¸é ÀÌ SQL¹®ÀÌ ÀÛ¼ºµÇ±â Àü¿¡ ¾ø¾ú´ø °í°´ À¯ÇüÀÌ Ã¹ Ä÷³À¸·Î ½ÃÀÛÇÏ´Â À妽º°¡ ½Å±Ô·Î Ãß°¡µÇ¾ú´Ù°í °¡Á¤ÇÏÀÚ. ÀÌ·± °æ¿ì ¡®=¡¯ Á¶°ÇÀÌ ¿ì¼±ÇÒ ¼ö ÀÖÀ¸¹Ç·Î °í°´ ID¸¦ Ä÷³À¸·Î ÇÑ À妽º¸¦ »ç¿ëÇÏ´Ù°¡ °í°´ À¯ÇüÀ¸·Î ½ÃÀÛÇÏ´Â À妽º¸¦ »ç¿ëÇϵµ·Ï ¹Ù²ð ¼ö ÀÖ´Ù.
±×·¯¹Ç·Î Àüü ÇÁ·ÎÁ§Æ®ÀÇ °üÁ¡¿¡¼­ º¼ ¶§ ÀÚ±â È¥ÀÚ¼­ ÀßÇÑ´Ù°í µÇ´Â °ÍÀÌ ¾Æ´Ï´Ù.
´Ù¸¥ ÆÀ°ú °øÀ¯Çؼ­ »ç¿ëÇÏ´Â Å×ÀÌºí¿¡ ´ëÇؼ­´Â ½ºÅ°¸¶ º¯µ¿ ³»¿ªÀ» ¹Ýµå½Ã °øÀ¯ÇØ¾ß ÇÑ´Ù.
µ¥ÀÌÅÍ °Ç¼ö Áõ°¡, ºÐÆ÷µµ º¯°æ
ÀÌ´Â °³¹ßȯ°æ¿¡¼­´Â ¸î °Ç ¾È µÇ´Â ½ÃÇè¿ë µ¥ÀÌÅ͸¦ »ç¿ëÇϸç, ÇÁ·ÎÁ§Æ® Ãʱ⿡´Â µ¥ÀÌÅÍ°¡ ¸¹ÀÌ ´©ÀûµÇÁö ¾Ê¾Æ ½Ã°£ÀÌ Áö³ª¸é Áö³¯¼ö·Ï ¼Óµµ°¡ Á¡Á¡ ÀúÇÏµÇ¾î ³ªÁß¿£ Çϵå¿þ¾î Áõ¼³À̶óµçÁö ´ë´ëÀûÀÎ ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×À» ÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÀÌ´Â Á¤¸»·Î ½É°¢ÇÑ ¹®Á¦´Ù.
ÀÌ´Â °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ µð½ºÅ© º¸°ü ÁÖ±â¶ó´Â °³³äÀÌ ¾øÀÌ °è¼Ó µ¥ÀÌÅ͸¦ ´©ÀûÇØ ³ª°¡´Â Çö½Ç°úµµ ¹«°üÇÏÁö ¾Ê´Ù. ¾÷¹« ¼³°è½Ã ½Ã°£ °³³ä°ú ¸¶°¨ °³³äÀÌ µµÀÔµÇÁö ¾Ê´Â´Ù¸é ÀÌ ¹®Á¦´Â ½±»ç¸® ÇØ°áµÇÁö ¾Ê´Â´Ù. Áï, Àå±â°£ º¸°üÇؼ­ »ç¿ëÇÒ µ¥ÀÌÅ͸¦ µû·Î ¾î¶»°Ô °ü¸®ÇÒ °ÍÀÎÁö Àü·«À» ¼ö¸³ÇØ¾ß ÇÑ´Ù. Åë°è Å×À̺íÀ» ¸¸µé°í ÀÏÁ¤ ±â°£ÀÌ Áö³­ »ó¼¼ Å×À̺íÀº µû·Î ¹é¾÷ Å×À̺í·Î ¿Å±ä´ÙµçÁö ÇÏ¿© ÇöÀç ¾÷¹«¸¦ ÁøÇàÇÏ°í ÀÖ´Â µ¥ÀÌÅÍ°¡ °ú°Å µ¥ÀÌÅÍ¿Í °°ÀÌ ¼¯¿© ÀÖ¾î ÇöÀç ¾÷¹«°¡ Áö¿¬µÇ´Â °ÍÀ» ¸·¾Æ¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î ¸ÅÃâ Å×À̺íÀ» µéÀÚ¸é ÃÖ±Ù 3³âÄ¡¸¸ º¸°üÇÏ°í 3³âÀÌ Áö³­ µ¥ÀÌÅÍ´Â ¹é¾÷ ¸ÅÃâ µ¥ÀÌÅÍ·Î ¿Å°Ü¶ó. ±×¸®°í Àå±â ºÐ¼®ÇÏ´Â µ¥ÀÌÅ͸¦ ºÐ¼®ÇÏ´Â ÇÁ·Î±×·¥Àº ½ÇÁ¦ ¸ÅÃâ Å×À̺í°ú ¹é¾÷ ¸ÅÃâ Å×À̺íÀ» ¹­¾î Á¶È¸Çϵµ·Ï Çضó. ºÐ¼®Àº ¾î´À Á¤µµ ½Ã°£ÀÌ °É·Áµµ Å©°Ô ¹®Á¦°¡ ¾È µÇÁö¸¸ ½ÇÁ¦ À̹ø ´Þ ¸ÅÃâÀ» ó¸®Çϱâ À§ÇÑ Å×À̺íÀº ÈξÀ °¡º­¿öÁö±â ¶§¹®¿¡ »ó´çÇÑ ¼º´É °³¼±È¿°ú°¡ ³ªÅ¸³­´Ù.
 
9. ÆÄƼ¼Ç Å×À̺íÀÇ »ç¿ë
°Ç¼ö°¡ ¸¹Àº Å×À̺íÀº ÆÄƼ¼Ç Å×À̺íÀ» °í·ÁÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÆÄƼ¼Ç Å×À̺íÀº ¿À¶óŬ 8 ¹öÀüºÎÅÍ Áö¿øµÈ´Ù. ÇÊÀÚ´Â ¿À¶óŬÀÌ ÆÄƼ¼Ç Å×ÀÌºí ±â´ÉÀ¸·Î ÀÎÇÏ¿© ¸í½Ç»óºÎÇÏ°Ô ´ë¿ë·® µ¥ÀÌÅͺ£À̽ºÀÇ ¹ßÆÇÀ» ÀÌ·èÇÏ¿´´Ù°í º»´Ù. ÆÄƼ¼Ç Å×À̺íÀº Å×À̺íÀ» ÆÄƼ¼ÇÀ̶õ °³³äÀ¸·Î ÂÉ°³¾î ³õ¾Æ WHERE Á¶°ÇÀýÀ» Çؼ®ÇÏ¿© ÇØ´ç Á¶°Ç¿¡ ¸Â´Â ÆÄƼ¼Ç¸¸ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï ÇÑ °ÍÀÌ´Ù. µû¶ó¼­ 8¹ø¿¡¼­ ±â¼úÇÑ °Íó·³ ±»ÀÌ Å×À̺íÀ» ³ª´©Áö ¾Ê¾Æµµ ÆÄƼ¼Ç ±â´ÉÀ» ÀÌ¿ëÇÑ´Ù¸é È¿°úÀûÀ¸·Î ÃֽŠÁ¤º¸¿¡ ´ëÇÑ °ü¸®°¡ °¡´ÉÇÏ´Ù.
[±×¸² 3] ÆÄƼ¼ÇÅ×À̺íÀÇ »ç¿ë
ÆÄƼ¼Ç Å×À̺íÀ» »ç¿ëÇÔÀ¸·Î½á ¾ò´Â Å« ÀÌÁ¡ Áß Çϳª´Â ÀÛ¾÷À» º´·Äó¸® ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ƯÈ÷ ÀÌÇàÀ̳ª Å« ¹èÄ¡ ÀÛ¾÷½Ã ÆÄƼ¼Ç º°·Î ÇÁ·Î¼¼½º¸¦ µ¿½Ã¿¡ ¼öÇàÇÏ¿© È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
ÆÄƼ¼Ç Å×À̺íÀ» ¸¸µå´Â ¹æ¹ýÀº ADMINISTRATOR¡¯S GUIDE¸¦ Âü°íÇϱ⠹ٶõ´Ù. ƯÈ÷ EXCHANGE PARATITION À̶õ ±â´ÉÀº Å« µ¥ÀÌÅ͸¦ Áö´Ñ Å×À̺íÀ» °ü¸®ÇÏ´Â DBA¶ó¸é ´«¿©°Ü º¸±æ ¹Ù¶õ´Ù.
 
10. ÀÌ·ÐÀº ¾Ë°Ú´Âµ¥ ¸·»ó ´ÚÄ¡¸é ¾î¶»°Ô ÇØ°áÇØ¾ß ÇÒ±î¿ä
Æ©´×¿¡ °ü½ÉÀÌ ÀÖ¾ú´ø µ¶ÀÚµéÀº ¾Æ¸¶ ÇÊÀÚ°¡ ±â¼úÇÑ ³»¿ëÀ» ´Ù¸¥ Ã¥¿¡¼­µµ ¸¹ÀÌ ºÁ¿ÔÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ½ÇÁ¦ÀûÀ¸·Î OCP¿¡ Æ©´× °ú¸ñÀÌ ÀÖÁö¸¸ Á¦´ë·Î Æ©´×À» ÇÒ ÁÙ ¸ð¸£´Â DBA°¡ ¸¹´Ù´Â °ÍÀº ½ÇÁ¦ ´ÚÃļ­ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» Å°¿ì´Â °ÍÀÌ ½±Áö ¾Ê´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
¾ÆÁ÷ ½ÇÀüÀ» ÅëÇØ Æ©´× ¸¶Àε带 ½×¾Æ¾ß ÇÑ´Ù. ¾Õ¿¡¼­ ÇÊÀÚ°¡ ³ª¿­ÇÑ ³»¿ëÀ» ÀÚ¼¼È÷ »ìÆ캸¶ó. ±×·³ °øÅëÀûÀÎ »çÇ×ÀÌ µµÃâµÉ °ÍÀÌ´Ù. ÇÊÀÚ´Â Æ©´× ºñ¹ýÀ̶ó¸é µÎ °¡ÁöÀÇ Ãø¸é¿¡¼­ °è¼ÓÀûÀÎ ½Ã¹Ä·¹À̼ÇÀ» ÇØ º»´Ù´Â °ÍÀÌ´Ù.

(1) Àû°Ô Àаųª Àû°Ô ½ÇÇàµÇµµ·Ï ³ë·Â
     => ¾È Àо µÉ ºÎºÐÀÌ ÀÐÇôÁö°í ÀÖÁö´Â ¾ÊÀº°¡?
     => °á°ú¿Í »ó°ü¾ø´Â µ¥ÀÌÅÍ°¡ Á¶Àεǰí ÀÖÁö´Â ¾ÊÀº°¡?
     => Çѹø ÀÐÀº °ÍÀ» ¶Ç ÀÐÀº °ÍÀÌ ¾ø´Â°¡?
     => LOOP¹® ¾È¿¡¼­ÀÇ SQL¹® ½ÇÇà Ƚ¼ö Á¦°Å
     => ¸ÖƼ ºí·Ï ¾×¼¼½º(Ç® ½ºÄµ)°ú À妽ºÀÇ ºÎºÐ ¾×¼¼½ºÀÇ ´ëºñ ºÐ¼®
     => Áßø ·çÇÁ ¹æ½Ä°ú Çؽà Á¶ÀÎ Áß ¾î´À °ÍÀÌ ³ªÀº°¡?

(2) Æз¯·²(º´·Ä) ó¸® ±â¹ýÀ» ¹Ýµå½Ã È°¿ë
     => Æз¯·² ¿É¼ÇÀÇ ÀûÀýÇÑ È°¿ë
     => ÇÁ·Î¼¼½º ¼öÇà ´ÜÀ§¸¦ ÃÖ¼ÒÈ­ÇÏ¿© º´·Ä 󸮰¡ °¡´ÉÅä·Ï Á¶Á¤
     => THREAD ±â¹ýÀ» È°¿ëÇÑ º´·Ä ÇÁ·Î±×·¡¹Ö ±â¹ý Çâ»ó
     => ÀÛ¾÷ ½ºÄÉÁì ¼ö¸³À» ÅëÇÏ¿© ´©¼ö ½Ã°£À» ¹æÁö

Áï, ÀÌ·ÐÀ» °í¹ÎÇÏÁö ¸»°í µÎ °¡Áö ¿øÄ¢¿¡ ÀÇ°ÅÇÏ¿© µ¥ÀÌÅÍÀÇ ºÐÆ÷µµ¸¦ ÆľÇÇÏ°í Ç÷£À» ÀÛ¼ºÇϸ鼭 ¾î¶² °æ¿ìÀÇ ¼ö°¡ µ¥ÀÌÅ͸¦ Àû°Ô ÀÐÈ÷´Â°¡? ¾î¶² °æ¿ìÀÇ ¼ö°¡ µ¥ÀÌÅ͸¦ ÇѲ¨¹ø¿¡ ó¸®ÇÒ ¼ö Àִ°¡? ¾î¶² °æ¿ìÀÇ ¼ö°¡ ³»ºÎÀûÀÎ ½ÇÇà Ƚ¼ö¸¦ ÁÙÀ̴°¡¸¦ °í¹ÎÇØ º¸±æ ¹Ù¶õ´Ù.
±×¸®°í ¸¹Àº µ¥ÀÌÅÍ°¡ ÀÖÀ» °æ¿ì¿¡´Â µÇµµ·Ï º´·Ä ÇÁ·Î¼¼¼­(PARALLEL SERVER)¸¦ È°¿ëÇϵç ÇÁ·Î±×·¥À» º´·Ä·Î ¼öÇàÇÏµç º´·Ä ó¸® ±â¹ýÀ» ÀÍÇô¾ß ÇÑ´Ù.
¼º´É ÀúÇÏ ¿äÀÎÀ» ã¾Æ º¸ÀÚ
´ë·«ÀÇ 10°¡Áö À¯ÇüÀ» °¡Áö°í °³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î ¿À·ù³ª ÀÚÁÖ µé¾î¿Ô´ø Áú¹®À» Áß½ÉÀ¸·Î ¿©·¯ºÐ°ú °°ÀÌ °í¹ÎÇØ º¸¾Ò´Ù. °á·ÐÀûÀ¸·Î SQL Æ©´×Àº ¿Â¶óÀÎ ÇÁ·Î±×·¥¿¡¼­´Â µÇµµ·Ï Àû°Ô ÀÐÇôÁö°í Á¶ÀεǴ Ƚ¼ö¸¦ ÁÙÀ̵µ·Ï ³ë·ÂÇϸç, ¹èÄ¡¿¡¼­´Â µÇµµ·Ï ¸ÖƼºí·°À¸·Î ó¸®ÇÏ°í º´·Ä·Î ó¸®ÇØ ÁÖ´Â ³ë·ÂÀ» ÇØÁÖ´Â °ÍÀÌ¶ó º¸¸é µÈ´Ù. ¡°Àû°Ô ÀÐÀÚ, Àû°Ô Á¶ÀÎÇÏÀÚ, ¾µµ¥¾ø´Â ºÎºÐ ÀÐÁö ¸»ÀÚ, ¸ÖƼºí·° È°¿ëÇÏÀÚ, º´·Äó¸®ÇÏÀÚ¡± ¸Ó¸®¿¡ »õ°Ü¾ß ÇÑ´Ù.
óÀ½¿¡´Â ÀÌ·± ¹æ¹ýÀ¸·Î ¾×¼¼½º ¹æ½ÄÀ» ¶°¿Ã¸®°í ÇϳªÇϳª ÀÚ½ÅÀÌ DB ¿£ÁøÀÌ µÇ¾î ¾î¶² °ÍÀÌ È¿À²ÀûÀΰ¡¸¦ Ç÷£À» ÀÛ¼ºÇϸ鼭 ¿¬½ÀÇØ¾ß ÇÑ´Ù. ¸¶Áö¸· ȸ(5ȸ)¿¡ Á¾ÇÕ ÆíÀ¸·Î ¿À´Ã ±â¼úÇÑ ³»¿ë¿¡ ´ëÇØ ½ÇÁ¦·Î ¸¹Àº µ¥ÀÌÅ͸¦ ¹ß»ý½ÃÄÑ ½Ç½ÀÇØ º¼ °ÍÀÌ´Ù. ´ÙÀ½ ½Ã°£¿¡´Â ¼º´É ºä¸¦ ÅëÇÏ¿© ¼º´ÉÀúÇÏ ¿äÀÎÀ» ã´Â ¿¬½ÀÀ» Çغ¸±â·Î ÇÏÀÚ.


¿ÉƼ¸¶ÀÌÀú È°¿ë ¿¹Á¦

ÀÌÁ¦ºÎÅÍ ¿©·¯ºÐÀÌ ¿ÉƼ¸¶ÀÌÀú¶ó°í »ý°¢ÇÏ°í ´ÙÀ½ÀÇ È°¿ë ¿¹Á¦¸¦ ÆÇ´ÜÇØ º¸ÀÚ. ¸ðµç ¹®Á¦¸¦ ÀÛ°Ô Àаí Á¶ÀΠȽ¼ö¸¦ ÁÙÀ̸ç, ¸ÖƼºí·° READ, º´·Ä ó¸®ÀÇ °üÁ¡¿¡¼­ ¾î´À °ÍÀÌ À¯¸®ÇÑÁö¸¦ ÆÇ´ÜÇÏ°í Á¢±ÙÇØ¾ß ÇÑ´Ù.

È°¿ë 1 : ÀÐÇôÁö´Â Ƚ¼ö, ¹Ýº¹ÀûÀÎ READ ¾ø¾Ö±â
¿¹¸¦ µé¾î °°Àº °Ç¼öÀÇ ºÎ¼­¿Í »ç¿ø Å×À̺íÀÌ ÀÖ´Ù. ºÎ¼­ Å×À̺íÀº À妽º°¡ ÀÖ°í »ç¿ø Å×À̺íÀº À妽º°¡ ¾ø´Ù. À̸¦ Áßø ·çÇÁ ¹æ½ÄÀ¸·Î Á¶ÀÎÇÒ ¶§ ¾î´À Å×À̺íºÎÅÍ Àд °ÍÀÌ ºü¸£°Ú´Â°¡?
¡¡¡¡ SELECT »ç¿ø¸í, ºÎ¼­¸í FROM »ç¿ø, ºÎ¼­ WHERE »ç¿ø.ºÎ¼­ ÄÚµå = ºÎ¼­.ºÎ¼­ ÄÚµå
[Ç¥ 1]ÀÇ ¹Ú½º ¾È¿¡ ÀÖ´Â °ÍÀÌ ¸Å¹ø ¹Ýº¹ ½ÇÇàµÈ´Ù. ¾î´À °ÍÀÌ ºü¸£°Ú´Â°¡? ÇÑ ºÎ¼­ ´ç 1000°Ç µÇ´Â µ¥ÀÌÅ͸¦ ÀüºÎ ´Ù Àоî Á¶ÀÎÇÏ´Â °Íº¸´Ù´Â ´ç¿¬È÷ ÇѰǾ¿ Á¤È®ÇÏ°Ô Ã£¾Æ¿Ã ¼ö ÀÖ´Â 1¾ÈÀÌ ºü¸¦ °ÍÀÌ´Ù(¿Â¶óÀÎ). 1¾ÈÀ» °³¼±ÇÑ´Ù¸é Àüü-Àüü Å×À̺íÀÌ Á¶ÀεǹǷΠ¸ÖƼºí·° ¾×¼¼½º¸¦ ÇÏ´Â Ç® ½ºÄµÀ» È°¿ëÇÑ Çؽà Á¶ÀÎÀÌ ´õ È¿À²ÀûÀÏ °ÍÀÌ´Ù(¹èÄ¡).


[Ç¥1] ÀÎÅؽº »ç¿ëÀÇ ºñ±³ ¿¹
È°¿ë 2 : Á¶ÀΠȽ¼ö ÁÙÀ̱â
SELECT A.EMPNAME, SUM(B.SALARY) FROM EMP A, SALARY B
WHERE A.empno = B.empno AND b.date between ¡®20010101¡¯ AND ¡®20011231¡¯ GROUP BY A.EMPNAME
ÀÌ SQL¹®¿¡´Â ¹«½¼ ¹®Á¦°¡ Àִ°¡? ÀÌ´Â Á¶ÀΠȽ¼ö¸¦ ÁÙÀÏ ¼ö ÀÖ´Â ¿ä¼Ò°¡ Àִµ¥ °£°úÇÑ °æ¿ìÀÌ´Ù.
SELECT /*+ ORDERED */ A.EMP_NAME, B.SALARY
FROM (SELECT EMPNO, SUM(SALARY) FROM SALARY WHERE DATE BETWEEN ¡®20010101¡¯ AND ¡®20011131¡¯
GROUP BY ENPNO) B,
EMP A
WHERE A.empno = B.empno;
¸ÕÀú SUMÀ» ÇÑ ´ÙÀ½ ±× °á°ú¸¦ °¡Áö°í Á¶ÀÎÀÌ ÀϾ±â ¶§¹®¿¡ Á¶ÀΠȽ¼ö°¡ ¸¹ÀÌ ÁÙ¾îµç´Ù.

È°¿ë 3 : UPDATE¹®¿¡¼­ÀÇ Á¶ÀÎ
UPDATE¹®Àº µ¥ÀÌÅ͸¦ º¯°æÇϱ⠶§¹®¿¡ ¶ô(Lock)À» °É°í ÀÛ¾÷À» ÇÏ°Ô µÈ´Ù. ±×·¸±â ¶§¹®¿¡ UPDATE SQL¹®À» Àß ¸ø »ç¿ëÇÏ¸é ¿Ï·á°¡ µÉ ¶§±îÁö ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ¼öÇàµÇÁö ¸øÇÏ´Â °á°ú¸¦ ÃÊ·¡ÇÑ´Ù.
UPDATE TAB1 A SET COL2 = (SELECT COL2 FROM TAB2 WHERE COL1 = A.COL1)
WHERE COL1 IN (SELECT COL1 FROM TAB2)
ÀÌ¿Í °°ÀÌ Á¶ÀÎÀ» ÀÌ¿ëÇÑ UPDATE¹®Àº µÎ °¡ÁöÀÇ ÀζóÀÎ ºä(InLine-View)¸¦ °¡Áö´Â °æ¿ì°¡ ¸¹´Ù. ÀÌ·± °æ¿ì WHEREÀýÀº µ¥ÀÌÅÍÀÇ ºÐÆ÷µµ¿¡ µû¶ó À妽º¸¦ È°¿ëÇÑ Áßø ·çÇÁ ¹æ½ÄÀ¸·Î °¡µç ¾Æ´Ï¸é Çؽà Á¶ÀÎ ¹æ½ÄÀ¸·Î °æ¿ì¿¡ µû¶ó Á¶ÀýÇØ ÁÖ¾î¾ß ÇÏ°í, SETÀýÀÇ TAB2 Å×À̺íÀ» ÀÐÀ» ½Ã¿¡´Â ¹Ýµå½Ã À妽º¸¦ È°¿ëÇÑ Áßø ·çÇÁ ¹æ½ÄÀÇ Á¶ÀÎ ¹æ¹ýÀ» ÅÃÇØ ÁÖ¾î¾ß ÇÑ´Ù.
UPDATE¹®Àº WHEREÀý¿¡¼­ ÇØ´çÇÏ´Â ·Î¿ì(ROW)¸¦ °¡Áö°í ¿Í¼­ ÇÑ °Ç¸¶´Ù SETÀý ¾ÈÀÇ SQL¹®À» ¼öÇàÇϱ⠶§¹®ÀÌ´Ù. µû¶ó¼­ ¾ÕÀÇ °æ¿ì ¹Ýµå½Ã TAB2¿¡´Â COL1À» Á¦1 Ä÷³À¸·Î ÇÏ´Â À妽º°¡ ÀÖ¾î¾ß ÇÑ´Ù.

±× ¿Ü ÇÁ·Î±×·¥À» ´À¸®°Ô ÇÏ´Â ¿äÀÎ
  • °úµµÇÑ DECODE µîÀÇ ½Ã½ºÅÛ ÇÔ¼ö³ª À¯Àú°¡ Á¤ÀÇÇÑ ÇÔ¼ö¸¦ »ç¿ë
    DECODE(DECODE(DECODE¡¦¡¦¡¦¡¦¡¦¡¦) µîÀÇ ÇÔ¼ö¸¦ ¸¹Àº µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â SQL¹®¿¡ »ç¿ëÇϰųª À¯Àú°¡ FUNCTIONÀ» ÀÛ¼ºÇÏ¿© À̸¦ SQL¹®¿¡¼­ È£ÃâÇÑ °æ¿ì ÇÔ¼ö¿¡ ÀÖ´Â SQL¹®Àº ¹Ýµå½Ã Æ©´×µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

  • µ¥ÀÌÅÍ Á¸Àç À¯¹« È®ÀÎÀ» À§ÇØ Á¶°Ç¿¡ ÇØ´çÇÏ´Â °Ç¼ö¸¦ ¸ðµÎ ¼¼´Â ÇàÀ§
    SELECT COUNT(*) FROM TAB1 WHERE COL1 = ¡®Á¶°Ç¡¯
    => SELECT ¡®X¡¯ FROM TAB1 WHERE COL1 = ¡®Á¶°Ç¡¯ AND ROWNUM = 1 (ÇѰǸ¸ ¼¼´Â °ÍÀ¸·Î ¹Ù²Þ, EXISTS ¹®ÀåÀ» ½áµµ ¹«¹æ)

  • ºÒÇÊ¿äÇÑ I/O¸¦ ÁÙÀ̱â
    Å×½ºÆ® ´Ü°èÀÇ µð¹ö±×³ª ·Î±×´Â ½ÇÇà½Ã¿¡´Â ÇʼöÀûÀÎ °Í¸¸ ³²±æ °Í. ƯÈ÷ printf¹®

  • »ç¼ÒÇÑ ¿À·ù³ª ÀÓÀÇÀÇ ¿À·ù´Â ÀÏ´Ü °Ç³Ê¶Ù°í ´Ù½Ã ó¸®ÇÒ °Í
    ¹«½¼ Á¶°Ç¸¸ ¾È ¸ÂÀ¸¸é ¹«Á¶°Ç ÇÁ·Î±×·¥À» ÁߴܽÃÄÑ ·Ñ¹é½ÃÅ°´Â °æ¿ì°¡ ÀÖ´Ù. ÇØ´ç ºÎ¸ð Å×ÀÌºí¿¡¼­ µ¥ÀÌÅ͸¦ ¸ø ãÀº °æ¿ì, INSERT½Ã µ¥ÀÌÅÍ°¡ Áߺ¹µÈ °æ¿ì µî ¾î¶² ƯÀÌÇÑ °æ¿ì·Î ¹ß»ýµÇ´Â ¿À·ù´Â µû·Î ·Î±ë ÆÄÀÏ¿¡ ½×¾Æ ºÐ¼®ÇÏ°Ô ÇÏ°í ¿¬¼ÓÀûÀ¸·Î ÀÌ·± ¿À·ù°¡ ³ª¿ÀÁö ¾Ê´Â´Ù¸é ÇÁ·Î±×·¥Àº ÀÏ´Ü Á¤»ó ¿Ï·á½ÃÄÑ¾ß ÁÁ´Ù.
    1000¸¸°Ç ÀÌ»óÀ» ó¸®ÇÏ´Â ÇÁ·Î±×·¥¿¡¼­ ¸·ÆÇ¿¡ ¾à°£ À߸øµÈ µ¥ÀÌÅÍ°¡ ÀÖ¾î 3°Ç Á¤µµ°¡ Áߺ¹µÅ¼­ Àüü µ¥ÀÌÅ͸¦ ·Ñ¹é ó¸®ÇÑ´Ù¸é ¾öû³­ ½Ã°£ÀûÀÎ ¼Õ½ÇÀÌ´Ù. ÀÏ´Ü 3°ÇÀ» ·Î±ëÇÏ°í ÇÁ·Î±×·¥À» Á¤»ó Á¾·á½ÃŲ ´ÙÀ½ ·Î±ë ÆÄÀÏÀ» º¸°í º°µµÃ³¸®¸¦ ÇÏ¸é µÈ´Ù. ÇÏÁö¸¸ Áߺ¹ÀÌ °è¼ÓÀûÀ¸·Î, ¿¹¸¦ µé¾î ¿¬¼ÓÀûÀ¸·Î 1000°Ç ÀÌ»ó Áߺ¹ÀÌ ÀϾ´Ù¸é ¹«¾ùÀΰ¡ À߸ø 󸮵ǰí ÀÖ´Â °æ¿ìÀ̹ǷΠÀÌ·± °æ¿ì´Â ÇÁ·Î±×·¥À» ÁߴܽÃÅ°¸é µÈ´Ù.

  • PRO*C¸¦ »ç¿ëÇÏ´Â °æ¿ì ARRAY ÇÁ·Î¼¼½Ì ÇÁ·Î±×·¡¹ÖÀ» ÇØ¾ß ÇÑ´Ù. I/O Ƚ¼ö¸¦ ÁÙ¿©Áֱ⠶§¹®¿¡ ÇѰǾ¿ ó¸®ÇÏ´Â °Í º¸´Ù ¸î ¹èÀÇ ½Ã°£ÀÌ ´ÜÃàµÈ´Ù. 2½Ã°£ÀÇ ÀÛ¾÷½Ã°£ÀÌ 10ºÐ À̳»·Î ÁÙ¾îµç´Ù. ¹Ýµå½Ã Ã¥À» º¸°í ÀÌ ºÎºÐÀº µû·Î ÀÍÈ÷±â¸¦ ¹Ù¶õ´Ù.
Âü°í : ÈùÆ®¿¡ ´ëÇÑ È°¿ë
ÀÚ½ÅÀÌ ¶æÇÏ´Â ´ë·Î ¿ÉƼ¸¶ÀÌÀú´Â ¿òÁ÷¿©ÁÖÁö ¾Ê´Â´Ù. ÀÌ·± ¶§¿¡´Â ÀûÀýÇÑ ÈùÆ®¸¦ ±¸»çÇÑ ÈÄ Ç÷£À» ÀÛ¼ºÇÏ¿© ÀÚ½ÅÀÌ ¿øÇÏ´Â ´ë·Î SQL ±¸¹®ÀÌ Çؼ®µÇ¾ú´ÂÁö¸¦ °ËÁõÇØ¾ß ÇÑ´Ù. ´ÙÀ½¿¡ ÀÚÁÖ ¾²ÀÌ´Â ÈùÆ®¸¦ ¸ð¾Æ ³õ¾Ò´Ù. ²À ¾Ë¾Æ¾ß ÇÒ ÈùÆ®´Â ±½°Ô Ç¥½ÃÇÏ¿´À¸´Ï ²À ¾Ë¾ÆµÎ±æ ¹Ù¶õ´Ù.
  • Optimizer ¸ðµå¿¡ ´ëÇÑ ÈùÆ®
    -. RULE
    ·ê ±â¹Ý ¿ÉƼ¸¶ÀÌÀú
    -. CHOOSE
    ÁÖ·Î ºñ¿ë ±â¹ÝÀ» À¯µµÇÏ°íÀÚ ÇÒ ¶§ »ç¿ë
    -. ALL_ROWS
    Àüü ¹üÀ§·Î ó¸®
    -. FIRST_ROWS
    ºÎºÐ ¹üÀ§·Î ó¸®

  • ACCESS PATH¿¡ ´ëÇÑ ÈùÆ®
    -. FULL : /*+ FULL (Å×À̺í¸í) */
    -. ROWID : /*+ ROWID (Å×À̺í¸í) */
    -. CLUSTER : /*+ CLUSTER (Å×À̺í¸í) */ CLUSTER¿¡ »ç¿ë
    -. HASH : /*+ HASH (Å×À̺í¸í) */ CLUSTER¿¡ »ç¿ë
    -. HASH_AJ : /*+ HASH_AJ */ Not IN½Ã »ç¿ë
    -. HASH_SJ : /*+ HASH_SJ (Å×À̺í¸í) */ EXISTS
    -. INDEX : /*INDEX (Å×À̺í¸í, À妽º¸í1, À妽º¸í2¡¦) */
    -. INDEX_ASC : /*+INDEX_ASC (Å×À̺í¸í, À妽º¸í) */
    -. INDEX_DESC : /*+INDEX_DESC (Å×À̺í¸í, À妽º¸í) */
    -. INDEX_FFS : /*+INDEX_FFS (Å×À̺í¸í, À妽º¸í) */
    -. MERGE_AJ : /*+MERGE_AJ */ NOT IN½Ã »ç¿ë
    -. MERGE_SJ : /*+MERGE_SJ */ EXISTS½Ã »ç¿ë
    -. AND_EQUAL : /*+AND_EQUAL (Å×À̺í¸í, À妽º¸í, À妽º¸í¡¦.) */
    -. USE_CONCAT : /*+USE_CONCAT */ ORÁ¶°ÇÀ» UNION ALL·Î

  • JOIN ¼ø¼­¿¡ ´ëÇÑ ÈùÆ®
    -. ORDERED : /*+ORDERED */ FROM ÀýÀÇ ¼ø¼­´ë·Î Å×À̺íÀ» ÀÐÀ½. ¹Ýµå½Ã WHEREÀýÀ» ¸ÂÃçÁÖ¾î¾ß ÇÔ

  • JOIN ¿¬»ê¿¡ ´ëÇÑ ÈùÆ®
    -. USE_NL : /*+USE_NL(Å×À̺í¸í,Å×À̺í¸í,..) */
    Áßø ·çÇÁ Á¶ÀÎ ¹æ½Ä
    -. USE_MERGE : /*+USE_MERGE(Å×À̺í¸í,Å×À̺í¸í,..) */
    Á¤·Ä º´ÇÕ Á¶ÀÎ ¹æ½Ä
    -. USE_HASH : /*+USE_HASH(Å×À̺í¸í,Å×À̺í¸í,..) */
    Çؽà Á¶ÀÎ ¹æ½Ä
    -. DRIVING_SITE : /*+DRIVING_SITE (Å×À̺í¸í,Å×À̺í¸í,..) */
    ¿ø°ÝÁö DB¿¡ ÀÖ´Â Å×À̺í°ú Á¶ÀνÃ

  • PARALLEL¿¡ ´ëÇÑ ÈùÆ®
    -. PARALLEL : /*+PARALLEL (Å×À̺í¸í,¼ýÀÚ1,¼ýÀÚ2) */
    -. NOPARALLEL : /*+NOPARALLEL (Å×À̺í¸í) */
    -. APPEND : INSERT /*+APPEND [PARALLEL..] */
    ºü¸¥ INSERT½Ã »ç¿ë, Áߴܽà À妽º ±úÁü
    -. NOAPPEND : INSERT /*+NOAPPEND */
    -. PARALLEL_INDEX : /*+PARALLEL_INDEX (Å×À̺í,
    -. NOPARALLEL_INDEX : /*+NOPARALLEL_INDEX (Å×À̺í, À妽º)*/

  • ±âŸ
    -. CACHE : /*+CACHE (Å×À̺í¸í) */
    -. NOCACHE : /*+NOCACHE (Å×À̺í¸í) */
    -. MERGE : /*+MERGE (Å×À̺í¸í) */
    -. NO_MERGE : /*+NO_MERGE (Å×À̺í¸í) */
    -. PUSH_JOIN_PRED : /*+PUSH_JOIN_PRED (Å×À̺í¸í) */
    (PUSH_JOIN_PREDICATE ÆĶó¹ÌÅÍ FALSE ¼³Á¤)
    -. NO_PUSH_JOIN_PRED : /*+NO_PUSH_JOIN_PRED (Å×À̺í¸í) */
    (PUSH_JOIN_PREDICATE ÆĶó¹ÌÅÍ TRUE ¼³Á¤)
    -. PUSH_SUBQ : /*+PUSH_SUBQ */


¸ñ·Ï

ºÐ·ù ¼±ÅÃ
94 ÀÏ¹Ý ¿À¶óŬ Áø¼öº¯È¯ ÆÐÅ°Áö ¼Ò½º ( 2 Áø¼ö ~ 36 Áø¼ö ) È£¼® 08-02-27 4891
93 ÀÏ¹Ý ¿À¶óŬ ¾Ïȣȭ ±¸Çö È£¼® 08-02-20 5665
92 ÀÏ¹Ý sqlplus¿¡¼­ º¯¼ö »ç¿ëÇÏ´Â ¹æ¹ý È£¼® 07-09-14 6459
91 ÀÏ¹Ý ¿À¶óŬ 10gÀÇ Flashback ±â¼ú [recycle ±â´É] È£¼® 07-08-10 5679
90 ÀÏ¹Ý ENTERPRISE EDITION µ¥ÀÌÅͺ£À̽º¸¦ STANDARD EDITIONÀ¸·Î º¯°æÇÏ´Â ¹ý È£¼® 07-07-25 4764
89 ÀÏ¹Ý ¿À¶óŬ Å×À̺í ÆÄƼ¼Ç »ç¿ëÇϱâ È£¼® 07-07-25 5443
88 ÀÏ¹Ý ¼³Ä¡½Ç¼ö·Î ÀÎÇÑ ¿À¶óŬ À缳ġ °ü·Ã È£¼® 07-07-24 4293
87 ÀÏ¹Ý ¿À¶óŬ ÆÄƼ¼Ç Å×À̺í (Partitioned Table) È£¼® 07-07-10 9288
86 ÀÏ¹Ý ¿À¶óŬ Å×À̺í ÆÄƼ¼Å´× È£¼® 07-07-10 6166
85 ÀÏ¹Ý µ¿Àû SQL(Dynamic SQL)ÀÇ »ç¿ë¹æ¹ý È£¼® 07-06-28 5863
84 ÀÏ¹Ý ¿À¶óŬ 10G Åäµå¿¡¼­ DEBUG ±â´É»ç¿ëÇϱâ È£¼® 07-06-25 5097
ÀÏ¹Ý °³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î Æ©´× À̽´ 10°¡Áö À¯Çü ºÐ¼® È£¼® 07-06-22 5020
82 ÀÏ¹Ý ¿À¶óŬ 8i ORA-00604 ,ORA-04031 ¿¡·¯ ó¸® È£¼® 07-06-12 6232
81 ÀÏ¹Ý ¿À¶óŬ 8i DB Àç½ÃÀÛ È£¼® 07-06-12 4102
80 ÀÏ¹Ý mysql DB ¹× »ç¿ëÀÚ »ý¼º (1) È£¼® 07-05-18 4078
óÀ½ÀÌÀü  [1] [2] [3] 4 [5] [6] [7] [8] [9] [10]  ´ÙÀ½¸Ç³¡

 
Copyright © zenos.pe.kr. All rights reserved.