lecture Home > ASP Tips > ASP Class

ASP ¿ë µ¥ÀÌÅͺ£À̽º µµ¿ì¹Ì : DBHelper Ŭ·¡½º

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2006³â 04¿ù 15ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2006³â 04¿ù 18ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

   ÀÛ¼ºÀÚ : Lancers(¾È Àç¿ì)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : ASP¿¡ DB Access Helper Ŭ·¡½º Àû¿ë Æ©´×±â 

°­Á Àü Å¿ÀÀÇ Àâ´ã>

Á¦°¡ ¾ÈÀç¿ì´ÔÀÇ ÀÛǰÀ» ¼Ò°³ÇÏ´Â °­Á¸¦ ¿Ã·È´õ´Ï¸¸, ±Ý»õ ¾ÈÀç¿ì´ÔÀÌ Ãß°¡ÀûÀÎ ¿©·¯ Á¶¾ðÀÌ ´ã±ä ±ÛÀ» ÀÚ½ÅÀÇ ºí·Î±×¿¡ °ÔÀçÇ߳׿ä. ÁÁÀº ³»¿ëÀÌ ¸¹Àº µí ÇÏ¿©, Çã°¡¸¦ ¹Þ°í Å¿À »çÀÌÆ®¿¡µµ ±× ±ÛÀ» °­ÁÂÇü½ÄÀ¸·Î ¿Ã·Áº¾´Ï´Ù. ^^

ÀÌ °­Á´ ÀÌÀü °­ÁÂÀÎ "ASP¿¡¼­ Ŭ·¡½º ´Ù·ç±â ¹× DB Access Helper ¼Ò½º°ø°³!"ÀÇ º¸¿Ï °­ÁÂÀÔ´Ï´Ù.
ÀÌ Ä÷³À» Àбâ ÀüÀ̳ª ÀÐÀº ÈÄ¿¡ °ü½ÉÀÌ ¸¶±¸¸¶±¸ »ý°Ü³­´Ù¸é~ Çѹø ÀоîºÁ Áֽñ⠹ٶø´Ï´Ù.

Âü°í·Î, ¾ÈÀç¿ì´ÔÀÇ ºí·Î±×´Â http://blog.naver.com/saltynut/ÀÔ´Ï´Ù.
.NET °ü·Ã ½Å±â¼ú ¹× WinFX¿¡ ´ëÇÑ ´Ù¾çÇÑ Ä÷³ÀÌ ¿Ã¶ó¿ÍÀÖ´Â Áß¿äüũ »çÀÌÆ®À̱⵵ ÇÕ´Ï´Ù
¶ÇÇÑ, ºí·Î±×¿¡ ¿Ã¶ó¿ÍÀÖ´Â ¿øº» ±ÛÀº http://blog.naver.com/saltynut/120023627497 ÀÔ´Ï´Ù.


½ÇÀº ¾ó¸¶Àü Taeyo(±èÅ¿µ)¾¾°¡ ¿äûÀ» ÇØ¼­ ¿¹Àü S»çÀÇ Æ©´× ÇÁ·ÎÁ§Æ®¿¡¼­ ¸¸µé¾ú´ø DBHelper¶ó´Â ASP¿ë µ¥ÀÌÅÍ ¾×¼¼½º ÇïÆÛ Ŭ·¡½º¸¦ ÅÂ¿ä »çÀÌÆ®¿¡ °ø°³Çß½À´Ï´Ù. ±×·¨´õ´Ï, ¸¹Àº ºÐµéÀÌ ±×¿¡ ´ëÇÑ °ü½ÉÀ» º¸¿©¼­ ¿ø Á¦ÀÛÀڷμ­ ¹º°¡ÀÇ Ä¿¸àÆ®°¡ ÇÊ¿äÇÑ °Í °°´Ù´Â ´À³¦ÀÌ µé´õ¶ó±¸¿ä. ÇØ¼­ ÀÌ ±ÛÀ» ÁغñÇÏ°Ô µÇ¾ú½À´Ï´Ù.

±âÁ¸ °­Á¿¡¼­ ¼³¸íÇÑ ´ë·Î »ç½Ç DBHelper´Â º°´Ù¸¥ ´ë´ÜÇÑ ³à¼®Àº ¾Æ´Õ´Ï´Ù. ´ÜÁö ASP¿¡¼­ ±ÇÀåµÇ´Â µ¥ÀÌÅÍ ¾×¼¼½º ±â¹ýµéÀ» Ȱ¿ëÇØ¼­ À¯Æ¿¸®Æ¼ ÇÔ¼öµéÀ» ¹­Àº ½ºÅ©¸³Æ® Ŭ·¡½º¿¡ ºÒ°úÇÕ´Ï´Ù. »ç½Ç Ŭ·¡½º ÀÚüº¸´Ù´Â ±×·¯ÇÑ ¹ÙÅÁÀÌ µÇ´Â ±â¹ýµéÀÌ ¹«¾ùÀÌ°í ¿Ö-¾î°¼­ ÀÌ·± ±â¹ýµéÀ» »ç¿ëÇØ¾ß ÇÏ´ÂÁö°¡ ´õ¿í Áß¿äÇÑ °ÍÀ̰ÚÁÒ.

À̹ø ±Û¿¡¼­´Â ½ÇÁ¦ Æ©´× ÇÁ·ÎÁ§Æ® »ç·Ê¸¦ ¹ÙÅÁÀ¸·Î Æ©´× ½Ã³ª¸®¿À, ASP µ¥ÀÌÅÍ ¾×¼¼½º ±â¹ý ¹× ÆÁ, ±×¸®°í DBHelper¿¡ ´ëÇØ ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù.

1. ÇÁ·ÎÁ§Æ®ÀÇ ¹è°æ

S»ç´Â Windows 2000, IIS 5.0ÀÎ À¥ ¼­¹ö 10´ë, Windows 2000, SQL 2000 Enterprise·Î Ŭ·¯½ºÅ͸µµÈ DB ¼­¹ö 2´ë·Î ¿î¿µµÇ´Â ÁßÇü ±Ô¸ðÀÇ ASP »çÀÌÆ®¿´½À´Ï´Ù. S»ç¿¡¼­ Á¦±âÇØ ¿Â ¹®Á¦´Â ¼­¹öÀÇ ¼º´ÉÀÌ ³Ê¹« ¶³¾îÁø´Ù´Â °ÍÀ̾ú½À´Ï´Ù. Á¶»ç °á°ú À¥ ¼­¹öÀÇ ºÎÇÏ´Â »ó´çÈ÷ ³·Àº ÆíÀε¥ ºñÇØ DB ¼­¹öÀÇ ºÎÇϰ¡ »ó´çÈ÷ ³ôÀº ÆíÀ̾ú½À´Ï´Ù. »ç¿ëÀÚ°¡ ´Ã¾î³ª¸é¼­ ÀÌ·¯ÇÑ ¼º´É ¹®Á¦´Â Á¡Á¡ ´õ ½É°¢ÇØÁ³°í, ±×¿¡ µû¸¥ Capacity ÇÑ°è ¶§¹®¿¡ S»ç´Â W2K-IIS-ASP-SQL ±â¹ÝÀÇ Ç÷§Æû¿¡ ÀDZ¸½ÉÀ» °¡Áö°í ÀÖ´ø »óȲÀ̾ú½À´Ï´Ù.

