·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[DB ¼º´É°ü¸® 2% ä¿ì±â] ¨é ÇÁ·Î±×·¡¹Ö ÅëÇÑ ¼º´É°³¼± »ç·Ê

³²ÁØÇö (DB ÄÁ¼³ÅÏÆ®)   2005/06/24
¿¬Àç¼ø¼­
1. ÀÚµ¿È­ ÅøÀ» ÀÌ¿ëÇÑ ¼º´É°ü¸®ÀÇ ÇѰè
2. Å×ÀÌºí ÆÄÆ¼¼Å´×ÀÇ ¸ñÀû°ú Ȱ¿ë»ç·Ê
3. µ¥ÀÌÅͺ£À̽º ±â¹Ý ÇÁ·Î±×·¡¹ÖÀ» ÅëÇÑ ¼º´É°³¼± »ç·Ê
[Áöµð³ÝÄÚ¸®¾Æ]Áö±Ý±îÁö ¿ì¸®´Â µ¥ÀÌÅͺ£À̽º ¼º´É°ü¸®¿¡ ´ëÇÏ¿© ±âÁ¸°ú´Â ´Ù¸¥ ¡®È°¿ë¡¯ÀûÀÎ ¸é¿¡ ÃÊÁ¡À» ¸ÂÃç °³·«ÀûÀ¸·Î ¾Ë¾Æº¸¾Ò´Ù.

À̹ø ½Ã°£Àº ´Ü¼øÇÑ ÆíÇùÇÑ Áö½Ä¸¸À¸·Î ÇØ°áµÇ´Â ¹®Á¦°¡ ¾Æ´Ñ µ¥ÀÌÅͺ£À̽º ¼º´É¿¡ °üÇØ¼­ ÇÊÀÚ°¡ ÇöÀå¿¡¼­ ÄÁ¼³ÆÃÇß´ø ½ÇÀü »ç·ÊµéÀ» Áß½ÉÀ¸·Î µ¥ÀÌÅͺ£À̽º ±â¹ÝÀÇ ÇÁ·Î±×·¡¹Ö »ç·ÊµéÀ» ¼Ò°³ÇÑ´Ù.

½ÇÁ¦ ÇöÀå¿¡¼­ »ç¿ëµÇ´Â ÇÁ·Î±×·¥Àº Å©°Ô ¿Â¶óÀÎ À¯Çü°ú ¹èÄ¡¼ºÀÇ À¯ÇüÀ¸·Î ³ª´²Áö°Ô µÈ´Ù. À̰ÍÀº ¸ðµç ÇÁ·Î±×·¥ÀÇ À¯ÇüÀ» ´ëÇ¥ÇÑ´Ù°í Çϱ⠺¸´Ù´Â ½ÇÁ¦ end user(»ç¿ëÀÚ)µéÀÌ »ç¿ëÇÏ°Ô µÇ´Â À¯ÇüÀ¸·Î °³¹ßÀÚµéÀÌ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â À¯ÇüÀ̶ó°í º¼ ¼ö ÀÖ´Ù.

ÀÌ·¸°Ô À¯ÇüÀ» ³ª´©´Â ÀÌÀ¯´Â ÀÌ À¯Çü¿¡ µû¶ó ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ¹æ¹ý°ú Àü·«ÀÌ ´Þ¶ó¾ß Çϱ⠶§¹®ÀÌ´Ù. ½ÇÁ¦·Î ÇöÀå¿¡¼­ ¸¹Àº ¼º´É ¹®Á¦¸¦ ÀÏÀ¸Å°´Â ÀÌÀ¯´Â ÀÌ µÎ °¡ÁöÀÇ ´Ü¼øÇÑ(?) À¯ÇüÀÇ ±¸ºÐ ¾øÀÌ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ÀÌÀ¯°¡ ±²ÀåÈ÷ ¸¹´Ù.

<±×¸² 1> ¿Â¶óÀÎ À¯Çü°ú ÇÁ·Î±×·¡¹Ö ¹æ¾È

<±×¸² 1>¿¡¼­ º¸µíÀÌ ¿Â¶óÀÎÀÇ ÇÁ·Î±×·¡¹ÖÀº ¾÷¹« ºÐ¼®ÀÌ ¼±ÇàµÇ¾îÁø »óÅ¿¡¼­ ÇÁ·Î±×·¡¹Ö ±â¼úÀûÀÎ ºÎºÐ¿¡ µé¾î°¥ ¶§ ¿©·¯ °¡Áö ÆÑÅÍ(factor)µéÀ» °í·ÁÇØ¼­ Àü·«À» Â¥¾ß ÇÑ´Ù. °í·ÁÇØ¾ß ÇÒ ÆÑÅ͵éÀº ´ÙÀ½°ú °°´Ù.

¡ß Real Time Data¸¦ Á¶È¸Çؾ߸¸ Çϴ°¡?
¡ß °Ë»öÁ¶°ÇÀÇ Á¶ÇÕ¿¡ µû¸¥ ´Ù¾ç¼º°ú µ¥ÀÌÅÍ·®Àº ¾ó¸¶³ª µÇ´Â°¡?
¡ß ¹èÄ¡¸¦ ÀÌ¿ëÇÒ ¼ö´Â ¾ø´Â°¡?
¡ß °á°ú °Ç¼ö°¡ Àû´çÇѰ¡?
¡ß Á¤·ÄÀÇ ±âÁØÀº ¹«¾ùÀΰ¡?

ÀÌ¿Í °°Àº ÆÑÅ͵鿡 ´ëÇØ ´äÀ» ¾ò¾ú´Ù¸é ´ÙÀ½°ú °°Àº ¼ø¼­µµ¿¡ ÀÇÇØ È­¸é ±¸¼º°ú ÇÁ·Î±×·¡¹Ö Àü·«À» Â¥¾ß ÇÑ´Ù. À̰ÍÀº µ¥ÀÌÅͺ£À̽º¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ÇÁ·Î±×·¡¹ÖÀ» Çϱâ À§ÇÔÀ̸ç, ÀÌ·± ÀýÂ÷¸¦ Á¦´ë·Î ¹âÀº ÇÁ·Î±×·¥Àº ¼º´É »ó ÀüÇô ¹®Á¦¸¦ ÀÏÀ¸Å°Áö ¾Ê°í ÇâÈÄ µ¥ÀÌÅͰ¡ ¸¹ÀÌ ½×ÀÌ´õ¶óµµ ½Ã½ºÅÛÀÇ Àç°³¹ßÀÌ ÇÊ¿ä¾ø°Ô µÈ´Ù. µû¶ó¼­ »ç¿ëÀÚµéÀÇ ¸¸Á·µµ ¶ÇÇÑ ÃæÁ·½Ãų ¼ö ÀÖ°Ô µÈ´Ù.

<±×¸² 2> ÃÖÀûÀÇ ÇÁ·Î±×·¡¹Ö ¹æ¾È

È­¸éÀÌ º¹ÀâÇØÁú¼ö·Ï ÇÁ·Î±×·¡¹ÖÇϱⰡ ¾î·Á¿öÁö°í SQLÀÌ ¾î·Æ°Ô µÇ¹Ç·Î ´ç¿¬È÷ ¼º´ÉÀÌ ÀúÇϵDZ⠸¶·ÃÀÌÁö¸¸ <±×¸² 2>¿Í °°Àº ¼ø¼­¿¡ ÀÔ°¢ÇÏ¿© Á¤¸®ÇÏ´Ù º¸¸é º¹ÀâÇÑ ÇÁ·Î±×·¥ÀÌ¶óµµ ÇÁ·Î±×·¡¹ÖÀ» ´Ü¼øÇÏ°Ô Â© ¼ö ÀÖ´Â ´É·ÂÀÌ ±æ·¯Áö°Ô µÈ´Ù. ¿Â¶óÀÎ ÇÁ·Î±×·¥Àº ´ë°Ô µ¥ÀÌÅͺ£À̽ºÀÇ Á¶Àιæ½Ä Áß Nested Loops Á¶ÀÎÀ¸·Î Ç®¸®°Ô Â¥°Ô µÇ´Âµ¥ À̰ÍÀÌ Àü·«À» ±¸¼ºÇϴµ¥ Çٽɿä¼Ò°¡ µÈ´Ù. Nested Loops Á¶ÀÎÀ̶õ Á¶Àιæ½Ä Áß °¡Àå ÀüÅëÀûÀÌ°í ±âº»ÀûÀÎ ¹æ½ÄÀ¸·Î ¿Â¶óÀÎ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§ ¹Ýµå½Ã È®ÀÎÇØ¾ß ÇÒ ¹æ½ÄÀÌ´Ù.

