|
°Á Àü Å¿ÀÀÇ Àâ´ã>
Á¦°¡ ¾ÈÀç¿ì´ÔÀÇ ÀÛǰÀ» ¼Ò°³ÇÏ´Â °Á¸¦ ¿Ã·È´õ´Ï¸¸, ±Ý»õ ¾ÈÀç¿ì´ÔÀÌ Ãß°¡ÀûÀÎ ¿©·¯ Á¶¾ðÀÌ ´ã±ä ±ÛÀ» ÀÚ½ÅÀÇ ºí·Î±×¿¡ °ÔÀçÇ߳׿ä.
ÁÁÀº ³»¿ëÀÌ ¸¹Àº µí ÇÏ¿©, Çã°¡¸¦ ¹Þ°í Å¿À »çÀÌÆ®¿¡µµ ±× ±ÛÀ» °ÁÂÇü½ÄÀ¸·Î ¿Ã·Áº¾´Ï´Ù. ^^
ÀÌ °Á´ ÀÌÀü °ÁÂÀÎ "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¸¦ º¯°æÇؼ ½á¾ß ÇÒ ¼öµµ ÀÖ°ÚÁÒ? ¶ÇÇÑ ÀÌ Äڵ带 º¸´Ù ¼¼·ÃµÇ°Ô Àß ´Ùµë¾î¼ Áֽô ºÐµéÀÌ °è½Ã¸é ´õ¿í ´õ °¨»çÇÒ µí ÇÕ´Ï´Ù. ^^
°Á ¸ñ·ÏÀ¸·Î..
|