³íÀÇ °á°ú 2°¡Áö »çÇ׿¡ Å©°Ô ÁÖ¸ñÇÏ°Ô µÇ¾ú½À´Ï´Ù.

ù°´Â DB ³»ºÎÀÇ ¹®Á¦ÀÔ´Ï´Ù. DB ±¸Á¶ ÀÚü°¡ À߸ø µÇ¾ú°Å³ª, À妽º°¡ °É·Á ÀÖÁö ¾Ê°Å³ª ȤÀº À߸ø °É·Á ÀÖ´Â °æ¿ì, ±×¸®°í DB ±¸Á¶ ¶§¹®¿¡ Äõ¸® ÀÚü°¡ »ó´çÈ÷ º¹ÀâÇÑ °æ¿ì µîÀÔ´Ï´Ù. Áï ÀÌ °æ¿ì´Â È¿À²ÀûÀÎ DB Æ©´×À» ÅëÇØ ¼º´ÉÀ» °³¼±ÇÒ ¼ö ÀÖ½À´Ï´Ù. Å×ÀÌºí ±¸Á¶ º¯°æ, À妽Ì, ÀÚÁÖ »ç¿ëÇÏ´Â Äõ¸®¸¦ SP·Î º¯È¯ÇÏ´Â °Í µîÀÌ ÇØ´ç ÀÛ¾÷ÀÌ µÇ°Ú½À´Ï´Ù.

µÑ°´Â À¥ ¼­¹öÀÇ ºÎÇϰ¡ ³Ê¹« Àû´Ù´Â °ÍÀÔ´Ï´Ù. S»çÀÇ °æ¿ì ºÎÇϰ¡ ¸Å¿ì DB ¼­¹ö¿¡ ÆíÁߵǾî ÀÖÀ¸¹Ç·Î, À̸¦ À¥ ¼­¹ö¿¡ ºÐ´ã½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀ» °í·ÁÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù°í ÆÇ´ÜµÇ¾ú½À´Ï´Ù. À̸¦ À§Çؼ­´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ Äڵ带 ºÐ¼®Çϰí, µ¥ÀÌÅÍ ¾×¼¼½º¸¦ ¾î¶»°Ô Çϰí ÀÖ´ÂÁö¸¦ ÆÄ¾ÇÇÏ´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ÀÛ¾÷Àº ¾îµð±îÁö³ª Æ©´×ÀÇ ¹üÀ§ ³»¿¡¼­ ¼öÇàÇϱâ·Î Çß½À´Ï´Ù. Áï Ç÷§ÆûÀ» ±³Ã¼ÇѴٰųª ¾ÆÅ°ÅØÃ³¸¦ ¿ÏÀüÈ÷ °¥¾Æ¾þ´Â´Ù°Å³ª, Çϵå¿þ¾î¸¦ Ãß°¡·Î ±¸¸ÅÇÏ´Â °ÍÀº °í·ÁÇÏÁö ¾Ê±â·Î Çß½À´Ï´Ù. ÀÌ¿¡ µû¶ó DB Æ©´×°ú ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×À» º´ÇàÇØ¼­ ÀÛ¾÷À» Çϵµ·Ï °áÁ¤ÇÏ¿´½À´Ï´Ù.

DB Æ©´×Àº Á¦ ¿µ¿ªÀÌ ¾Æ´Ï¹Ç·Î ÀÌ ±Û¿¡¼­´Â ´Ù·çÁö ¾Êµµ·Ï ÇϰڽÀ´Ï´Ù. ÀÌ·± ÂÊÀº DB Àü¹®°¡ ºÐµé²² ¹®ÀÇÇØº¸½Ã´Â°Ô ºü¸£°ÚÁÒ? ^^

2. Æ©´×ÀÇ ±âÃÊ °³³ä : ºÎÇÏÀÇ ºÐ»ê

¿ì¸®°¡ ¾Ë¾Æ¾ß ÇÒ »çÇ× Áß Çϳª´Â ±âº»ÀûÀ¸·Î ¾ÖÇø®ÄÉÀ̼ÇÀÇ ·ÎÁ÷ µî¿¡ ¹®Á¦°¡ ¾ø´Ù°í °¡Á¤ÇÒ ¶§, ºÎÇÏ´Â ¾ø¾îÁöÁö ¾Ê°í ¿Å°ÜÁú »ÓÀÔ´Ï´Ù. ¿¹¸¦ µé¾î Àüü ºÎÇϰ¡ 100À̶ó°í ÇÒ °æ¿ì, ÀÌ ºÎÇÏ´Â À¥ ¼­¹ö¿Í DB ¼­¹öµé¿¡ °¢°¢ ³ª´©¾îÁ®¼­ Á¸ÀçÇÕ´Ï´Ù.

µû¶ó¼­ ºÐ»ê ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×¿¡¼­ ÇØ¾ß ÇÒ »çÇ× Áß Çϳª´Â ÀÌ·¯ÇÑ ºÎÇϸ¦ °ñ°í·ç ºÐ»êÇÏ´Â °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼­ °¨¾ÈÇØ¾ß ÇÒ »çÇ×Àº È®À强(Scalability)ÀÔ´Ï´Ù. Åë»óÀûÀ¸·Î À¥ ¼­¹ö´Â ½ºÄÉÀÏ ¾Æ¿ô(Scale-Out)À» ÅëÇØ È®ÀåÀ» ÇϱⰡ ¿ëÀÌÇÕ´Ï´Ù. Áï À¥ ¼­¹öÀÇ ´ë¼ö¸¦ ´Ã¸®°í L4 µîÀ» ÅëÇØ ·Îµå¹ë·±½ÌÀ¸·Î ¹­±â¸¸ ÇÏ¸é ºÐ»êÀÌ °¡´ÉÇÕ´Ï´Ù. ÀÌ¿¡ ºñÇØ DB ¼­¹öÀÇ °æ¿ì È®À强Àº »ó´çÈ÷ Á¦ÇÑÀûÀÔ´Ï´Ù. Åë»óÀûÀ¸·Î ½ºÄÉÀÏ ¾Æ¿ôÀº Ŭ·¯½ºÅ͸µÀ» ÅëÇØ¼­¸¸ È®ÀåÀÌ °¡´ÉÇϸç Ŭ·¯½ºÅ͸µÀ» ÇÒ ¼ö ÀÖ´Â ¼­¹öÀÇ ¼öµµ Á¦ÇÑµÉ »Ó´õ·¯ ºñ¿ë ¿ª½Ã »ó´çÈ÷ ºñ½Ñ ´ë°¡¸¦ Ä¡·¯¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ½ºÄÉÀÏ ¾÷(Scale-Up), Áï ¼­¹öÀÇ »ç¾çÀ» ¾÷±×·¹À̵å½ÃŰ´Â °ÍÀ¸·Î¸¸ ÇØ°áÀÌ °¡´ÉÇÕ´Ï´Ù. ±×·¯³ª ¾Æ½±°Ôµµ Windows 2000 ¼­¹ö´Â CPU °³¼ö¸¦ ¹«ÇÑÈ÷ ´Ã¸± ¼ö ¾øÀ¸¸ç, Á¦ÇÑÀûÀÔ´Ï´Ù.