À̹ø ¿¬Àç¿¡¼­´Â Áö¸é °ü°è»ó µ¥ÀÌÅͺ£À̽ºÀÇ Á¶ÀÎ ¹æ½Ä¿¡ ´ëÇÏ¿© ÀÚ¼¼È÷ ´Ù·çÁö´Â ¾Ê°í °ü·Ã ÀڷḦ ã¾Æº¸°Å³ª ±âȸ°¡ µÇ¸é ÀÚ¼¼È÷ ±â¼úÇÏ´Â ½Ã°£À» °¡Á®º¸µµ·Ï ÇϰڴÙ.

Nested Loops Á¶ÀÎ ¹æ½ÄÀÇ °¡Àå ÇÙ½ÉÀº µå¶óÀ̺ù ÆÑÅ͸¦ Àü·«ÀûÀ¸·Î ºÎ¿©ÇØ¾ß ÇÏ´Â °ÍÀÌ ÇÙ½ÉÀÌ´Ù. Áï, À妽º¿Í Random Access·Î Ç®¸®°Ô µÇ´Â ¹æ½ÄÀÎ ¸¸Å­ µå¶óÀ̺ù ÆÑÅÍÀÇ °Ç¼ö°¡ ÀûÀ»¼ö·Ï ¼º´É »ó¿¡ ¹®Á¦¸¦ ÀÏÀ¸Å°Áö ¾Ê´Â´Ù. µû¶ó¼­ È­¸éÀ» ±¸¼ºÇÒ ¶§ ´ÜÀÏ Á¶°Ç ¶Ç´Â Á¶°ÇÀÇ Á¶ÇÕÀÌ µå¶óÀ̺ù ÆÑÅÍÀÇ °Ç¼ö¸¦ Àû°Ô Çϱâ À§ÇÑ Àü·«À» ±¸»çÇÏ¸é µÇ´Â °ÍÀÌ´Ù. ¸¸¾à ±×·¸°Ô ºÒ°¡´ÉÇÏ´Ù¸é ºÎºÐ¹üÀ§Ã³¸®³ª ¹èÄ¡¿¡ ÀÇÇÑ ¹æ½ÄÀ¸·Î Àü·«À» º¯°æÇØ¾ß ¼º´É »ó¿¡ ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. ½ÇÁ¦ ¿©·¯ °¡Áö »ç·ÊµéÀ» ÅëÇØ¼­ µ¥ÀÌÅͺ£À̽º ±â¹ÝÀÇ ÇÁ·Î±×·¡¹Ö ¹æ¹ý¿¡ ´ëÇØ ±¸Ã¼ÀûÀ¸·Î ¾Ë¾Æº»´Ù.

¿¹ 1. È¿À²ÀûÀÎ À妽º¸¦ ÀÌ¿ëÇÏÁö ¸øÇϰí ÀÖ´Â ÇÁ·Î±×·¥

<È­¸é 1> ȸ¿øÁ¶È¸ ÇÁ·Î±×·¥

<È­¸é 1>Àº ¾î´À ¡®ºÀ»çÀÚ¡¯¶ó´Â ȸ¿øÀ» Á¶È¸ÇÏ´Â È­¸éÀ¸·Î Á¶È¸ Á¶°Ç¿¡ µû¶ó ¾î¶»°Ô SQLÀ» ±¸»çÇÏ´Â Áö¸¦ ¾Ë¾Æº¸°íÀÚ ÇÑ´Ù. °£´ÜÇÏ°Ô ¿ä¾àÇØ º¸¸é ´ÙÀ½°ú °°´Ù.

* ¡®ÁֹιøÈ£¡¯·Î Á¶È¸Çϰųª ¡®À̸§¡¯À¸·Î Á¶È¸°¡ °¡´ÉÇÏ´Ù.
* ¡®ÁֹιøÈ£¡¯³ª ¡®À̸§¡¯ÀÌ ¡®=¡¯ Á¶°ÇÀ¸·Î µå¶óÀ̺ù ÆÑÅͰ¡ µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿¹) union all·Î ½ÇÇà°èȹ ºÐ¸®
* ¡®µå¶óÀ̺ù ÆÑÅÍ¡¯ÀÇ ¿ªÇÒÀ» ÇÒ ¼ö ÀÖµµ·Ï À妽º Àü·«À» ¼¼¿î´Ù.
* ¡®À̸§¡¯ÀÇ °æ¿ì À¯»çÇÑ À̸§ÀÇ µ¥ÀÌÅͰ¡ ¸¹ÀºÁö È®ÀÎÇÏ¿© ÃÖ¼ÒÀÚ¸®¸¦ ¼³Á¤ÇÏ¿© ÆË¾÷(pop-up)À» ÀÌ¿ëÇÏ¿© ¡®=¡¯·Î µå¶óÀ̺ù µÉ ¼ö ÀÖµµ·Ï À¯µµÇÑ´Ù.

¡®ºÀ»çÀÚ¡¯ ±âº» Á¤º¸¸¦ Á¶È¸ÇÏ´Â È­¸éÀε¥ ±× Á¶°ÇÀ¸·Î Áֹεî·Ï¹øÈ£³ª ºÀ»çÀÚÀÇ À̸§ÀÌ µé¾î¿Ã ¼ö ÀÖ´Ù. ÇØ´ç Å×À̺íÀÇ À妽º »óȲ¿¡ µû¶ó ÇÑ ¸íÀÇ ºÀ»çÀÚ¸¦ °Ë»öÇϱâ À§ÇÏ¿© Full ScanÀ» ÇÒ ¼ö ÀÖ´Â ºÎºÐÀÌ´Ù. µû¶ó¼­ ÀÌ ºÎºÐÀ» ¡®À̸§¡¯À̳ª ¡®ÁֹιøÈ£¡¯°¡ Á¶°ÇÀÌ µé¾î¿Ã °æ¿ì·Î ³ª´©¾î SQLÀ» ±¸¼ºÇÏ¿© À妽º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï Access Path¸¦ °íÁ¤ÇÔÀ¸·Î½á È¿°úÀûÀÎ À妽º Access¸¦ ÇÒ ¼ö ÀÖµµ·Ï À¯µµÇÑ´Ù.

±âÁ¸ ÇÁ·Î±×·¥
SELECT /*+ ordered use_nl(b c bg) index(B BONGSAJA_IDX3) */
  b.bm_no,bm_regdate,bm_name,bm_jumin,bm_sex,cent_name,
    bm_addr1,bm_addr2,bm_tel,bm_mtel,bg_name
FROM bongsaja b, center c,bong_group bg
WHERE b.cent_code = c.cent_code
AND b.bg_no = bg.bg_no (+)
AND B.cent_sigun in (select cent_sigu
  from center
  where cent_code like decode(:sw, 1, '%', 2, substr(:cent_code,1,5)||'%'))
AND (B.BM_NAME like :name||'%' or B.BM_JUMIN like :jumin||'%')

