hint »ç¿ë¹æ¹ý 3 Tip
- 2005/01/17 14:30
- http://blog.moneta.co.kr/pasfume/233651/175792
http://home.ditco.com/~angel/Basic/EXT07/ext07.html
Hints (Ãâó-Oracle8.0 Tuning Guide)
* Á¤¸®»óÀÇ ¿À·ù°¡ ÀÖÀ»¼ö ÀÖÀ¸¹Ç·Î ¿ø¼ ÂüÁ¶¹Ù¶÷.
A. initialization parameterÁß OPTIMIZER_MODE ÁöÁ¤°¡´É °ª
1.ALL_ROWS Goal : Best Throughput ¿ëµµ : Àüü RESOURCE ¼Òºñ¸¦ ÃÖ¼ÒÈ ½ÃÅ°±â À§ÇÑ ÈùÆ®. Cost-Based Á¢±Ù¹æ½Ä.
¿¹ : SELECT /*+ALL_ROWS */ EMPNO,ENAME FROM EMP WHERE EMPNO = 7655;
2.FIRST_ROWS Goal : Best Response Time ¿ëµµ : Á¶°Ç¿¡ ¸Â´Â ù¹ø° row¸¦ ¸®ÅÏÇϱâ À§ÇÑ Resource ¼Òºñ¸¦ ÃÖ¼ÒÈ ½ÃÅ°±âÀ§ÇÑ ÈùÆ®. Cost-Based Á¢±Ù¹æ½Ä. Ư¡ : - Index Scan ÀÌ °¡´ÉÇÏ´Ù¸é Optimizer°¡ Full Table Scan ´ë½Å Index ScanÀ» ¼±ÅÃÇÑ´Ù. - Index Scan ÀÌ °¡´ÉÇÏ´Ù¸é Optimizer°¡ Sort-Merge º¸´Ù Nested Loop À» ¼±ÅÃÇÑ´Ù. - Order ByÀý¿¡ÀÇÇØ Index Scan ÀÌ °¡´ÉÇÏ´Ù¸é, Sort°úÁ¤À» ÇÇÇϱâÀ§ÇØ Index ScanÀ» ¼±ÅÃÇÑ´Ù. - Delete/Update Block ¿¡¼´Â ¹«½ÃµÈ´Ù. - ´ÙÀ½À» Æ÷ÇÔÇÑ Select ¹®¿¡¼µµ Á¦¿ÜµÈ´Ù. ÁýÇÕ¿¬»êÀÚ (Union,Intersect,Minus,Union All) Group By For UpDate Group ÇÔ¼ö Distinct
¿¹ : SELECT /*+FIRST_ROWS */ EMPNO,ENAME FROM EMP WHERE EMPNO = 7655;
3.CHOOSE Goal : AcessµÇ´Â Å×ÀÌºí¿¡ Åë°èÄ¡ Á¸Àç¿©ºÎ¿¡ µû¶ó Optimizer·Î ÇÏ¿©±Ý Rule-Based Approach¿Í Cost-Based Approach Áß Çϳª¸¦ ¼±ÅÃÇÒ¼ö ÀÖ°Ô ÇÑ´Ù. ¿ëµµ : Data Dictionary°¡ ÇØ´çÅ×ÀÌºí¿¡ ´ëÇØ Åë°èÁ¤º¸¸¦ °¡Áö°í ÀÖ´Ù¸é Optimizer´Â Cost-Based Approach¸¦ ¼±ÅÃÇÏ°í, ±×·¸Áö ¾Ê´Ù¸é Rule-Based Approach¸¦ ¼±ÅÃÇÑ´Ù.
¿¹ : SELECT /*+CHOOSE */ EMPNO,ENAME FROM EMP WHERE EMPNO = 7655;
4.RULE ¿ëµµ : Rule-Based ÃÖÀûȸ¦ »ç¿ëÇϱâÀ§ÇØ.
¿¹ : SELECT /*+RULE */ EMPNO,ENAME FROM EMP WHERE EMPNO = 7655;
B. Access Methods ·Î½áÀÇ Hints
1.FULL ¿ëµµ : ÇØ´çÅ×À̺íÀÇ Full Table ScanÀ» À¯µµ.
¿¹ : SELECT /*+FULL(EMP) */ EMPNO,ENAME FROM EMP WHERE EMPNO = 7655; * Å×À̺í Alias °¡ Àִ°æ¿ì´Â Alias»ç¿ë. Schema NameÀº »ç¿ë¾ÈÇÔ(From ¿¡ SCOTT.EMP ¶ó°í ±â¼úÇصµ hint¿¡´Â EMP»ç¿ë).
2.ROWID ¿ëµµ : ÁöÁ¤µÈ Å×À̺íÀÇ ROWID¸¦ ÀÌ¿ëÇÑ Scan À¯µµ
3.CLUSTER ¿ëµµ : ÁöÁ¤µÈ Å×À̺íAccess¿¡ Cluster Scan À¯µµ. ClusterµÈ Objects¿¡¸¸ Àû¿ë°¡´É.
¿¹ : SELECT /*+CLUSTER(EMP) */ ENAME,DEPTNO FROM EMP,DEPT WHERE DEPTNO = 10 AND EMP.DEPTNO = DEPT.DEPTNO;
4.HASH ¿ëµµ : ÁöÁ¤µÈ Å×À̺íAccess¿¡ HASH Scan À¯µµ. /*+HASH(table) */
5.HASH_AJ ¿ëµµ : NOT IN SubQuery ¸¦ HASH anti-joinÀ¸·Î º¯Çü /*+HASH_AJ */
6.HASH_SJ ¿ëµµ : correlated Exists SubQuery ¸¦ HASH semi-joinÀ¸·Î º¯Çü /*+HASH_SJ */
7.INDEX ¿ëµµ : ÁöÁ¤µÈ Å×À̺íAccess¿¡ Index Scan À¯µµ. * ÇϳªÀÇ index¸¸ ÁöÁ¤µÇ¸é optimizer´Â ÇØ´çindex¸¦ ÀÌ¿ë. * ¿©·¯°³ÀÇ À妽º°¡ ÁöÁ¤µÇ¸é optimizer°¡ °¢ indexÀÇ scan½Ã cost¸¦ ºÐ¼® ÇÑ ÈÄ ÃÖ¼Òºñ¿ëÀÌ µå´Â index»ç¿ë. °æ¿ì¿¡ µû¶ó optimizer´Â ¿©·¯ index¸¦ »ç¿ëÇÑ ÈÄ °á°ú¸¦ mergeÇÏ´Â acees¹æ½Äµµ ¼±ÅÃ. * index°¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é optimizer´Â Å×À̺íÀÇ ÀÌ¿ë°¡´ÉÇÑ ¸ðµç index¿¡ ´ëÇØ scan cost¸¦ °í·ÁÈÄ ÃÖÀúºñ¿ëÀÌ µå´Â index scanÀ» ¼±ÅÃÇÑ´Ù. ¿¹ : SELECT /*+INDEX(EMP EMPNO_INDEX) */ EMPNO,ENAME FROM EMP WHERE DEPTNO=10
8.INDEX_ASC ¿ëµµ : INDEX HINT¿Í µ¿ÀÏ ´Ü,ASCENDING À¸·Î SCANÇÔÀ» È®½ÇÈ÷ ÇϱâÀ§ÇÔ.
9.INDEX_COMBINE ¿ëµµ : INDEX¸íÀÌ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é OPTIMIZER´Â ÇØ´ç Å×À̺íÀÇ best cost ·Î ¼±ÅÃµÈ Boolean combination index ¸¦ »ç¿ëÇÑ´Ù. index ¸íÀÌ ÁÖ¾îÁö¸é ÁÖ¾îÁø ƯÁ¤ bitmap index ÀÇ boolean combination ÀÇ »ç¿ëÀ» ½ÃµµÇÑ´Ù.
/*+INDEX_COMBINE(table index) */
10.INDEX_DESC ¿ëµµ : ÁöÁ¤µÈ Å×À̺íÀÇ ÁöÁ¤µÈ index¸¦ ÀÌ¿ë descendingÀ¸·Î scan ÇÏ°íÀÚÇÒ¶§ »ç¿ë.
/*+INDEX_DESC(table index) */
11.INDEX_FFS ¿ëµµ : full table scanº¸´Ù ºü¸¥ full index scanÀ» À¯µµ.
/*+INDEX_FFS(table index) */
12.MERGE_AJ ¿ëµµ : not in subquery¸¦ merge anti-joinÀ¸·Î º¯Çü
/*+MERGE_AJ */
13.MERGE_SJ ¿ëµµ : correalted EXISTS subquery¸¦ merge semi-joinÀ¸·Î º¯Çü
/*+MERGE_SJ */
14.AND_EQUAL ¿ëµµ : single-column indexÀÇ merge¸¦ ÀÌ¿ëÇÑ access path ¼±ÅÃ. Àû¾îµµ µÎ°³ÀÌ»óÀÇ index°¡ ÁöÁ¤µÇ¾î¾ßÇÑ´Ù.
/*+AND_EQUAL(table index1,index2...) */
15.USE_CONCAT ¿ëµµ : Á¶°ÇÀýÀÇ OR ¸¦ Union ALL Çü½ÄÀ¸·Î º¯ÇüÇÑ´Ù. ÀϹÝÀûÀ¸·Î º¯ÇüÀº ºñ¿ëÃø¸é¿¡¼ È¿À²ÀûÀ϶§¸¸ ÀϾÙ.
/*+USE_CONCAT */
C. JOIN ¼ø¼¸¦ °áÁ¤ÇÏ´Â Hints
1.ORDERED ¿ëµµ : fromÀý¿¡ ±â¼úµÈ Å×ÀÌºí ¼ø¼´ë·Î joinÀÌ ÀϾµµ·Ï À¯µµ.
/*+ORDERED */ ¿¹ : SELECT /*+ORDERED */ TAB1.COL1,TAB2.COL2,TAB3.COL3 FROM TAB1,TAB2,TAB3 WHERE TAB1.COL1=TAB2.COL1 AND TAB2.COL1=TAB3.COL1;
2.STAR ¿ëµµ : STAR QUERY PLANÀÌ »ç¿ë°¡´ÉÇÏ´Ù¸é À̸¦ ÀÌ¿ëÇϱâÀ§ÇÑ HINT. STAR PLANÀº ±Ô¸ð°¡ °¡ÀåÅ« Å×À̺íÀÌ QUERY¿¡¼ JOIN ORDER»ó ¸¶Áö¸·À¸·Î À§Ä¡ÇÏ°Ô ÇÏ°í NESTED LOOP À¸·Î JOINÀÌ ÀϾµµ·Ï À¯µµÇÑ´Ù. Àû¾îµµ 3°³ Å×À̺í ÀÌ»óÀÌ Á¶Àο¡ Âü¿©ÇؾßÇϸç LARGE TABLEÀÇ CONCATENATED INDEX´Â ÃÖ¼Ò 3Ä÷³ ÀÌ»óÀ» INDEX¿¡ Æ÷ÇÔÇؾßÇÑ´Ù. Å×À̺íÀÌ ANALYZE µÇ¾î ÀÖ´Ù¸é OPTIMIZER°¡ °¡ÀåÈ¿À²ÀûÀÎ STAR PLANÀ» ¼±ÅÃÇÑ´Ù.
/*+STAR */
D. JOIN OPERATIONÀ» °áÁ¤ÇÏ´Â HINTS.
1.USE_NL ¿ëµµ : Å×À̺íÀÇ JOIN ½Ã Å×À̺íÀÇ °¢ ROW°¡ INNER Å×À̺íÀ» NESTED LOOP Çü½ÄÀ¸·Î JOIN ÇÑ´Ù.
/*+USE_NL(inner_table) */
¿¹ : SELECT /*+ORDERD USE_NL(CUSTOMER) */ FROM ACCOUNT.BALANCE,CUSTOMER.LAST_NAME,CUSTOMER.FIRST_NAME WHERE ACCOUNT.CUSTNO = CUSTOMER.CUSTNO;
2.USE_MERGE ¿ëµµ : ÁöÁ¤µÈ Å×À̺íµéÀÇ Á¶ÀÎÀÌ SORT-MERGEÇü½ÄÀ¸·Î ÀϾµµ·Ï À¯µµ.
/*+USE_MERGE(table) */ * °ýÈ£¾ÈÀÇ Å×À̺íÀº JOIN ORDER»óÀÇ µÚÀÇ Å×À̺í(?)
3.USE_HASH ¿ëµµ : °¢ Å×ÀÌºí°£ HASH JOINÀÌ ÀϾµµ·Ï À¯µµ.
/*+USE_HASH(table) */ * °ýÈ£¾ÈÀÇ Å×À̺íÀº JOIN ORDER»óÀÇ µÚÀÇ Å×À̺í(?)
4.DRIVING_SITE ¿ëµµ : QUERYÀÇ ½ÇÇàÀÌ ORACLE¿¡ ÀÇÇØ ¼±ÅÃµÈ SITE°¡ ¾Æ´Ñ ´Ù¸¥ SITE¿¡¼ ÀϾµµ·Ï À¯µµ.
/*+DRIVING_SITE(table) */ ¿¹ : SELECT /*+DRIVING_SITE(DEPT) */ FROM EMP,DEPT@RSITE WHERE EMP.DEPTNO = DEPT.DEPTNO;
DRIVING_SITE ÈùÆ®¸¦ ¾È¾²¸é DEPTÀÇ ROW°¡ LOCAL SITE·Î º¸³»Á® LOCAL SITE¿¡¼ JOINÀÌ ÀϾÁö¸¸, DRIVING_SITE ÈùÆ®¸¦ ¾²¸é EMPÀÇ ROWµéÀÌREMOTE SITE·Î º¸³»Á® QUERY°¡ ½ÇÇàµÈÈÄ LOCAL SITE·Î °á°ú°¡ RETURNµÈ´Ù. |
ÁÖÁ¦ : ¿©°¡/»ýÈ°/IT > ÄÄÇ»ÅÍ/ÀÎÅͳÝ
- ½ºÅ©·¦ 1
- Àμâ
¼¹ö°ü¸®ÀÚ¿Í °³¹ßÀÚ¸¦ À§ÇÑ Æ©´×°¡À̵å Tip
- 2005/01/17 14:24
- http://blog.moneta.co.kr/pasfume/233647/175792
SQL Server for Developer: °³¹ßÀÚ¸¦ À§ÇÑ Æ©´× °¡À̵å
SQL Server for Developer: °ü¸®ÀÚ¸¦ À§ÇÑ Æ©´× °¡À̵å
ÁÖÁ¦ : ¿©°¡/»ýÈ°/IT > ÄÄÇ»ÅÍ/ÀÎÅͳÝ
- ½ºÅ©·¦ 1
- Àμâ
°³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î Æ©´× À̽´ 10°¡Áö À¯Çü ºÐ¼® Tip
- 2005/01/17 14:16
- http://blog.moneta.co.kr/pasfume/233639/175792
°³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î Æ©´× À̽´ 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¡¯ 좥ND Á¦Ç° ÄÚµå = ¡®50001¡¯ |
À妽º È°¿ë °¡´É => ¸ÅÀå ÄÚµå : À妽º È°¿ë Ä÷³ => Á¦Ç° ÄÚµå : µ¥ÀÌÅÍ Ã¼Å© Ä÷³ ÆǸŠÀÏÀÚÀÇ Á¶°ÇÀÌ ´©¶ôµÊ¿¡ µû¶ó ¸ÅÀå ÄÚµå Á¶°Ç¿¡ ÀÇÇØ ¸ðµÎ µ¥ÀÌÅÍ°¡ ÀоîÁö¸é¼ Á¦Ç° ÄÚµå´Â µ¥ÀÌÅ͸¦ °¡Áö°í ¿Ã °ÍÀΰ¡¸¦ üũÇÏ´Â Á¶°Ç¸¸ µÈ´Ù. | |
* ù ¹ø쨰 Ä÷³ Á¶°ÇÀÌ ¡®=¡¯ÀÌ ¾Æ´Ñ °æ¿ì WHERE ¸ÅÀå ÄÚµå = ¡®R2%¡¯ ¡¡좥ND ÆǸŠÀÏÀÚ = ¡®20030618¡¯ AND Á¦Ç° ÄÚµå = ¡®50001¡¯ |
À妽º È°¿ë °¡´É => ¸ÅÀåÄÚµå : À妽º È°¿ë Ä÷³ => ÆǸÅÀÏÀÚ : µ¥ÀÌÅÍ Ã¼Å© Ä÷³ => Á¦Ç°ÄÚµå : µ¥ÀÌÅÍ Ã¼Å© Ä÷³ ÇÏÁö¸¸ ù ¹ø° Ä÷³ÀÌ LIKE Á¶°ÇÀ̹ǷΠÆǸŠÀÏÀÚ¿Í Á¦Ç° ÄÚµå´Â ´ÜÁö µ¥ÀÌÅ͸¦ °¡Áö°í ¿À±â À§ÇÑ Ã¼Å© Ä÷³¸¸ µÈ´Ù. Áï, ¿ì¼± ¼ø¼¸¦ °¡Áø Ä÷³ÀÌ = Á¶°ÇÀÌ ¾Æ´Ñ °æ¿ì´Â µÚ Ä÷³Àº ¸ðµÎ µ¥ÀÌÅÍ Ã¼Å© Ä÷³ÀÌ´Ù. |
°áÇÕ À妽º¸¦ »ç¿ëÇÒ ¶§¿¡´Â À妽º È°¿ë Ä÷³ÀÌ µ¥ÀÌÅÍ ¹üÀ§¸¦ ÃæºÐÈ÷ Á¼ÇôÁú ¶§ À¯¿ëÇÑ °ÍÀÌ´Ù. <±×¸² 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 ¡®%½Å¸²¡¯ ÀÌ °æ¿ì¿¡´Â À妽º¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·± ÀÌÀ¯·Î Ä÷³À» ½Ãµµ, ±º±¸, µ¿À¾À¸·Î ÁÖ¼Ò Ä÷³À» ³ª´©¾î »ý¼ºÇÏ´Â °ÍÀÌ ÁÁ´Ù. |
¿ªÀ¸·Î À妽º¸¦ »ç¿ëÇÏ´Â °ÍÀ» ¹æÇØÇÏ´Â ¿ø¸®¸¦ ÀÌ¿ëÇÏ¿© À妽º°¡ ºÒ¸®ÇÏ´Ù°í »ý°¢µÇ´Â °æ¿ì ÀϺη¯ ¾ÕÀÇ ¿¹¿¡ ±â¼úµÈ °Íó·³ ½á ÁÖ´Â ±â¹ýµµ ¸¹ÀÌ »ç¿ëµÈ´Ù. ÇÏÁö¸¸ ÇÊÀÚ ÀÇ°ßÀ¸·Î´Â ÀûÀýÇÏ°Ô ÈùÆ®¸¦ ±¸»çÇÏ¿© Á¦¾î¸¦ ÇÏ´Â °ÍÀÌ °¡µ¶¼º Ãø¸é¿¡¼ ´õ ³ªÀº ¹æ¹ýÀ̶ó »ý°¢ÇÑ´Ù.
¿ÉƼ¸¶ÀÌÀúÀÇ ¼±ÅÃ(ÈùÆ® ÀÌ¿ë)
·ê ±â¹Ý ¿ÉƼ¸¶ÀÌÀú°¡ ¾Æ´Ñ °æ¿ì À妽º¸¦ È°¿ëÇÏ°íÀÚ Çϳª ¿ÉƼ¸¶ÀÌÀú°¡ ÆÇ´ÜÇÏ¿© ÀÚ½ÅÀÌ »ý°¢ÇÏ´Â À妽º¸¦ È°¿ëÇÏÁö ¾Ê°í Ç®(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.¿ìÆí¹øÈ£;
<±×¸² 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
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
/
<¸®½ºÆ® 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¹®Àº Á¶È¸Á¶Â÷ µÇÁö ¾Ê´Â´Ù. ÀÌÁ¦ ´À¸®´Ù°í ´Ù¸¥ »ç¶÷ÀÇ ÇÁ·Î¼¼½º Å¿À̶óµçÁö, µ¥ÀÌÅͺ£À̽º°¡ ´À¸®´ÙµçÁö ÇÏ´Â ¿À·ù´Â ¹üÇÏÁö ¾Ê±æ ¹Ù¶õ´Ù.
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¹ø¿¡¼ ±â¼úÇÑ °Íó·³ ±»ÀÌ Å×À̺íÀ» ³ª´©Áö ¾Ê¾Æµµ ÆÄƼ¼Ç ±â´ÉÀ» ÀÌ¿ëÇÑ´Ù¸é È¿°úÀûÀ¸·Î ÃֽŠÁ¤º¸¿¡ ´ëÇÑ °ü¸®°¡ °¡´ÉÇÏ´Ù.
ÆÄƼ¼Ç Å×À̺íÀ» »ç¿ëÇÔÀ¸·Î½á ¾ò´Â Å« ÀÌÁ¡ Áß Çϳª´Â ÀÛ¾÷À» º´·Äó¸® ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ƯÈ÷ ÀÌÇàÀ̳ª Å« ¹èÄ¡ ÀÛ¾÷½Ã ÆÄƼ¼Ç º°·Î ÇÁ·Î¼¼½º¸¦ µ¿½Ã¿¡ ¼öÇàÇÏ¿© È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
ÆÄƼ¼Ç Å×À̺íÀ» ¸¸µå´Â ¹æ¹ýÀº 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 SELECT /*+ ORDERED */ A.EMP_NAME, B.SALARY È°¿ë 3 : UPDATE¹®¿¡¼ÀÇ Á¶ÀÎ UPDATE¹®Àº µ¥ÀÌÅ͸¦ º¯°æÇϱ⠶§¹®¿¡ ¶ô(Lock)À» °É°í ÀÛ¾÷À» ÇÏ°Ô µÈ´Ù. ±×·¸±â ¶§¹®¿¡ UPDATE SQL¹®À» Àß ¸ø »ç¿ëÇÏ¸é ¿Ï·á°¡ µÉ ¶§±îÁö ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ¼öÇàµÇÁö ¸øÇÏ´Â °á°ú¸¦ ÃÊ·¡ÇÑ´Ù. UPDATE TAB1 A SET COL2 = (SELECT COL2 FROM TAB2 WHERE COL1 = A.COL1) UPDATE¹®Àº WHEREÀý¿¡¼ ÇØ´çÇÏ´Â ·Î¿ì(ROW)¸¦ °¡Áö°í ¿Í¼ ÇÑ °Ç¸¶´Ù SETÀý ¾ÈÀÇ SQL¹®À» ¼öÇàÇϱ⠶§¹®ÀÌ´Ù. µû¶ó¼ ¾ÕÀÇ °æ¿ì ¹Ýµå½Ã TAB2¿¡´Â COL1À» Á¦1 Ä÷³À¸·Î ÇÏ´Â À妽º°¡ ÀÖ¾î¾ß ÇÑ´Ù. ±× ¿Ü ÇÁ·Î±×·¥À» ´À¸®°Ô ÇÏ´Â ¿äÀÎ
ÀÚ½ÅÀÌ ¶æÇÏ´Â ´ë·Î ¿ÉƼ¸¶ÀÌÀú´Â ¿òÁ÷¿©ÁÖÁö ¾Ê´Â´Ù. ÀÌ·± ¶§¿¡´Â ÀûÀýÇÑ ÈùÆ®¸¦ ±¸»çÇÑ ÈÄ Ç÷£À» ÀÛ¼ºÇÏ¿© ÀÚ½ÅÀÌ ¿øÇÏ´Â ´ë·Î SQL ±¸¹®ÀÌ Çؼ®µÇ¾ú´ÂÁö¸¦ °ËÁõÇØ¾ß ÇÑ´Ù. ´ÙÀ½¿¡ ÀÚÁÖ ¾²ÀÌ´Â ÈùÆ®¸¦ ¸ð¾Æ ³õ¾Ò´Ù. ²À ¾Ë¾Æ¾ß ÇÒ ÈùÆ®´Â ±½°Ô Ç¥½ÃÇÏ¿´À¸´Ï ²À ¾Ë¾ÆµÎ±æ ¹Ù¶õ´Ù.
|
ÁÖÁ¦ : ¿©°¡/»ýÈ°/IT > ÄÄÇ»ÅÍ/ÀÎÅͳÝ
- ½ºÅ©·¦ 1
- Àμâ