DB ¼­¹ö¿Í À¥ ¼­¹ö´Â »ç¾ç ¹× ¼º´É¿¡ À־ ºÐ¸íÇÑ Â÷À̰¡ Á¸ÀçÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î DB ¼­¹ö°¡ ÈξÀ ´õ ¶Ù¾î³­ »ç¾çÀ» °¡Áý´Ï´Ù. S»çÀÇ DB ¼­¹ö¿Í À¥ ¼­¹öÀÇ °æ¿ì´Â CPU °¹¼ö¸¸ ÇÏ´õ¶óµµ 8CPU¿Í 2CPU¶ó´Â ¼º´É Â÷À̸¦ °¡Áö°í ÀÖ¾ú½À´Ï´Ù.

¾ê±â¸¦ Ç®¾î³ª°¡±â À§ÇØ ÀÏ´Ü °¢ DB ¼­¹öÀÇ ÃÖ´ë ºÎÇÏ ÇѰ谡 50, ÃÖ´ë À¥ ¼­¹öÀÇ ºÎÇÏ ÇѰ谡 20À̶ó°í ´ë·« °¡Á¤ÇØ º¸µµ·Ï ÇսôÙ.

ÇöÀç´Â DB ¼­¹ö ÂÊÀÌ 70, À¥ ¼­¹ö ÂÊÀÌ 30ÀÎ »óÅ¿´½À´Ï´Ù. ÀÌ °æ¿ì DB ¼­¹ö´Â 1´ë´ç 35, À¥ ¼­¹ö´Â 1´ë´ç ±â²¯ 4ÀÇ ºÎÇϸ¸À» °¡Áö°í ÀÖ´Â ¼ÀÀÔ´Ï´Ù. DB ¼­¹ö´Â ÀÚ±â ÇѰ踦 70%(35/50)¸¦ ÀÌ¹Ì »ç¿ëÇϰí ÀÖÀ¸¸ç, À¥ ¼­¹ö´Â ÀÚ±â ÇѰèÀÇ 20%(4/20)¸¸À» ±â²¯ »ç¿ëÇϰí ÀÖ´Â ¼ÀÀÔ´Ï´Ù.
(35 * DB ¼­¹ö 2´ë) + (3 * À¥ ¼­¹ö 10´ë) = 100

¿ì¸®°¡ ¹Ù¶ó´Â °ÍÀº ÃÖ¼ÒÇÑ DB ¼­¹ö ÂÊÀ» 40, À¥ ¼­¹ö ÂÊÀ» 60À¸·Î ¸¸µå´Â °ÍÀ̾ú½À´Ï´Ù. ÀÌ °æ¿ì DB ¼­¹ö´Â 1´ë´ç 20, À¥ ¼­¹ö´Â 1´ë´ç 6ÀÇ ºÎÇϸ¸À» °¡Áö¸é µË´Ï´Ù. ÀÌ °æ¿ì DB ¼­¹ö´Â 40%, À¥ ¼­¹ö´Â 30%·Î µÇ´Â ¼ÀÀÔ´Ï´Ù.
(20 * DB ¼­¹ö 2´ë) + (6 * À¥ ¼­¹ö 10´ë) = 100

DB ¼­¹ö ÂÊÀ» 30, À¥ ¼­¹ö ÂÊÀ» 70À¸·Î ¸¸µé¸é ¾ÈµÇ³ª¿ä? ¾Æ, ¹°·Ð °¡´ÉÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì DB ¼­¹ö´Â 1´ë´ç 15, À¥ ¼­¹ö´Â 1´ë´ç 7ÀÇ ºÎÇϸ¦ °¡Áö°Ô µË´Ï´Ù. ÀÌ °æ¿ì DB ¼­¹ö´Â 30%, À¥ ¼­¹ö´Â 35%·Î µÇ´Â ¼ÀÀÔ´Ï´Ù.
(15 * DB ¼­¹ö 2´ë) + (7 * À¥ ¼­¹ö 10´ë) = 100

´ë½Å ¸¶Áö¸·À¸·Î ¾Ë¾ÆµÎ¾î¾ß ÇÒ »çÇ×Àº ÀÌ·¯ÇÑ ºÎÇϸ¦ ÇÑÂÊÀ¸·Î ¸ù¶¥ ¿Å±æ ¼ö´Â ¾øÀ¸¸ç, ¿Å±æ ¼ö ÀÖ´Â ÇѰ谡 Á¸ÀçÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ÃÖ¼ÒÇÑ DB ¼­¹ö¿¡¼­¸¸ ¼öÇà°¡´ÉÇÑ ÀÛ¾÷, À¥ ¼­¹ö¿¡¼­¸¸ ¼öÇà °¡´ÉÇÑ ÀÛ¾÷Àº ¹Ýµå½Ã Á¸ÀçÇÑ´Ù´Â °ÍÀÌÁÒ. ¾ÖÇø®ÄÉÀ̼ǰú ½Ã½ºÅÛÀÇ ¼º°Ý¿¡ µû¶ó 1:9, 2:8, 3:7, ..., 8:2, 9:1 µîÀº Á¸ÀçÇÒ ¼ö ÀÖÁö¸¸ 0:10À̳ª 10:0Àº Á¸ÀçÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

½±°Ô ¼³¸íÇÏ·Á°í ³ë·ÂÇߴµ¥ ÀÌÇØ°¡½ÃÁÒ? ^^ Âü°í·Î Æ©´×¿¡´Â ºÎÇÏ ºÐ»ê¸¸ÀÌ Á¸ÀçÇÏ´Â °ÍÀº ¾Æ´Ï¶ó´Â °ÍÀ» ¾Ë¾Æ µÎ¼¼¿ä.

3. ±âÁ¸ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼®