Tuned-SQL
1) ºÀ»çÀÚ À̸§ÀÌ µé¾î¿Ã °æ¿ì
SELECT /*+ ordered use_nl(b c bg) index(B BONGSAJA_IDX3) */
  b.bm_no,bm_regdate,bm_name,bm_jumin,bm_sex,cent_name,
    bm_addr1,bm_addr2,bm_tel,bm_mtel,bg_name
FROM bongsaja b, center c,bong_group bg
WHERE b.cent_code = c.cent_code
AND b.bg_no = bg.bg_no (+)
AND B.cent_sigun in (select cent_sigu
  from center
  where cent_code like decode(:sw, 1, '%', 2, substr(:cent_code,1,5)||'%'))
AND B.BM_NAME like :name||'%'
¡¡
2) ºÀ»çÀÚÀÇ ÁֹιøÈ£°¡ µé¾î¿Ã °æ¿ì
SELECT /*+ ordered use_nl(b c bg) index(B BONGSAJA_IDX4) */
  b.bm_no,bm_regdate,bm_name,bm_jumin,bm_sex,cent_name,
    bm_addr1,bm_addr2,bm_tel,bm_mtel,bg_name
FROM bongsaja b, center c,bong_group bg
WHERE b.cent_code = c.cent_code
AND b.bg_no = bg.bg_no (+)
AND B.cent_sigun in (select cent_sigun
  from center
  where cent_code like decode(:sw, 1, '%', 2, substr(:cent_code,1,5)||'%'))
AND B.BM_JUMIN = :jumin

±âÁ¸¿¡´Â ÀÌ °Ë»öÁ¶°Ç¸¸À» À§ÇØ bm_name, bm_juminÀÇ ´ÜÀÏ À妽º°¡ ¸¸µé¾îÁ® ÀÖ¾úÀ¸³ª ÀÌ Äõ¸®´Â ³»ºÎÀûÀ¸·Î cent_sigunÀ̶ó´Â »ó´çÈ÷ º¯º°·Â ÀÖ´Â Á¶°ÇÀÌ Ç×»ó °°ÀÌ µé¾î¿À°Ô µÇ¹Ç·Î ´ÜÀÏ À妽º¸¦ dropÇϰí ÇöÀç´Â cent_code+bm_jumin, cent_code+bm_name µîÀÇ °áÇÕ À妽º¸¦ ¸¸µé¾ú°í ÀÌ À妽º¸¦ ¾²±â À§Çؼ­ ÀÌ¿Í °°ÀÌ SQLÀ» ºÐ¸®Çϰí ÈùÆ®¸¦ ÀÌ¿ëÇÏ¿© À妽º¸¦ ¾µ ¼ö ÀÖµµ·Ï À¯µµÇß´Ù.

¹°·Ð ÁֹιøÈ£ 13ÀÚ¸®°¡ ÀüºÎ Á¶°Ç¿¡ µé¾î¿À°í bm_juminÀ̶ó´Â À妽º¸¦ ÀÌ¿ëÇÏ°Ô µÇ¸é ¼º´É¿¡´Â ¹®Á¦°¡ ¾ø°ÚÁö¸¸ ±âÁ¸¿¡´Â ÁֹιøÈ£¿Í À̸§ÀÇ ÀÚ¸® ¼ö Á¦¾àÀÌ ÀüÇô ¾ø¾ú°í À̸§À¸·Î¸¸ Á¶È¸ÇÏ´Â °æ¿ì °°Àº ¼ºÀ» °¡Áø ȸ¿ø(±èXX )ÀÌ ¼ö¾øÀÌ ¸¹±â ¶§¹®¿¡ È­¸é¿¡ »Ñ¸®´Â µ¥ ¾î·Á¿òÀÌ ¸¹¾ÒÁö¸¸ cent_sigunÀ̶ó´Â º¯º°·ÂÀÌ ÁÁÀº Á¶°ÇÀ» ÇÔ²² °áÇÕÀ妽º¸¦ ÀÌ¿ëÇÏ¿© Çʼö Á¶°ÇÈ­Ç߱⠶§¹®¿¡ ÀüÇô ¹®Á¦°¡ µÇÁö ¾Ê¾Ò´Ù.

¿¹ 2. ´Ù¾çÇÑ °Ë»öÁ¶°Ç°ú ¸¹Àº ¾çÀÇ °á°ú ¼ö¸¦ »Ñ¸± °æ¿ì

<È­¸é 2> °í°´Á¤º¸ Á¶È¸ ÇÁ·Î±×·¥

ÀÌ ÇÁ·Î±×·¥Àº ¾î´À ÀüÀÚȸ»çÀÇ »óǰÆÇ¸Å °í°´À» °ü¸®ÇÏ´Â ÇÁ·Î±×·¥À¸·Î ¼ÒÀ§ Äݼ¾ÅÍ¿¡¼­ ÁÖ·Î ÀÌ¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. Áï °í°´ÀÇ ÀüÈ­°¡ ¿Ã °æ¿ì °í°´À» ÀÀ´ëÇϱâ À§ÇØ °í°´ Á¤º¸¸¦ Á¶È¸ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. °í°´ Á¤º¸¸¦ ¿©·¯ °¡Áö·Î ÀÔ·ÂÇÒ ¼ö ÀÖ°Ô ÇÏ¿© ´Ù¾çÇÏ°Ô Á¶È¸¸¦ ÇÒ ¼ö ÀÖµµ·Ï ÇÁ·Î±×·¡¹ÖµÈ ¿Â¶óÀÎ È­¸éÀÌ´Ù. ÀÌ È­¸éÀ» ºÐ¼®ÇÑ °á°ú´Â ´ÙÀ½°ú °°´Ù.

* ¡®´Ù¾çÇÑ °Ë»öÁ¶°Ç¡¯ Áß Àǹ̰¡ °ãÄ¡Áö ¾Ê´ÂÁö È®ÀÎ ¿¹) ¡®ÁֹιøÈ£¡¯¿Í ¡®°í°´¸í+ÁֹιøÈ£¡¯´Â Àǹ̻ó °ãħ
* ¡®ID¡¯¼ºÀÇ ÁֹιøÈ£³ª Ä«µå¹øÈ£´Â Á¶°ÇÀ¸·Î Àû´ç(µå¶óÀ̺ù ÆÑÅÍ, °á°ú°Ç¼ö)
* ¡®°í°´¸í+ÈÞ´ëÆù¡¯, ¡®°í°´¸í+ÀÚÅùøÈ£¡¯´Â µ¥ÀÌÅÍ·®À» º¸°í ÆÇ´ÜÇÏ¿© ÃÖ¼Ò ÀÚ¸® ¼ö¸¦ Á¤ÇÑ´Ù.
* ¡®°á°ú°Ç¼ö¡¯°¡ ¸¹À» °æ¿ì ºÎºÐ¹üÀ§Ã³¸®·Î À¯µµÇÑ´Ù.
* ¾÷¹«»óÀ¸·Î ¸¹Àº °á°ú Row¸¦ »Ñ¸± °ÍÀÎÁö ÆÇ´ÜÇÑ´Ù.

±âÁ¸ ÇÁ·Î±×·¥
If (sa_Help[0][0].equals(¡°1¡±))
  {
    tempIndex = ¡° /*+ INDEX( RM501M RM501M_IDX02) */ ¡±;
  }

String v_Sql = ¡° select ¡± + tempIndex + ¡° rownum numb,
    fn_Hicardno(cust_id) cardno, cust_id, cust_nm,¡±
  v_Sql +=¡±decode(rsno, ¡®XXXXXXXXXXXXX¡¯, ¡®¡¯,rsno) rsno, tel_no, cell_tel_no, ¡±;
  v_Sql +=¡±loc_id1, fnHILocID_FULL(loc_id1) loc_nm, addr1¡±;
  v_Sql +=¡±from rm501m ¡±;

if (sa_Help[0][0].equals(¡°0¡±)))
  {
    v_Temp +=¡± where cust_nm like ¡®¡± +
      sa_Help[1][0] + ¡°¡¯||¡¯%¡¯ ¡°;
    v_Temp +=¡± and replace (replace (cell_tel_no,¡¯-¡®,¡¯¡¯),¡¯ ¡®, ¡®¡¯)
      like ¡®¡± + sa_Help[1][1]
  }
else if (sa_Help[0][0].equals(¡°1¡±))
  {
    v_Temp +=¡± where cust_nm like ¡®¡± +
      sa_Help[2][0] + ¡°¡¯||¡¯%¡¯ ¡°;
    v_Temp +=¡± and replace (replace (cell_tel_no,¡¯-¡®,¡¯¡¯),¡¯ ¡®, ¡®¡¯)
      like ¡®¡± + sa_Help[2][1]
  }
else if (sa_Help[0][0].equals(¡°2¡±)))
  {
    v_Sql =¡° select /*+ ordered INDEX(RM501M_IDX01) */
      rownum numb, fn_Hicardno(cust_id) cardno, ¡°
    v_Sql +=¡±decode(rsno, ¡®XXXXXXXXXXXXX¡¯, ¡®¡¯,rsno) rsno,
      tel_no, cell_tel_no, ¡±;
    v_Sql +=¡±loc_id1, fnHILocID_FULL(loc_id1) loc_nm, addr1¡±;
    v_Sql +=¡±from rm501m ¡±;
    v_Temp +=¡±where rsno like ¡®¡± + sa_Help[3][0] + ¡°¡¯||¡¯%¡¯¡±;
  }
else if (sa_Help[0][0].equals(¡°3¡±)))
  {
    v_Temp +=¡±where cust_nm like ¡®¡± + sa_Help[4][0] + ¡°¡¯||¡¯%¡¯ ¡°;
    v_Temp +=¡±and rsno like ¡®¡° + sa_Help[4][1] + ¡°¡¯||¡¯%¡¯ ¡°;
  }

¹®Á¦Á¡ ¹× ¿øÀÎ
ÀÌ ÇÁ·Î±×·¥Àº °í°´À» Á¶È¸ÇÏ´Â È­¸éÀ¸·Î Äݼ¾ÅÍ ¾÷¹«ÀÇ Intro ¾÷¹«ÀÌ´Ù. Á¶È¸Á¶°ÇÀÌ ´Ù¾çÇѵ¥ ¡®Áֹεî·Ï¹øÈ£¡¯¿Í ¡®Ä«µå¹øÈ£¡¯°¡ ÀÔ·ÂµÉ °æ¿ì´Â °á°ú SetÀÌ ¸¹Áö ¾ÊÀ» °ÍÀÌÁö¸¸ ´ëºÎºÐ ¾÷¹«¿¡¼­ Á¶È¸ÇÒ °ÍÀ¸·Î ¿¹»óÇÏ´Â ¡®°í°´¸í+ÈÞ´ëÆù¡¯À̳ª ¡®°í°´¸í+ÀÚÅÃÀüÈ­¹øÈ£¡¯ °°Àº °æ¿ì´Â Á¶°Ç °ª¿¡ µû¶ó¼­ ¸¹Àº ¾çÀÇ °á°ú SetÀÌ ³ª¿Ã °ÍÀ¸·Î ¿¹»óÀÌ µÈ´Ù.

3-Ƽ¾î ±¸Á¶¿¡¼­´Â Á¶°Ç °ª¿¡ ¸Â´Â Äõ¸®°¡ ³¡³ªÁö ¾ÊÀ¸¸é °á°ú·Î ³ªÅ¸³ªÁö ¾Ê°í ¶ÇÇÑ °á°ú SetÀÌ ¸¹À¸¸é ±× °á°ú SetÀ» ³×Æ®¿öÅ©·Î ²ø¾î¿À°Å³ª È­¸é¿¡ »Ñ¸± ¶§ »ó´çÇÑ ½Ã°£ÀÌ ¼Ò¿äµÇ¹Ç·Î ¾÷¹«¿¡ ´ë´ÜÇÑ ÁöÀåÀ» ÃÊ·¡ÇÒ °¡´É¼ºÀÌ ÀÖ´Ù.

°á°ú SetÀÌ ¸¹À» °æ¿ì¿¡ ù ÆäÀÌÁöÀÇ °æ¿ì´Â »¡¸® ¶ã ¼ö ÀÖÀ¸³ª ¡®NEXT¡¯¸¦ ´©¸£¸é ´©¸¦¼ö·Ï ¼Óµµ ÀúÇϰ¡ ÀϾ°Ô µÇ´Â °ÍÀÌ´Ù. ±âÁ¸¿¡ µÇ¾î ÀÖ´ø ÇÁ·Î±×·¥ ¹æ½ÄÀº ÈçÈ÷ À¥ ÇÁ·Î±×·¥¿¡¼­ ¸¹ÀÌ º¼ ¼ö ÀÖ´Â °ÍÀε¥ Á¶°Ç¿¡ µû¶ó SQLÀ» Á¶ÇÕÇØ¼­ ¸¸µå´Â (if¡¦ else if¿¡ ÀÇÇØ SQLÀ» Á¶ÇÕ) Á¶ÇÕÇü SQLÀ» ±¸»çÇϰí ÀÖ´Ù. ÀÌ´Â µ¥ÀÌÅͺ£À̽º°¡ À¯ÀÏÇÏ°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Â SQL°ú ÀÏ¹Ý ·ÎÁ÷ ºÎºÐÀ» È¥¿ëÇØ¼­ ÀÌ¿ëÇϰí ÀÖ´Â °ÍÀÌ´Ù.

ÀÌ·¸°Ô µÇ¸é µ¥ÀÌÅͺ£À̽º´Â Á¶°Ç¿¡ µû¶ó ´Ù¾çÇÑ SQLÀ» ¹Þ¾ÆµéÀÌ°Ô µÇ°í ÀüüÀûÀ¸·Î Access Path°¡ ÃÖÀûÈ­µÇÁö ¸øÇÏ¿© Á¶°Ç¿¡ µû¶ó ¼º´É Â÷À̰¡ ½ÉÇØÁö°Ô µÈ´Ù. ¶ÇÇÑ °á°ú °Ç¼ö¿¡ µû¸¥ ºÎºÐ¹üÀ§ ó¸® ¹æ½ÄÀÇ ÇÁ·Î±×·¡¹Ö ¶ÇÇÑ ºÒ°¡´ÉÇÏ°Ô µÇ¾î µ¥ÀÌÅͺ£À̽º Áß½ÉÀÇ ÇÁ·Î±×·¡¹ÖÀÌ ¾Æ´Ñ ÀýÂ÷ÇüÀÇ ÇÁ·Î±×·¥ÀÌ µÇ´Â °ÍÀÌ´Ù.

°³¼±¹æ¾È
¡®Áֹεî·Ï¹øÈ£¡¯³ª ¡®Ä«µå¹øÈ£¡¯°¡ ÀÔ·ÂµÉ °æ¿ì´Â ÇöÀç ÇÁ·Î±×·¥ ¹æ½ÄÀ¸·Î ÀÌ¿ëÇØµµ º° ¹«¸®°¡ ¾ø¾î º¸ÀÌ°í ¡®°í°´¸í+Áֹεî·Ï¹øÈ£¡¯ÀÇ °æ¿ì´Â ¡®Áֹεî·Ï¹øÈ£¡¯ Á¶°ÇÀ¸·Î ´ëü ÀÌ¿ë °¡´ÉÇϹǷΠũ°Ô ¹®Á¦°¡ µÇÁö ¾ÊÀ» °ÍÀ¸·Î º¸À̳ª ¡®°í°´¸í+ÈÞ´ëÆù¡¯ ¶Ç´Â ¡®°í°´¸í+ÀÚÅÃÀüÈ­¹øÈ£¡¯ °°Àº °æ¿ì´Â ´ÙÀ½°ú °°ÀÌ ºÎºÐ¹üÀ§Ã³¸® ¹æ½ÄÀ¸·Î ÇÁ·Î±×·¥À» º¯°æÇØ¾ß ÇÑ´Ù. ¡®°í°´¸í¡¯ÀÌ µé¾î¿Ã ¶§ µ¿¸íÀÌÀÎÀÇ °æ¿ì ÈÞ´ëÆù ¹øÈ£¿Í Rowid °ªÀ» ÀÌ¿ëÇØ¼­ ±¸ºÐÇÏ¿© ÆäÀÌ¡À» ÇÑ´Ù.