¿ì¼± ±âÁ¸ ¾ÖÇø®ÄÉÀ̼ÇÀ» ºÐ¼®Çϱâ·Î Çß½À´Ï´Ù. S»ç »çÀÌÆ®´Â ÆäÀÌÁö ¼ö°¡ »ó´çÈ÷ ¸¹Àº ÆíÀ̸ç, ±¸Á¶µµ ºñ±³Àû º¹ÀâÇÑ ÆíÀ̾ú½À´Ï´Ù. ±×¿¡ µû¶ó µð·ºÅ͸® ±¸Á¶µµ ³ª¸§´ë·Î ü°èÀûÀ¸·Î ³ª´©±â À§ÇØ ³ë·ÂÇÑ ÆíÀ̾úÀ¸¸ç, °øÅëµÈ ³»¿ëµéÀº .inc·Î öÀúÇÏ°Ô ºÐ¸®Çس»·Á°í ³ë·ÂÇÑ ÈçÀûÀÌ ¸¹ÀÌ º¸¿´½À´Ï´Ù. Áï, ÀϹÝÀûÀÎ ASP »çÀÌÆ®º¸´Ù ³ª»ÚÁö´Â ¾ÊÀº(?) »óȲÀ̾ú´Ù´Â °ÍÀÔ´Ï´Ù.

S»ç´Â DB ¾×¼¼½º¸¦ Çϱâ À§ÇØ Å©°Ô 2°³ÀÇ inc ÆÄÀÏÀ» »ç¿ëÇϰí ÀÖ¾ú½À´Ï´Ù. Áï ÆäÀÌÁöÀÇ ¾Õ ºÎºÐ¿¡ »ðÀÔµÈ inc¿¡¼­´Â ADO Connection °³Ã¼¸¦ »ý¼ºÇϰí, ÆäÀÌÁö ³»¿¡¼­´Â ÀÌ Connection °³Ã¼¸¦ °¡Áö°í DB ¾×¼¼½º¸¦ ¼öÇàÇÑ ÈÄ, ÆäÀÌÁöÀÇ µÞ ºÎºÐ¿¡ inc ÆÄÀÏÀ» »ðÀÔÇÏ¿© ConnectionÀ» ´Ý°í Connection °³Ã¼¸¦ Nothing ó¸®ÇÏ´Â ÀüÇüÀûÀÎ ÆÐÅÏÀ» »ç¿ëÇϰí ÀÖ¾ú½À´Ï´Ù.

ÀÌ·± °æ¿ì inc ÆÄÀϸ¸ Á¦´ë·Î ³Ö¾îÁشٸé Ä¿´Ù¶õ ¹®Á¦´Â »ý±âÁö ¾Ê½À´Ï´Ù. °á±¹ ¹®Á¦´Â inc ÆÄÀϵéÀÌ ¾Æ´Ï¶ó ConnectionÀ» °¡Áö°í ½ÇÁ¦ DB¿¡ ¾×¼¼½ºÇÏ´Â Äڵ忡 ¹®Á¦°¡ ÀÖ´Â ¼ÀÀÔ´Ï´Ù.

ºÐ¼® °á°ú.. ¿ª½Ã Äڵ尡 ¹®Á¦¿´½À´Ï´Ù.

°¡Àå ¹«¾ùº¸´Ù Å« ¹®Á¦´Â DB ¾×¼¼½º¸¦ À§ÇØ »ç¿ëÇÏ´Â Äڵ尡 ÀüºÎ ´Ù Á¦°¢°¢À̶ó´Â Á¡À̾ú½À´Ï´Ù. »ç¶÷µé¸¶´Ù »ç¿ëÇÏ´Â Ä¿¼­µµ Á¦°¢°¢À̾úÀ¸¸ç, ADO °ü·Ã »ó¼ö¸¦ ¾²´Â »ç¶÷µµ ÀÖ°í ¾Æ´Ñ »ç¶÷µµ ÀÖ°í, ½ÉÁö¾î ¾î¶² »ç¶÷Àº ÀڱⰡ Á÷Á¢ ConnectionÀ» ¸¸µé¾î¼­ »ç¿ëÇÏ´Â »ç¶÷µµ ÀÖ¾ú½À´Ï´Ù. ¸¹Àº ¼öÀÇ °³¹ßÀÚ°¡ ÀÛ¼ºÇϰí, ½Ãµµ ¶§µµ ¾øÀÌ À¯Áö º¸¼ö¸¦ À§ÇØ Äڵ带 ¼öÁ¤ÇÏ´Â °æ¿ì¿¡´Â Çã´ÙÇÏ°Ô ÀϾ´Â ÀÏÀÔ´Ï´Ù. ½ÉÁö¾î 1¹ø¸¸ ¼öÇàµÇ¸é µÇ´Â Äõ¸®¸¦ ¾µµ¥¾øÀÌ while ·çÇÁ ¾È¿¡ Áý¾î ³Ö¾î¼­ ÇÑ ÆäÀÌÁö ³»¿¡¼­ µ¿ÀÏÇÑ Äõ¸®°¡ ¼ö½Ê¹ø ½ÇÇàµÇ´Â ÆäÀÌÁöµµ Á¸ÀçÇß½À´Ï´Ù.

µÎ¹øÂ° ¹®Á¦´Â ´ëºÎºÐÀÇ Äڵ尡 DB ¼­¹ö¿¡ ºÎÇϸ¦ ¸¹ÀÌ ÁÖ´Â ¹æ½ÄÀ̾ú½À´Ï´Ù. ¼­¹öÀÇ ÀÚ¿øÀ» »ç¿ëÇÏ´Â Connected Recordset, ¼­¹ö »çÀ̵å Ä¿¼­ µîÀÌ »ç¿ëµÇ´Â °æ¿ì°¡ ¸¹¾Ò½À´Ï´Ù.

¶ÇÇÑ Äõ¸® ÀÚüµµ SPµµ ¾Æ´Ï¸ç, ÆÄ¶ó¹ÌÅÍÈ­µÈ Äõ¸®µµ ¾Æ´Ï¸ç, ¹®ÀÚ¿­ Á¶ÇÕ Äõ¸®°¡ °ÅÀÇ ´ëºÎºÐÀ̾ú½À´Ï´Ù.

°á°úÀûÀ¸·Î °øÅëµÈ DB ¾×¼¼½º ÄÚµù ÆÐÅÏÀ» Á¦°øÇϰí, DB ¼­¹öÀÇ ÀÚ¿øÀ» Àû°Ô ¾²´Â DB ¾×¼¼½º ±â¹ýµéÀ» »ç¿ëÇϰí, ¹®ÀÚ¿­ Á¶ÇÕ Äõ¸®¸¦ ÆÄ¶ó¹ÌÅÍÈ­µÈ Äõ¸® ¶Ç´Â SP·Î º¯È¯ÇÏ´Â °ÍÀ» ±Ç°í¾ÈÀ¸·Î Á¦½ÃÇß½À´Ï´Ù.

4. ASP µ¥ÀÌÅÍ ¾×¼¼½º ±â¹ý »ìÆìº¸±â