¡®ºÎºÐ¹üÀ§Ã³¸®¡¯ ¹æ½ÄÀÇ ÇÁ·Î±×·¥À̶õ °³³äÀº °£´ÜÇϳª ±¸Çö¿¡ ÀÖ¾î °íµµÀÇ ±â¼úÀ» ¿äÇÏ´Â °ÍÀ¸·Î À¥ ÆäÀÌ¡ ó¸® ½Ã ÇÊ¿äÇÑ ºÎºÐ¸¸ µ¥ÀÌÅͺ£À̽º¿¡¼­ ÀÐ¾î ¿Ã ¼ö ÀÖ°Ô ±¸ÇöÇÏ´Â ¹æ½ÄÀ» ¸»ÇÑ´Ù(Áö¸é °ü°è»ó ¼¼ºÎ ³»¿ëÀº ¸ÞÀÏÀ̳ª ´Ù¸¥ Áö¸éÀ» ÅëÇØ ¼Ò°³Çϵµ·Ï ÇϰڴÙ). ±âÁ¸ ÇÁ·Î±×·¥À» ¡®ºÎºÐ¹üÀ§Ã³¸®¡¯ ¹æ½ÄÀ¸·Î ÇÊÀÚ°¡ ±¸ÇöÇÑ ³»¿ëÀ» ¼Ò°³ÇÑ´Ù.

1) °í°´¸í+ÈÞ´ëÆù
select rnum, row_id, cardno, cust_id, cust_nm, rsno,
  tel_no, cell_tel_no, loc_id1, loc_nm, addr1
from ( select /*+ driving_site(a) index(a rm501m_idx04) */
  rownum rnum, rowidtochar(rowid) row_id,
  (select mbrcard_no
    from rm507T b
  where b.cls_dt = '99991231'
    and b.cust_id = a.cust_id) cardno,
    cust_id, cust_nm, decode(rsno,'XXXXXXXXXXXXX','',rsno) rsno,
      tel_no, cell_tel_no, loc_id1,
  (select full_nm
    from cm501c c
    where c.loc_id = a.loc_id1) loc_nm, addr1
    from rm501m a
    where upper(:sw) = 'FIRST'
      and a.cust_nm = :cust_nm and a.cell_tel_no like :cell_tell_no1||'%'
      and rownum <= 51
  )

select rnum, row_id, cardno, cust_id, cust_nm, rsno,
  tel_no, cell_tel_no, loc_id1, loc_nm, addr1
from (select /*+ driving_site(a) index(a rm501m_idx04) */
  rownum rnum, rowidtochar(rowid) row_id,
  (select mbrcard_no from rm507T b
where b.cls_dt = '99991231'
  and b.cust_id = a.cust_id) cardno,
  cust_id, cust_nm, decode(rsno,'XXXXXXXXXXXXX','',rsno) rsno,
tel_no, cell_tel_no, loc_id1,
  (select full_nm
    from cm501c c
    where c.loc_id = a.loc_id1) loc_nm, addr1
      from rm501m a
      where upper(:sw) = 'NEXT'
        and a.cust_nm = :cust_nm
        and (a.cell_tel_no > :cell_tell_no or (a.cell_tel_no =
          :cell_tell_no and a.rowid >= chartorowid(:row_id)))
        and a.cell_tel_no like :cell_tell_no1||'%'
        and rownum <= 51
union all
select /*+ driving_site(a) index_desc (a rm501m_idx04) */
  (52 - rownum) rnum, rowidtochar(rowid) row_id,
  (select mbrcard_no
    from rm507T b
    where b.cls_dt = '99991231'
    and b.cust_id = a.cust_id) cardno,
    cust_id, cust_nm, decode(rsno,'XXXXXXXXXXXXX','',rsno) rsno,
    tel_no, cell_tel_no, loc_id1,
    (select full_nm
      from cm501c c
      where c.loc_id = a.loc_id1) loc_nm, addr1
      from rm501m a
      where upper(:sw) = 'PREV'
      and a.cust_nm = :cust_nm
      and (a.cell_tel_no < :cell_tell_no or (a.cell_tel_no =
        :cell_tell_no and a.rowid <= chartorowid(:row_id)))
      and a.cell_tel_no like :cell_tell_no1||'%'
      and rownum <= 51
    )
order by rnum

2) °í°´¸í+ÀÚÅÃÀüÈ­¹øÈ£
select rnum, row_id, cardno, cust_id, cust_nm, rsno,
  tel_no, cell_tel_no, loc_id1, loc_nm, addr1
from ( select /*+ driving_site(a) index(a rm501m_idx04) */
  rownum rnum, rowidtochar(rowid) row_id,
  (select mbrcard_no
    from rm507T b
    where b.cls_dt = '99991231'
    and b.cust_id = a.cust_id) cardno,
    cust_id, cust_nm, decode(rsno,'XXXXXXXXXXXXX','',rsno) rsno,
  tel_no, cell_tel_no, loc_id1,
  (select full_nm
    from cm501c c
    where c.loc_id = a.loc_id1) loc_nm, addr1
      from rm501m a
      where upper(:sw) = 'FIRST'
        and a.cust_nm = :cust_nm and a.tel_no like :cell_tell_no1||'%'
        and rownum <= 51
  )

select rnum, row_id, cardno, cust_id, cust_nm, rsno,
  tel_no, cell_tel_no, loc_id1, loc_nm, addr1
from (select /*+ driving_site(a) index(a rm501m_idx04) */
  rownum rnum, rowidtochar(rowid) row_id,
  (select mbrcard_no from rm507T b
  where b.cls_dt = '99991231'
    and b.cust_id = a.cust_id) cardno, cust_id, cust_nm,
    decode(rsno,'XXXXXXXXXXXXX','',rsno) rsno, tel_no, cell_tel_no, loc_id1,
      (select full_nm from cm501c c
      where c.loc_id = a.loc_id1) loc_nm, addr1
      from rm501m a
    where upper(:sw) = 'NEXT'
      and a.cust_nm = :cust_nm
      and (a.tel_no > :tell_no or (a.tel_no = :tell_no and a.rowid >=
        chartorowid(:row_id)))
      and a.tel_no like :tell_no1||'%'
      and rownum <= 51
  union all
  select /*+ driving_site(a) index_desc (a rm501m_idx04) */
    (52 - rownum) rnum, rowidtochar(rowid) row_id,
    (select mbrcard_no
      from rm507T b
      where b.cls_dt = '99991231'
      and b.cust_id = a.cust_id) cardno,
      cust_id, cust_nm,
      decode(rsno,'XXXXXXXXXXXXX','',rsno) rsno,
      tel_no, cell_tel_no, loc_id1,
      (select full_nm
        from cm501c c
        where c.loc_id = a.loc_id1) loc_nm, addr1
        from rm501m a
        where upper(:sw) = 'PREV'
        and a.cust_nm = :cust_nm
        and (a.tel_no < :tell_no or (a.tel_no = :tell_no and a.rowid <=
          chartorowid(:row_id)))
        and a.tel_no like :tell_no1||'%'
        and rownum <= 51
      )
order by rnum

ÀÌ ¹æ½ÄÀº ´Ù¾çÇÑ Á¶°ÇÀ» À妽º¸¦ ÀÌ¿ëÇÏ¿© Access Path¸¦ °íÁ¤½ÃŰ°í ¡®NEXT¡¯¸¦ ´©¸¦ °æ¿ì ÇØ´çÇϴ Ű °ªÀ» ³Ñ°ÜÁÖ¾î È­¸éÀÇ °³¼ö¸¸Å­¸¸ DB¸¦ AccessÇϵµ·Ï ÇÏ´Â ¹æ½ÄÀÌ´Ù. º» ³»¿ëÀ» ÇöÀç ´Ù ÀÌÇØÇÏÁö ¸øÇÏ¿©µµ »ó°üÀÌ ¾ø´Ù. ÀÌ·± ¹æ½ÄÀÌ ÀÖ´Ù°í ÇÏ´Â °Í¸¸ ¾Ë°Ô µÈ´Ù¸é µ¶ÀÚ ¿©·¯ºÐÀº ±× ¸ñÀûÀ» ´ÙÇß´Ù°í »ý°¢ÇÑ´Ù.

¿¹ 3. ±²ÀåÈ÷ ´Ù¾çÇÑ °Ë»öÁ¶°ÇÀÇ È­¸éÀÇ °æ¿ì

<È­¸é 3> Á¶°ÇÀÌ ´Ù¾çÇÑ °Ë»öÇÁ·Î±×·¥

ÀÌ ÇÁ·Î±×·¥Àº óÀ½¿¡ ¼Ò°³ÇÑ ¿¹Á¦ÀÇ »ó¼¼ °Ë»ö È­¸é¿¡ ÇØ´çµÈ´Ù. Áï, ¡®È¸¿ø¡¯ÀÇ °¡ÀÔ´ç½ÃÀÇ ¿©·¯ Á¶°ÇµéÀ» ´Ù¾çÇÏ°Ô °Ë»öÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÑ È­¸éÀÎ °ÍÀÌ´Ù.

ÀÌ·± È­¸éÀ» ±¸¼ºÇÒ ¶§ °³¹ßÀÚµéÀº µ¥ÀÌÅͺ£À̽º À§ÁÖÀÇ ÇÁ·Î±×·¥ÀÌ ºÒ°¡´ÉÇÏ´Ù°í »ý°¢Çϰí ÀÖ°í ·ÎÁ÷ À§ÁÖÀÇ ÇÁ·Î±×·¥À» ±¸»çÇϸ鼭 °³¹ßÀÚ ÆíÀÇÀÇ ÇÁ·Î±×·¥À» Â¥°í ÀÖ´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·± º¹ÀâÇÑ ÇÁ·Î±×·¥Àϼö·Ï µ¥ÀÌÅͺ£À̽º À§ÁÖÀÇ Áï, SQL À§ÁÖÀÇ ÇÁ·Î±×·¥À» ±¸»çÇØ¾ß ÇÁ·Î±×·¥ÀÌ ´Ü¼øÇØÁö°í ¼º´É»óÀÇ À§·ÂÀ» ¹ßÈÖÇÒ ¼ö ÀÖÀ¸¸ç µ¥ÀÌÅÍÀÇ Á¤È®µµ¿Í Â÷ÈÄ º¯°æ»çÇ×ÀÇ À¯Áöº¸¼ö µîÀÌ ÁÁ¾ÆÁö°Ô µÈ´Ù.

ÀÏ´Ü ÀÌ·¸°Ô º¹ÀâÇÏ°Ô ±¸¼ºÇØ¾ß ÇÏ´Â ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°Àº ´Ü¼øÇÑ ÀýÂ÷¸¦ »ý°¢ÇÏ¸é µÈ´Ù.

* ¡®Mandatory¡¯Á¶°ÇÀ» ÆÄ¾ÇÇÏ¿© ¡®Mandatory¡¯Á¶°Ç Áß µå¶óÀ̺ù ÆÑÅ͸¦ ¼±Á¤ÇÑ´Ù.
* ¡®°á°ú °Ç¼ö¡¯¿¡ µû¶ó Mandatory Á¶°Ç Ãß°¡ ¶Ç´Â ºÎºÐ¹üÀ§Ã³¸® °áÁ¤
* µå¶óÀ̺ù ÆÑÅÍ¿Í ÇÊÅ͸µ Á¶°ÇÀ» ºÐ¸®ÇÏ¿© µå¶óÀ̺ù ÆÑÅÍ´Â Nested LoopsÀÇ Á¶°ÇÀ¸·Î ÀÌ¿ëÇÏ°í ³ª¸ÓÁö Á¶°ÇµéÀº ÇÊÅ͸µÇÏ´Â Á¶°ÇÀ¸·Î ±¸ºÐÇÑ´Ù.
* À妽º Àü·«À» ¼ö¸³ÇÑ´Ù.
* µå¶óÀ̺ù ÆÑÅÍ¿Í ÇÊÅ͸µ ÆÑÅ͸¦ Àß Å» ¼ö ÀÖµµ·Ï °¡´ÉÇÑ One-SQL·Î ±¸¼ºÇÑ´Ù.

Tuned-SQL
select /*+ ordered use_nl(b a c) index(a BONGSAJA_IDX3)
    index(c ACTION_BUN_PK) index(f center_uk)*/
  rownum rnum, bm_regdate, bm_name, to_number(to_char(sysdate, 'yyyy')) -
  to_number((case when substr(a.bm_jumin,7,1) in ('1','2') then '19'
    when substr(a.bm_jumin,7,1) in ('3','4') then
      '20' end)||substr(a.bm_jumin,1,2)) age,
  bm_addr1, bm_addr2, bm_tel,
    decode(a.actb_code, null, null,substr(c.actb_desc,1,2)
      ||'-'||d.actp_desc||'-'||decode(instr(e.actw_desc,
      '('), 0, e.actw_desc, substr(e.actw_desc, 1,
      instr(e.actw_desc, '(')-1))) action,
    f.cent_name, bm_jumin, bm_school, job_code, bm_mtel, bm_email,
    g.bg_name, a.bm_actday, substr(a.bm_facttime,1,2)||':'||
      substr(a.bm_facttime,3,2)||'~'
    ||substr(a.bm_tacttime,1,2)||':'||substr(a.bm_tacttime,3,2) act_time,
    h.KYUNG_DESC, a.BM_JONGKYO, a.bm_birthday, a.BM_WEDINGDAY,
      a.birth_chk, a.bm_marry, a.bm_jumin jumin
from bongsaja a,
  action_bun c,
  action_prog d,
  action_work e,
  center f,
  bong_group g,
  kyungro h
where a.cent_sigun = :cent_sigun
  and (a.bm_name > :start_name or (a.bm_name = :start_name
      and a.bm_jumin >= :start_jumin))
  and a.bm_state in (decode(:state,'1','1','5','1'),
    decode(:state,'2','2','5','2'),
    decode(:state,'3','3','5','3'),
    decode(:state,'4','4','5','4'),
    decode(:state,'5','5') )
  and a.bm_regdate between :from_date and :to_date
  and a.bm_sex like decode(:sex, '³²', '1', '¿©', '2', '%')
  and a.bm_school like :school||'%'
  and a.job_code like :job||'%'
  and a.group_check like :grp||'%'
  and ((:insu_chk = '1' and a.insu_chk = '1'
  and nvl(:insu_fdate, '00000000') <= insu_tdate
  and insu_fdate <= nvl(:insu_tdate, '99999999'))
    or (:insu_chk = '2' and a.insu_chk is null)
    or (:insu_chk = '3' and a.insu_chk like '%')
)
¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦
and rownum <= 5
¡¡
ÀÌ ºÎºÐµµ ¡®ºÎºÐ¹üÀ§Ã³¸®¡¯ ¹æ½ÄÀ¸·Î ±¸ÇöÇÑ °ÍÀ¸·Î ·ÎÁ÷À¸·Î ¹ØÁÙ·Î µÇ¾î ÀÖ´Â ºÎºÐÀÌ µå¶óÀ̺ù ÆÑÅÍÀÌ°í ³ª¸ÓÁö Á¶°ÇµéÀº ÀüºÎ ÇÊÅ͸µ ÆÑÅÍ¿¡ ÇØ´çµÈ´Ù. ±¸»çÇß´ø ºÎºÐÀ» SQL·Î ±¸ÇöÇÏ´Â °ÍÀº ½±Áö ¾ÊÁö¸¸ ¡®»ý°¢ÀÇ Àüȯ¡¯À» ÇÏ°Ô µÇ¸é ±×¸® ¾î·Á¿î ºÎºÐµµ ¾Æ´Ï´Ù. ÇÊÀÚ´Â °°ÀÌ ÇÁ·ÎÁ§Æ®¸¦ Çß´ø °³¹ßÀÚµéÀÌ ÇÁ·ÎÁ§Æ® Á¾·á½ÃÁ¡¿¡ ³î¶ö¸¸ÇÑ SQL ±¸»ç ´É·Â Çâ»óÀ» °¡Á®¿Â °ÍÀ» ¿©·¯ ¹ø °æÇèÇß´Ù.