¿©±â¼­´Â DBHelper¿¡ ¾²ÀÎ ±â¹ýµéÀ» ÀÚ¼¼È÷ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù. DBHelper´Â ÀÌ·¯ÇÑ 3°¡Áö¸¦ »ç¿ëÇϱ⠽±µµ·Ï Áö¿øÇϱâ À§ÇÑ »êÃâ¹°ÀÎ ¼ÀÀÌÁÒ.

1) Connected Recordset vs. Disconnected Recordset

ÀϹÝÀûÀ¸·Î ADO¿¡¼­ »ç¿ëµÇ´Â ·¹ÄÚµå¼ÂÀº ¿¬°áµÈ ·¹ÄÚµå¼Â(Connected Recordset)À¸·Î ·¹ÄÚµå¼Â¿¡¼­ ÀÛ¾÷À» Çϱâ À§Çؼ­´Â ConnectionÀÌ ¿­·Á ÀÖ¾î¾ß Çϸç, ·¹ÄÚµå¼Â¿¡¼­ MoveNext ¶Ç´Â MovePrevious¿Í °°Àº ÀÛ¾÷À» ÇÏ´Â °æ¿ì DB¿Í °è¼ÓÀûÀ¸·Î »óÈ£ÀÛ¿ëÀ» ÇÏ°Ô µË´Ï´Ù. ÀÌ °æ¿ì ¿À·£ ½Ã°£ Connection ÀÚ¿øÀ» ¿­¾î³õ°í »ç¿ëÇÏ°Ô µÇ¹Ç·Î ÀÚ¿øÀûÀÎ ³¶ºñ¿Í ±Ã±ØÀûÀ¸·Î´Â DB ¼­¹öÀÇ ¼º´É ÀúÇϸ¦ ÃÊ·¡Çϸç, Ä¿¼­¸¦ »ç¿ëÇÏ´Â µ¿¾È DB¿ÍÀÇ ¶ó¿îµå Æ®¸³ÀÌ ¹ß»ýÇÏ°Ô µË´Ï´Ù.

ADOÀº ¿¬°áµÈ ·¹ÄÚµå¼Â ¿Ü¿¡ º°µµ·Î ºñ¿¬°á ·¹ÄÚµå¼Â(Disconnected Recordset)À» Áö¿øÇÕ´Ï´Ù. ºñ¿¬°á ·¹ÄÚµå¼ÂÀ̶ó ÇÔÀº ¸» ±×´ë·Î DB¿Í ¿¬°áÀÌ ¾ø´Â ·¹ÄÚµå¼ÂÀ» ¸»ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ºñ¿¬°á ·¹ÄÚµå¼Â¿¡¼­ MoveNext, MovePrevious¿Í °°Àº ·¹ÄÚµå ³×ºñ°ÔÀ̼Ç(navigation) ¸Þ¼­µåµéÀÌ È£ÃâµÇ´õ¶óµµ DB¿Í ¾î¶°ÇÑ »óÈ£ÀÛ¿ëµµ ÇÏÁö ¾Ê½À´Ï´Ù.

À̰ÍÀÌ °¡´ÉÄÉÇϱâ À§Çؼ­ ºñ¿¬°á ·¹ÄÚµå¼ÂÀº Ŭ¶óÀÌ¾ðÆ® Ä¿¼­ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÕ´Ï´Ù. Áï, ·¹ÄÚµå¼Â °´Ã¼ÀÇ CusorLocation ÇÁ·ÎÆÛƼÀÇ °ªÀÌ adUseClientÀ̾î¾ß¸¸ ºñ¿¬°á ·¹ÄÚµå¼ÂÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ºñ¿¬°á ·¹ÄÚµå¼ÂÀ» ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ °£´ÜÇÏ°Ô ·¹ÄÚµå¼Â °´Ã¼ÀÇ ActiveConnection ¼Ó¼º °ªÀ» NothingÀ¸·Î ¼³Á¤ÇÏ¸é µË´Ï´Ù.

Dim strConn, strSQL
Dim adoRS

strSQL = "SELECT * FROM Suppliers"
strConn = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=NorthWind;User ID=sa;"


Set adoRS = Server.CreateObject("ADODB.RecordSet")
Set adoRS.CursorLocation = adUseClient

adoRS.Open strSQL, strConn

Set adoRS.ActiveConnection = Nothing

Disconnected RecordsetÀÇ ÀåÁ¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.

- Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇϸç, ÀÚÀ¯·Î¿î µ¥ÀÌÅÍ ¾×¼¼½º°¡ °¡´ÉÇÕ´Ï´Ù.
- DB ¿¬°áÀ» ²÷Àº »óÅ¿¡¼­ ·¹ÄÚµå¼Â ÀÛ¾÷À» ¼öÇàÇϹǷΠDB ¼­¹öÀÇ ÀÚ¿ø(Ä¿¼­, ¸Þ¸ð¸®, ³×Æ®¿öÅ© ¿¬°á µî)À» Á¡À¯ÇÏ´Â ½Ã°£ÀÌ ÃÖ¼ÒÈ­µË´Ï´Ù.
- ²÷±ä ¿¬°áÀº ¾ðÁ¦µçÁö ´Ù½Ã ¿¬°áÇÏ¿©, ·¹ÄÚµå¼Â¿¡¼­ º¯°æµÈ »çÇ×À» DB¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
- Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¿Í ÇÔ²² DB È®À强(Scalability)¿¡ Å« µµ¿òÀÌ µË´Ï´Ù.

DBHelper¿¡¼­´Â ±âº»ÀûÀ¸·Î Disconnected RecordsetÀ» »ç¿ëÇÕ´Ï´Ù.

2) Ä¿¼­(Cursor)ÀÇ »ç¿ë

ADO¿¡¼­ Áö¿øÇÏ´Â Ä¿¼­¿¡´Â Å©°Ô 4°¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Ä¿¼­¸¦ ÀûÀýÈ÷ »ç¿ëÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.

Á¾·ù Ư¡ ºñ°í
Forward-Only RecordCount, ÆäÀÌ¡ »ç¿ë ºÒ°¡
³ª¸ÓÁö´Â Static°ú µ¿ÀÏ
RecordCount³ª ÆäÀÌ¡ÀÌ ÇÊ¿ä ¾ø´Â °æ¿ì
±ÇÀå. °¡Àå ºü¸¥ ¼º´É
Keyset ´Ù¸¥ »ç¿ëÀÚ°¡ Ãß°¡ÇÑ ·¹ÄÚµå´Â º¼ ¼ö ¾øÀ½
³ª¸ÓÁö´Â Dynamic°ú µ¿ÀÏ
DB¿¡ ºÎÇϰ¡ Å­
Dynamic ·¹ÄÚµå¼ÂÀÇ ¸ðµç ±â´É »ç¿ë °¡´É
´Ù¸¥ »ç¿ëÀÚÀÇ º¯°æ ³»¿ëÀ» ¸ðµÎ º¼ ¼ö ÀÖÀ½
DB¿¡ ºÎÇϰ¡ °¡Àå Å­. ¼º´ÉÀÌ °¡Àå ´À¸²
Static ´Ù¸¥ »ç¿ëÀÚÀÇ º¯°æ³»¿ë º¼¼ö ¾øÀ½
±×¿Ü ·¹ÄÚµå¼ÂÀÇ ¸ðµç ±â´É »ç¿ë °¡´É
´ëºÎºÐÀÇ °æ¿ì¿¡ ±ÇÀå

À§¿¡¼­ ¾ð±ÞÇÑ °Íó·³ ´ëºÎºÐÀÇ °æ¿ì¿¡´Â Static Ä¿¼­¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡Àå ÀûÇÕÇÕ´Ï´Ù.

DBHelper¿¡¼­´Â Static Ä¿¼­¸¦ »ç¿ëÇÕ´Ï´Ù.

3) RecordCountÀÇ »ç¿ë

Static / Keyset Ä¿¼­¸¦ »ç¿ëÇÏ´Â °æ¿ì, ·¹ÄÚµå¼ÂÀÇ RecordCount ¼Ó¼ºÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼Ó¼ºÀº Æí¸®Çϱâ´Â ÇÏÁö¸¸ ½ÅÁßÇÏ°Ô »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. RecordCount ¼Ó¼ºÀ» »ç¿ëÇÏ´Â °æ¿ì SQL ¼­¹ö´Â sp_cursoropen ÀúÀå ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÏ¿© Ä¿¼­¸¦ ¿­°í ·¹ÄÚµåµéÀ» fetch ÇØ ³ª°¡´Âµ¥, RecordCount¸¦ ¾ò¾î³»±â À§Çؼ­´Â Àüü ·¹Äڵ带 ÃÖ¼ÒÇÑ 1ȸ ÀÌ»ó fetch ÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÀÌ °æ¿ì ºÒÇÊ¿äÇÑ ·¹ÄÚµå fetch°¡ Áõ°¡µÉ ¼ö ÀÖ½À´Ï´Ù.

¼º´ÉÀÌ ¹®Á¦°¡ µÇ´Â °æ¿ì, RecordCountº¸´Ù´Â °¡±ÞÀûÀÌ¸é ·¹ÄÚµåÀÇ °³¼ö¸¦ Output ¸Å°³º¯¼ö·Î¹ÝÈ¯ÇØÁÖ´Â SP¸¦ »ç¿ëÇÏ´Â °ÍÀ» ±ÇÀåÇÕ´Ï´Ù.

'Stored Procedure
CREATE PROCEDURE dbo.GetProducts
(
    @RecordCount int OUTPUT
)
AS
    SELECT * FROM Products
    SELECT @@rowcount as RecordCount
RETURN


'È£Ãâ ÄÚµå
¡¦
Set adoCmd = CreateObject("ADODB.Command")
Set adoCmd.ActiveConnection = adoConn
adoCmd.CommandText = "GetProducts"    'sp À̸§
adoCmd.CommandType = adCmdStoredProc    '¶Ç´Â 4
adoCmd.Parameters.Refresh
¡¦
Set rs = adoCmd.Execute
¡¦
rs.Close


'output parameter´Â ·¹ÄÚµå¼ÂÀ» ´Ý°í ³­ ÈÄ¿¡ Á¢±Ù °¡´ÉÇÏ´Ù.
Set recordCount = adoCmd.Parameters("@RecordCount") ...

4) Client Cursor vs. Server Cursor

ADO´Â µðÆúÆ®·Î ¼­¹ö Ä¿¼­, Áï µ¥ÀÌÅͺ£À̽º¿¡¼­ Á¦°øÇÏ´Â Ä¿¼­¸¦ »ç¿ëÇÕ´Ï´Ù. ±×·¯³ª, ¼­¹ö Ä¿¼­¿¡´Â ´ÙÀ½°ú °°Àº ´ÜÁ¡µéÀÌ Á¸ÀçÇÕ´Ï´Ù.

- µ¥ÀÌÅͺ£À̽ºÀÇ Ä¿¼­ ÀÚ¿øÀ» »ç¿ëÇÕ´Ï´Ù.
- ·¹ÄÚµåµéÀ» ÆÐÄ¡ÇÒ ¶§¸¶´Ù ¼­¹ö¿¡ ·¹ÄÚµå ÆÐÄ¡¸¦ À§ÇÑ ³×Æ®¿öÅ© ¾×¼¼½º°¡ ÀϾ´Ï´Ù.

À§ÀÇ ºÎÇϸ¦ ÁÙÀÌ·Á¸é, Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇϸé Á¶È¸µÈ µ¥ÀÌÅÍ´Â ¸ðµÎ Ŭ¶óÀ̾ðÆ®(À¥ ¼­¹ö)·Î º¹»çµÇ°í, Ŭ¶óÀ̾ðÆ®(À¥ ¼­¹ö)ÀÇ ¸Þ¸ð¸®¿¡ ÀúÀåµË´Ï´Ù. ±× ÀÌÈÄ ·¹ÄÚµå °£ÀÇ À̵¿Àº Ŭ¶óÀÌ¾ðÆ® ¸Þ¸ð¸®¿¡ ÀúÀåµÈ ·¹ÄÚµå¼Â ³»¿¡¼­ ¹ß»ýµË´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇÏ·Á¸é Connection ¶Ç´Â Recordset °´Ã¼ÀÇ CursorLocation ¼Ó¼º °ªÀ» adUseClient »ó¼ö ȤÀº 3À¸·Î ¼³Á¤ÇÏ¸é µË´Ï´Ù.

Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.

- Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇÏ¸é ·¹ÄÚµå¼ÂÀÇ Ä¿¼­°¡ ÀÚµ¿ÀûÀ¸·Î staticÀ¸·Î °íÁ¤µË´Ï´Ù.
  (´Ü, Ŭ¶óÀÌ¾ðÆ®·Î º¹»çÇϱâ À§ÇØ DB¿¡¼­ ·¹ÄÚµå¼ÂÀ» ÀÐÀ» ¶§´Â ForwardOnly Ä¿¼­°¡ »ç¿ëµË´Ï´Ù)