¿¹ 4. À妽º Àü·«ÀÇ ºÎÀç·Î ¼º´ÉÀúÇϰ¡ ÀÖ´Â °æ¿ì

<È­¸é 4> »óǰÁ¶È¸ ÇÁ·Î±×·¥

ÀÌ ÇÁ·Î±×·¥Àº ¾î´À À¯Åëȸ»ç¿¡¼­ ¡®»óǰ¡¯À» Á¶È¸ÇÏ´Â °£´ÜÇÑ È­¸éÀ¸·Î ȸ»çÀÇ Æ¯¼º»ó °ü¸®ÇÏ´Â »óǰÀÇ Á¾·ù¿Í ¼ö°¡ ¸¹°í ´ëºÎºÐÀÇ ¾÷¹« ÀÚü°¡ ÀÌ »óǰÀ» °ü¸®ÇÏ´Â °ÍÀÌ´Ù º¸´Ï ÀÌ °£´ÜÇÑ ÇÁ·Î±×·¥À» Á¦ÀÏ ¸¹ÀÌ »ç¿ëÇϸ鼭µµ ¼º´É ÀúÇϰ¡ °¡Àå ¸¹ÀÌ µÇ°í ÀÖ´Â ÇÁ·Î±×·¥À̾ú´Ù. ¿¹¸¦ µé¾î ¾ÕÀÇ È­¸é¿¡¼­ ¡®¸ÞÀÌÄ¿¡¯¿Í ¡®Ç°¸ñ¡¯Á¶°Ç¿¡ µÑ Áß Çϳª¸¸ µé¾î¿Íµµ ½ÇÇàÀÌ °¡´ÉÇÏ´Ù°í ÇØº¸¸é, ¡®¸ÞÀÌÄ¿¡¯ÀÇ Á¶°Ç¿¡ ¡®»ï¼º¡¯À̶ó´Â °ªÀ» ÁÖ°í Á¶È¸¸¦ ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ÀÌ·± Çö»óÀÌ ¹ß»ýÇÑ´Ù¸é ÀÌ ½Ã½ºÅÛÀÇ ¹®Á¦´Â ½É°¢ÇØÁø´Ù. ±×·±µ¥ À̰ÍÀÌ ½ÇÁ¦ »ç·ÊÀÌ´Ù.

±âÁ¸ ÇÁ·Î±×·¥
SELECT COUNT(*) total_cnt
  FROM (SELECT C.MODELCD MODEL_CODE, 'Y' IMG_FLAG
    FROM HI_SECT A,
      HI_SECT B,
      HI_PRDITM C,
      HI_PRC E
    WHERE A.SECTID = B.PRSTID
      AND A.LBL = 2
      AND B.SECTID = C.SECTPRSTID
      AND B.LBL = 3
      AND C.ACCEPTFLAG = 'Y'
      AND C.SALEFLAG = 'Y'
      AND C.PRDITMID = E.PRDITMID
      AND E.NORMAL_PRC > 0
      AND A.DBSTS = 'A'
      AND B.DBSTS = 'A'
      AND C.DBSTS = 'A'
      AND E.DBSTS = 'A'
    AND C.MFR LIKE '»ï¼º%'
      UNION
      SELECT a.MDLCD MODEL_CODE, 'N' IMG_FLAG
        FROM SC011M a, SC013M b, SC010C c, CM101C d
      WHERE b.MDLCD = a.MDLCD
        AND c.PRDCLS_CD = substr(a.PRDCLS, 1, 2)
        AND d.VEND_NO = a.MAKR_CD
        AND a.DATA_REGDT >= to_char(sysdate - 30, 'YYYYMMDDHH24MISS')
        AND b.AVCLDT = '99991231'
        AND d.VEND_NM like '»ï¼º%'
  )

¹®Á¦Á¡ ¹× ¿øÀÎ
»ó±â ÇÁ·Î±×·¥Àº »óǰÁ¶È¸ È­¸é¿¡¼­ ¾²ÀÌ´Â ÇÁ·Î±×·¥À¸·Î »óǰÀÇ ¡®¸ÞÀÌÄ¿¡¯ ¶Ç´Â ¡®Ç°¸ñ¡¯À» Á¶È¸Á¶°ÇÀ¸·Î Çϰí ÀÖ´Ù. Á¶°ÇÀ¸·Î µé¾î¿Â ¡®»ï¼º¡¯À̶ó´Â ¸ÞÀÌÄ¿¿¡ ÇØ´çµÇ´Â µ¥ÀÌÅÍ·®Àº ¾öû³ª´Ù. Áï, ¡®»ï¼ºÀÇ ¸ðµç »óǰÀ» Á¶È¸¡¯ÇÏ´Â °á°ú°¡ µÇ´Â °ÍÀÌ´Ù. µû¶ó¼­ µ¥ÀÌÅͺ£À̽º¸¦ ¿¢¼¼½ºÇÏ¿© È­¸é¿¡ »Ñ¸®´Â µ¥´Â »ó´çÇÑ ½Ã°£ÀÌ °É¸®°í ÀÖ´Â °ÍÀÌ´Ù.

°³¼±¹æ¾È
¡®¸ÞÀÌÄ¿¡¯³ª ¡®Ç°¸ñ¡¯ µÎ Á¶°ÇÀ» ¸ðµÎ Madatory Á¶°ÇÀ¸·Î º¯°æÇÏ°í ¡®¸ÞÀÌÄ¿¡¯ ºÎºÐÀº µ¥ÀÌÅͺ£À̽º¿¡¼­ ¡®=¡¯·Î ¿¢¼¼½ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ¸ç ¡®¸ÞÀÌÄ¿¡¯+ ¡®Ç°¸ñ¡¯À¸·Î °áÇÕ À妽º¸¦ ±¸¼ºÇÏ¿© °á°ú Row ¼ö°¡ ÃÖ¼ÒÈ­µÇµµ·Ï À¯µµÇÏ¿© ºü¸¥ ÀÀ´ä½Ã°£À» À¯µµÇÑ´Ù.