- µ¥ÀÌÅͺ£À̽º ¼­¹öÀÇ ÀÚ¿ø ¼Òºñ·®ÀÌ »ó´ëÀûÀ¸·Î ³·½À´Ï´Ù.
- Ŭ¶óÀÌ¾ðÆ®¿Í µ¥ÀÌÅͺ£À̽º °£ÀÇ ³×Æ®¿öÅ© ¶ó¿îµå Æ®¸³ÀÌ ÁÙ¾îµì´Ï´Ù.

Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇÏ´Â °æ¿ì, DBÀÇ ÀÚ¿ø°ú ºÎÇÏ´Â ÁÙ¾îµå´Â ´ë½Å À¥ ¼­¹öÀÇ ÀÚ¿øÀ» »ç¿ëÇϰí, À¥ ¼­¹ö¿¡ ºÎÇϰ¡ ¿Å°ÜÁö°Ô µË´Ï´Ù. µû¶ó¼­ ¸¸¾à ÇöÀç DB ¼­¹öÀÇ ºÎÇÏ´Â ÀûÀºµ¥ À¥ ¼­¹öÀÇ ºÎÇϰ¡ ¸Å¿ì Å« »óȲÀ̶ó¸é »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

DBHelper¿¡¼­´Â ±âº»ÀûÀ¸·Î Ŭ¶óÀÌ¾ðÆ® Ä¿¼­¸¦ »ç¿ëÇÕ´Ï´Ù.

5) ÆÄ¶ó¹ÌÅÍÈ­µÈ Äõ¸®(Parameterized Query)

µ¿ÀûÀÎ Äõ¸®¸¦ ÀÛ¼ºÇϱâ À§ÇØ ÀϹÝÀûÀ¸·Î´Â ¹®ÀÚ¿­ Á¶ÇÕ¿¡ ÀÇÇÑ Äõ¸®¸¦ »ç¿ëÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°°ÚÁÒ.

strQuery = "SELECT * FROM Orders WHERE OrderDate >= '" & startDate & "' AND OrderDate < '" & endDate & "'"
¡¦
rs.Open strQuery, adoConn

ÀÏ´Ü µû¿ÈÇ¥(')¸¦ »©¸Ô±â ½±´Ù´Â ¹®Á¦´Â Á¦ÃÄ µÎ´õ¶óµµ, ÀÌ Äõ¸®´Â SQL ¼­¹ö ³»¿¡¼­ ¼öÇàµÉ ¶§ startDate¿Í endDateÀÇ °ªÀÌ º¯°æµÉ ¶§¸¶´Ù ¸Å¹ø ÄÄÆÄÀÏ °úÁ¤À» °ÅÃÄ¾ß ÇÕ´Ï´Ù. ºÒÇÊ¿äÇÑ SQL ÄÄÆÄÀÏÀº DBÀÇ ºÎÇϸ¦ °¡Áß½ÃŰÄÑ ¼º´É ÀúÇÏ·Î À̾îÁö°Ô µË´Ï´Ù. ÀÌ ¹®Á¦¸¦ ÇÇÇÏ·Á¸é ÆÄ¶ó¹ÌÅÍÈ­µÈ Äõ¸®(Parameterized Query)¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. º¸´Ù½ÃÇÇ µû¿ÈÇ¥°¡ »ç¶óÁö°í ? ¶Ç´Â @·Î ½ÃÀÛÇÏ´Â ÆÄ¶ó¹ÌÅͰ¡ Ãß°¡µÇ¾ú½À´Ï´Ù.

strQuery = "SELECT * FROM Orders WHERE OrderDate >= ? AND OrderDate < ?"

¶Ç´Â

strQuery = "SELECT * FROM Orders WHERE OrderDate >= @startDate AND OrderDate < @endDate"

¸Å°³º¯¼ö¸¦ °¡Áø Äõ¸®¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¸Å°³º¯¼ö¸¦ ³Ö¾îÁÖ±â À§ÇØ ¹Ýµå½Ã Command °´Ã¼¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. (¾Æ·¡ ¿¹Á¦ ÂüÁ¶)

¡¦
Set adoCmd = CreateObject("ADODB.Command")
Set adoCmd.ActiveConnection = adoConn
adoCmd.CommandText = strQuery
adoCmd.CommandType = adCmdText    '¶Ç´Â 1
adoCmd.Parameters.Append adoCmd.CreateParameter("@startDate", adDate, adParamInput, , startDate)
adoCmd.Parameters.Append adoCmd.CreateParameter("@endDate", adDate, adParamInput, , endDate)
¡¦
rs.Open adoCmd        'Query ´ë½Å Command °´Ã¼¸¦ ÁöÁ¤

ÀÌ·¸°Ô ¸Å°³º¯¼ö¸¦ °¡Áø Äõ¸®¸¦ ½ÇÇàÇϸé, SQL Profiler¿¡¼­ SQL¹èÄ¡°¡ ¾Æ´Ñ RPC°¡ ¼öÇàµÇ¾î ´õ¿í ¼Óµµ°¡ »¡¶óÁý´Ï´Ù. ¶ÇÇÑ ´ÙÀ½°ú °°ÀÌ ¸Å°³º¯¼öÈ­ µÇ¹Ç·Î startDate, endDateÀÇ °ªÀÌ º¯°æµÇ´õ¶óµµ SQL ÄÄÆÄÀÏÀº Çѹø¸¸ ÀϾ°Ô µË´Ï´Ù.

exec sp_executesql N'SELECT * FROM Orders WHERE OrderDate >= @P1
AND OrderDate < @P2 ', N'@P1 datetime,@P2 datetime', '01 1 1995 12:00AM', '01 1 1996 12:00AM'

¸Å°³º¯¼ö¸¦ °¡Áø Äõ¸®´Â ÄÚµå °¡µ¶¼ºÀ» ³ô¿©ÁÖ°í, ¼º´É ¸é¿¡¼­´Â ÁÁ±ä ÇÏÁö¸¸ ÄÚµù·®ÀÌ ´Ù¼Ò ´Ã¾î³­´Ù´Â ´ÜÁ¡ÀÌ À־ ±ÍÂ÷´ÏÁò(?) ¶§¹®¿¡ ¾È ¾²´Â »ç¶÷µéÀÌ ¸¹½À´Ï´Ù. ¸ðµç Äõ¸®¸¦ ¸Å°³º¯¼ö¸¦ °¡Áø Äõ¸®·Î ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾øÁö¸¸, ÃÖ¼ÒÇÑ ÀÚÁÖ ¼öÇàµÇ´Â Äõ¸®ÀÇ °æ¿ì ÀÌ·¸°Ô ÀÛ¼ºÇϸé DBÀÇ ºÎÇϸ¦ ÁÙÀÌ°í ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.

DBHelper¿¡¼­´Â ÀÌ·¯ÇÑ ÄÚµùÀ» °£ÆíÇÏ°Ô ÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÕ´Ï´Ù.

6) ADO °ü·Ã »ó¼ö

¸ÕÀú ´ÙÀ½ Äڵ带 º¾½Ã´Ù.

Rs.Open SQL, Dbcon, 0, 1

ASP ÄÚµù¿¡ ´É¼÷ÇÑ »ç¶÷Àº ¾Ë°ÚÁö¸¸ 0Àº Ä¿¼­¸¦ adForwardOnly, 1Àº ¶ôÀ» ReadOnly·Î ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸, À§Ã³·³ »ó¼ö°ªÀ» ¼ýÀڷθ¸ ÁöÁ¤Çϸé ÄÚµåÀÇ °¡µ¶¼ºÀÌ ¶³¾îÁý´Ï´Ù. ±×·¯¹Ç·Î ½ÇÁ¦·Î´Â ´ÙÀ½°ú °°ÀÌ ÇØÁÖ´Â °ÍÀÌ ÀÌ»óÀûÀÔ´Ï´Ù.

Rs.Open SQL, Dbcon, adOpenForwardOnly , adLockReadOnly

ADO¿¡¼­´Â À§¿Í °°Àº »ó¼ö¸¦ »çÀü¿¡ Á¤ÀÇÇÑ ÆÄÀÏÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ÆÄÀÏÀ» »ç¿ëÇϱâ À§Çؼ­´Â C:\Program Files\Common Files\System\ado¿¡ ÀÖ´Â Adovbs.inc ÆÄÀÏÀ» include ÇØÁà¾ß ÇÕ´Ï´Ù.

<!--#include file="C:\Program Files\Common Files\System\ado\adovbs.inc" -->

±×·¯³ª include¸¦ »ç¿ëÇÏ¸é ±×¸¸Å­ ÆäÀÌÁö ÄÄÆÄÀÏ¿¡ ´ëÇÑ ºÎÇϰ¡ ¹ß»ýÇØ¼­ ¼º´ÉÀÌ ÀúÇÏ°Ô µË´Ï´Ù. À̸¦ ÇÇÇϱâ À§Çؼ­´Â type library¸¦ »ç¿ëÇÏ¸é µÇ´Âµ¥ °¢ ÆäÀÌÁö¿¡ ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÏ¸é µË´Ï´Ù.

<!--METADATA TYPE= "typelib" NAME= "ADODB Type Library"
    FILE="C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll" -->

ÀÌ Äڵ带 ¾Æ¿¹ Global.asa¿¡ Ãß°¡ÇÏ¸é °¢ ÆäÀÌÁö¿¡ Ãß°¡ÇÒ ÇÊ¿ä¾øÀÌ ADO °ü·Ã »ó¼ö¸¦ ¸¶À½´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

5. Æ©´× °á°ú

4¹ø Ç׸ñ¿¡¼­ Á¦½ÃµÈ ±â¹ýµéÀ» »ç¿ëÇØ¼­ DBHelper¸¦ ÀÛ¼ºÇÑ ÈÄ, À̸¦ Àû¿ëÇϵµ·Ï °¢ ÆäÀÌÁö¸¦ ¼öÁ¤ÇÏ´Â ÀÛ¾÷ÀÌ ÀÌ·ç¾îÁ³½À´Ï´Ù. ÀϺΠÄõ¸®´Â SP ¶Ç´Â ÆÄ¶ó¹ÌÅÍÈ­µÈ Äõ¸®·Î ÀçÀÛ¼ºµÇ±âµµ Çß½À´Ï´Ù. DB Æ©´×°ú ÇÔ²² ¾ÖÇø®ÄÉÀÌ¼Ç Æ©´×À» º´ÇàÇÑ °á°ú´Â ¾î¶»°Ô µÇ¾úÀ»±î¿ä?

¿¹»óÇß´ø °á°ú°¡ ÀÌ·ç¾îÁ³½À´Ï´Ù.

Æò±Õ CPU »ç¿ë·®ÀÌ 65%´ëÀÌ´ø DB ¼­¹ö´Â 31% Á¤µµ·Î Å©°Ô °¨¼ÒÇßÀ¸¸ç, À¥ ¼­¹ö´Â 20% Á¤µµ¿¡¼­ 30%·Î »ç¿ë·®ÀÌ ´Ã¾î³ª°Ô µÇ¾ú½À´Ï´Ù. ÀÌ¿ëÀÚ ¼öµµ °ÅÀÇ ºñ½ÁÇßÀ¸¸ç Àû¿ëÀü, Àû¿ëÈÄ °¢°¢ 1´Þ °¡±îÀ̸¦ ¸ð´ÏÅ͸µÇÑ °á°úÀÔ´Ï´Ù.

ÀÌ¿¡ µû¸¥ ¿¹»ó ¼öÄ¡·Î º¼ ¶§ S»ç´Â ÇöÀç »ç¿ëÀÚ°¡ 2¹è·Î ´Ã¾î³ªµµ °¨´çÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó´Â »õ·Î¿î Capacity¸¦ °¡Áö°Ô µÇ¾ú½À´Ï´Ù. ±×¿¡ µû¶ó ±»ÀÌ Ç÷§ÆûÀ» º¯°æÇϰųª Çϵå¿þ¾î¸¦ ±³Ã¼ÇÒ Çʿ䰡 ¾ø°Ô µÊÀ¸·Î½á ½Ã°£°ú ºñ¿ëÀ» Àý¾àÇÒ ¼ö ÀÖ°Ô µÈ ¼ÀÀÔ´Ï´Ù. µûÁ®º¸¸é º°´Ù¸£°Ô ÇÑ °Íµµ ¾ø´Âµ¥ ¸»ÀÌÁÒ. ^^;;

¿©±â±îÁö°¡ ÀåȲÇÑ Æ©´×±âÀÔ´Ï´Ù.

±×·±µ¥ DBHelper ½è´Âµ¥ ¿ì¸®´Â ¼º´ÉÀÌ ¿Ö °³¼± ¾ÈµÇ³Ä? ¶ó°í µ¹ ´øÁö½Å´Ù¸é ´ë·« ³¶ÆÐÀÔ´Ï´Ù. ¿¹¸¦ µé¾î DB ¼­¹ö´Â ÆØÆØ ³î°í À¥ ¼­¹ö ºÎÇÏ´Â Å«µ¥ DBHelper¸¦ ±×´ë·Î Àû¿ëÇÑ´Ù¸é ¿ÀÈ÷·Á ¼º´ÉÀÌ ´õ ÀúÇ쵃 ¼öµµ ÀÖ´Ù´Â °ÍÀ» °¨¾ÈÇÏ¼Å¾ß ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ °æ¿ì´Â ¿ÀÈ÷·Á DB ¼­¹öÀÇ ÀÚ¿øÀ» Àû±Ø Ȱ¿ëÇϵµ·Ï DBHelper¸¦ º¯°æÇؼ­ ½á¾ß ÇÒ ¼öµµ ÀÖ°ÚÁÒ? ¶ÇÇÑ ÀÌ Äڵ带 º¸´Ù ¼¼·ÃµÇ°Ô Àß ´Ùµë¾î¼­ Áֽô ºÐµéÀÌ °è½Ã¸é ´õ¿í ´õ °¨»çÇÒ µí ÇÕ´Ï´Ù. ^^

 

°­Á ¸ñ·ÏÀ¸·Î..