SELECT COUNT(*) total_cnt
  FROM ( SELECT /*+ ordered use_nl(c a b e) */
    C.MODELCD ODEL_CODE, 'Y' IMG_FLAG
    FROM HI_PRDITM C,
      HI_SECT A,
      HI_SECT B,
      HI_PRC E
    WHERE A.SECTID = B.PRSTID
      AND A.LBL = 2
      AND B.SECTID = C.SECTPRSTID
      AND B.LBL = 3
      AND C.ACCEPTFLAG = 'Y'
      AND C.SALEFLAG = 'Y'
      AND C.PRDITMID = E.PRDITMID
      AND E.NORMAL_PRC > 0
      AND A.DBSTS = 'A'
      AND B.DBSTS = 'A'
      AND C.DBSTS = 'A'
      AND E.DBSTS = 'A'
      AND C.CREDATE >= TO_CHAR(SYSDATE-30, 'YYYYMMDDHH24MISS')
    AND C.MFR = '»ï¼º'
    AND A.NAME LIKE '¼¼Å¹±â%'
      UNION
      SELECT /*+ ordered use_nl(a b c d) driving_site(a) */
        a.MDLCD MODEL_CODE, 'N' IMG_FLAG
        FROM SC011M a, SC013M b, SC010C c, CM101C d
        WHERE b.MDLCD = a.MDLCD
          AND c.PRDCLS_CD = substr(a.PRDCLS, 1, 2)
          AND d.VEND_NO = a.MAKR_CD
          AND a.DATA_REGDT >= to_char(sysdate - 30, 'YYYYMMDDHH24MISS')
          AND b.AVCLDT = '99991231'
          AND d.VEND_NM like '»ï¼º%'
          AND c.PRDCLS_KORNM like '¼¼Å¹±â%'
  )

Áö±Ý±îÁö ÇÊÀÚ°¡ ½ÇÁ¦·Î °æÇèÇß´ø °£´ÜÇÑ ¸î °³ÀÇ ¿¹Á¦µéÀ» ÅëÇØ RDBMS¿¡ ±â¹ÝÀ» µÎ¾î ¼º´É°³¼±À» ÇÑ »ç·Ê¸¦ »ìÆì º¸¾Ò´Ù. µ¥ÀÌÅͺ£À̽º ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀº °áÄÚ ¾î·ÆÁö ¾Ê´Ù. ´Ù¸¸ ´ëºÎºÐÀÇ °³¹ßÀÚµéÀÌ Á¢±ÙÀ» À߸øÇϰí ÀÖÀ» »ÓÀÌ´Ù. ±×¸®°í ¾ÕÀÇ »ç·ÊµéÀ» ÇöÀç 100% ¼³¸íÇϱâ¶õ Áö¸é°ü°è»ó ºÒ°¡´ÉÇÑ Á¡À» ¾ÈŸ±õ°Ô »ý°¢ÇÑ´Ù. ÇÏÁö¸¸ À̹ø ¿¬À縦 ÅëÇØ µ¥ÀÌÅͺ£À̽º ÄÁ¼³ÆÃ ¿µ¿ª¿¡ ´ëÇØ °ø°¨À» Çß´Ù¸é ÇÊÀÚÀÇ ¸ñÀûÀ» ´Þ¼ºÇÑ °ÍÀ̶ó »ý°¢ÇÑ´Ù. ÀÚ¼¼ÇÑ ±â¼úÀûÀÎ ¹®Á¦µéÀº ´ÙÀ½ ±âȸ°¡ µÇ¸é ÀÚ¼¼È÷ ¼³¸íÇϰڴÙ.

ÀÌ·Î½á º» ¿¬Àç°¡ ¿©·¯ ÀÚµ¿È­µÈ ÅøÀ» ´Ü¼øÈ÷ ÀÌ¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ñ Á¾ÇÕÀûÀ̰í Ȱ¿ëÀûÀÎ µ¥ÀÌÅͺ£À̽º ¼º´É°ü¸® ¿µ¿ªÀÇ ¼Ò°³°¡ µÇ¾úÀ¸¸é ÇÏ´Â ¹Ù¶÷ÀÌ´Ù. ¶ÇÇÑ ÁøÁ¤ÇÑ µ¥ÀÌÅͺ£À̽º »ç¿ë Àü¹®°¡µéÀÌ ¸¹ÀÌ ³ªÅ¸³ª±æ ±â´ëÇÏ´Â ¸¶À½À¸·Î ¿¬À縦 ¸¶Ä£´Ù.@

* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
°ü·Ã±â»ç
[DB ¼º´É°ü¸® 2% ä¿ì±â] ¨ç ÀÚµ¿È­ ÅøÀÇ ÇѰè
¡¸°´Ã¼ ÁöÇâ ¹æ¹ý·Ð¡¹À¸·Î â°í ¼Ó Á¤º¸ ²¨³»±â
µ¥ÀÌÅͺ£À̽º Áø´Ü, ¸¸º´ÅëÄ¡¾à ¹Ù¶óÁö ¸»¶ó
[SQL ¼­¹ö 2005 ½ÇÀü Ȱ¿ë] ¨ç ´õ °­·ÂÇØÁø T-SQL
ü°èÀûÀÎ µ¥ÀÌÅÍ Ç°Áú °ü¸®¡¸´ë¾È ã¾Æ¶ó¡¹
[MFC·Î ±¸ÇöÇÏ´Â DB ÇÁ·Î±×·¡¹Ö] ¨ç ·ÎÄà Á¦Æ®¿£Áø DAO
[¿À¶óŬ 10g¿Í ±×¸®µå] ¨ç ÀÚ°¡ °ü¸® DB ½Ã½ºÅÛ
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
[DDD ¨è] UI ÇÁ·ÎÅäŸÀÌÇÎ
[DDD ¨ç] µµ¸ÞÀÎ ÁÖµµ °³¹ß
°¡»óÈ­¿¡ ½ÇÆÐÇÏ´Â 10°¡Áö ÀÌÀ¯
[Ã¥¼Ò°³]ÇÁ¸®Á¨Å×ÀÌ¼Ç Á¨: »ý°¢À»...
[±â°í]±×¸° ½ºÅ丮Áö·Î °¡´Â±æ
[Ã¥¼Ò°³] À¥ °³¹ßÀÚ¸¦ À§ÇÑ ½ºÇÁ...
À©µµ¿ìCE µð¹ö±ë¿¡ °üÇÑ 12°¡Áö...
[Å×Å©º¸µå ½ÃÁð3]MS, ´ÑÅÙµµ À§(Wii)¿¡ 'ÃÊ´ëÇü ¾÷µ¥ÀÌÆ®'·Î ¸ÂºÒÀü [00:08:26]
±âȹ ·ùÁØ¿µ ±âÀÚ, ÁøÇà ¹ÚÀ±¹Ì, Á¦ÀÛ À¯È¸Çö PD
[CNET ¿µ¹®¹æ¼Û]3G¾ÆÀÌÆù ¸ÅÀ帶´Ù 'ºÏÀûºÏÀû'¡¦ÀϺΠ¸ÅÀå ǰ±ÍÇö»óµµ [00:01:56]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
Á¶Áßµ¿, ´ÙÀ½¿¡ ´º½º°ø±Þ Áß´Ü¡¦"...
º¸¾È°­È­ ±¸±Û ¡°À©µµ ¹ö¸®°í À¥À¸...
¡®³ªÈ¦·Î ¾×ƼºêX¡¯¡¦¼¼°è ÀÎÅͳݰú...
¡®À©µµXP¡¯½Ã´ë Æó¸·, »ç¿ëÀÚ¿¡°Ô...
ÀÎÅÍ³Ý ¹ðÅ· ºê¶ó¿ìÀú´Â µû·Î ÀÖ´Ù...
´ÙÀ½ vs Á¶Áßµ¿, Á¤¸éÃæµ¹·Î Ä¡...
ÆÃÅ©¿þ¾î, ¾ÆÀ̳ªºñ 7¿ù ¾÷µ¥ÀÌÆ®...
Çѱ¹IBM, 23ÀÏ 'ºò±×¸°2.0...
ÆÇµµ¶óTV, e½ºÆ÷Ã÷ ±¹°¡´ëÇ¥ ¼±...
ÆæÅ¸½Ã½ºÅÛ, BI ¼Ö·ç¼Ç »ç¾÷ °­...
½Ã¸¸ÅØ, ³×Æ®¿öÅ© Á¢±Ù Á¦¾î CC...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.