[Áöµð³ÝÄÚ¸®¾Æ]ADO°¡ °³¹ßÇϴµ¥ ÀÖ¾î ¾ó¸¶³ª Áß¿äÇÑÁö¿¡ ´ëÇØ¼´Â ÀÌ ±ÛÀ» Àд °³¹ßÀÚ ºÐµéÀÌ ¾î´À ´©±¸º¸´Ù Àß ¾Ë°Å¶ó »ý°¢ÇÑ´Ù. "VB 2005ÀÇ º¯È¿Í Çâ»ó¼º"À̶õ ÁÖÁ¦·Î ±â°íÇÏ¸é¼ ADO¸¦ ¤°í ³Ñ¾î°¡°íÀÚ ÇÏ´Â ÀÌÀ¯´Â ±× Á߿伺À¸·Î ÀÎÇÏ¿© ADO¸¦ Á¶±ÝÀÌ¶óµµ ¼Ò°³ÇÏ°í ½Í¾ú´ø Ãæµ¿ÀÌ °ÇÏ°Ô ÀÛ¿ëÇÏ¿´±â ¶§¹®ÀÌ´Ù.
ÀÌ¿¡ ¿À´ÃÀº ³Ê¹« °ÅâÇÏÁö¸¸ "ADOÀÇ ÁøÈ"¶ó´Â ŸÀÌÆ²À» µÎ¾î ADO¿¡¼ ADO.NETÀ¸·ÎÀÇ ¹ßÀü¿¡ ´ëÇØ Á» ´õ ´Ù¾çÇÏ°Ô »ìÆìº¸°íÀÚ ÇÑ´Ù. Áö³ ½Ã°£¿¡ »ìÆì º» DataSet(DataTable)ÀÇ Çâ»ó¿¡ À̾î ProviderÀÇ º¯È¿Í ¿¬°áÇ®¸µ ±×¸®°í, ¹èÄ¡¾÷µ¥ÀÌÆ®¿¡ ´ëÇØ »ìÆìº¸´Â ½Ã°£À» °®µµ·Ï ÇϰڴÙ.
ProviderÀÇ º¯È
ADO.NET ÀÌÀü ¹öÀü¿¡¼´Â Provider°¡ °¢°¢ÀÇ ÀÎÅÍÆäÀ̽º - ¿¹¸¦ µé¾î SqlClient, OracleClient - ¿¡ ±â¹ÝÇÏ¿© ÀÛ¼ºµÇ¾ú´Ù. ÀÌ·¯ÇÑ Æ¯Â¡À¸·Î ÀÎÇØ °¢°¢ÀÇ Provider¿¡ ¸Â°Ô ƯÁ¤ ¼Ó¼º°ú ¸Þ¼Òµå¸¦ ±¸ÇöÇÏ´Â ¹æ½ÄÀ» ÃëÇÏ¿´´Ù. ¹°·Ð À̰ÍÀÌ ÀüÇô À߸øµÈ ¹æ½ÄÀ» ¾Æ´ÏÁö¸¸ °¢°¢ÀÇ Provider¿¡ ¸Â°Ô °è¼ÓÀûÀÎ ÄÚµùÀ» ÇØ¾ß ÇÏ´Â ¹®Á¦¸¦ ³»Æ÷Çϰí ÀÖ¾ú´ø °Í ¶ÇÇÑ »ç½ÇÀÌ´Ù. À̸¦ º¸¿ÏÇϱâ À§ÇØ ¹öÀü 2.0 ¿¡¼´Â »õ·Î¿î °ø±ÞÀÚ ¸ðµ¨À» Á¦°øÇÏ°Ô µÇ´Âµ¥ ¹Ù·Î System.Data.Common ¿¡ ÀÖ´Â ±âº» Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ÀÛ¼ºµÉ ¼ö ÀÖµµ·Ï ÇÑ ºÎºÐÀÌ´Ù. ÇÏÁö¸¸, ¾Æ½±°Ôµµ ºñ·Ï ±âº» Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ÀÛ¼ºÀº °¡´ÉÇϳª DB ¼¹ö¿¡ Æ¯ÈµÈ SQL ±¸¹® µîÀº Áö¿øÇÏÁö ¸øÇÑ´Ù´Â ´ÜÁ¡ ¶ÇÇÑ ³»Æ÷Çϰí ÀÖ´Ù.
¶ÇÇÑ, ¹öÀü 2.0 ¿¡¼´Â Provider °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇÏ¿© Provider Factory Ŭ·¡½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÌÀüº¸´Ù ³ªÀº À¯¿¬¼ºÀ» Á¦°øÇÏ°Ô µÈ´Ù. ProviderFactoryÀÇ GetFactory ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â »ùÇÃÄڵ带 È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ.
 |
| <±×¸²1> GetFactory ¸Þ¼Òµå (Ãâó: MSDN Library) |
 |
| <±×¸²2> GetFactory ¸Þ¼Òµå »ç¿ë ¿¹ (Ãâó: MSDN Library) |
<±×¸² 1>Àº GetFactory ¸Þ¼Òµå¿¡ ´ëÇÑ ¼Ò°³À̸ç, <±×¸² 2>´Â »ùÇà ¼Ò½ºÀÌ´Ù. <±×¸² 2>¿¡ ³ª¿Â °Íó·³ DataRow ¿Í String À» ÀÌ¿ëÇÏ¿© Provider Factory ¸¦ ¾Ë¾Æ³»°Ô µÈ´Ù.
ÀÌó·³ ¹öÀü 2.0 ¿¡¼´Â Provider¿¡ ´ëÇÑ ºÎºÐÀÌ º¸´Ù À¯¿¬¼ºÀ» °®°Ô µÇ¾ú´Ù´Âµ¥ Àǹ̸¦ µÎ°íÀÚ ÇÑ´Ù.
¿¬°áÇ®¸µ(Conncetion Poolling)ÀÇ Çâ»ó
¿¬°áÇ®¸µ(Connection Pooling)À̶ó´Â °³³äÀº ADO ¶§ºÎÅÍ ²ÙÁØÈ÷ Áß¿äÇÑ À§Ä¡¸¦ Â÷ÁöÇϰí ÀÖ´Ù. ¿¬°áÇ®¸µÀÌ ¾î¶² Çâ»óÀ» °¡Á®¿Ô´ÂÁö¿¡ ´ëÇØ ³íÇϱâ Àü¿¡ ¿¬°áÇ®¸µÀÌ ¹«¾ùÀÎÁö °£´ÜÈ÷ ¼Ò°³ÇϰíÀÚ ÇÑ´Ù(ÇÊÀÚ°¡ Çö¾÷¿¡¼ °³¹ßÇÏ¸é¼ ¾Æ½±°Ôµµ ¿¬°áÇ®¸µÀÇ °³³äÀ» ÆÄ¾ÇÇÏÁö ¸øÇÏ´Â °³¹ßÀÚµéÀ» º¸¾Ò±â ¶§¹®¿¡ ÀÌ ±âȸ¸¦ ÅëÇØ ¼Ò°³ÇÏ°í ½Í±â ¶§¹®À̱⵵ ÇÏ´Ù.).
¿¬°áÇ®¸µÀ̶õ ´ëü ¹«¾ùÀ̱淡 Áß¿äÇÑ À§Ä¡¸¦ Â÷ÁöÇϴ°¡? ÀϹÝÀûÀ¸·Î ¿ì¸®´Â ÄÚµå »ó¿¡ µ¥ÀÌÅÍ º£À̽º¿¡ ´ëÇÑ ¿¬°áÀ» »ý¼ºÇÒ ¶§ ´ÙÀ½°ú °°Àº ±¸¹®À» ÀÛ¼ºÇÏ°Ô µÈ´Ù.
Dim adoCon as new SqlConnection(¿¬°á¹®ÀÚ¿) : adoCon.Open()
ÀÌ ¶§ ADO´Â ÇϳªÀÇ Ç®(Pool)À» »ý¼ºÇÏ°Ô µÈ´Ù. ÀÌ Ç®ÀÌ ÇÏ´Â ÀÏÀº µ¿ÀÏÇÑ Ä¿³Ø¼ÇÀÇ ¿äû(¿©±â¼ µ¿ÀÏÇÏ´Ù´Â Àǹ̴ ´Ü¼øÈ÷ µ¿ÀÏÇÑ DB¿¡ ´ëÇÑ ¿¬°áÀÌ ¾Æ´Ñ µ¿ÀÏÇÑ ¿¬°á ¹®ÀÚ¿À» ÅëÇÑ ¿äûÀ» ¸»ÇÑ´Ù)ÀÌ µé¾î¿ÔÀ» ¶§ »õ·Î¿î Ä¿³Ø¼ÇÀ» »ý¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ±âÁ¸¿¡ »ý¼ºµÇ¾î ÀÖ´ø Ç®À» ¹ÝȯÇϴ Ȱ¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¿ªÇÒÀ» ÇÏ°Ô µÈ´Ù. ÀÌó·³ ¸Å¹ø ¿äû ½Ã¸¶´Ù Ä¿³Ø¼ÇÀ» »ý¼ºÇÏ´Â °Íº¸´Ù ÀÛ¼ºµÈ Ç®À» Ȱ¿ëÇÑ´Ù´Â °Í¸¸À¸·Î ¸®¼Ò½ºÀÇ È°¿ëµµ´Â ±×¸¸Å ³ô¾ÆÁö°Ô µÇ´Â °ÍÀÌ´Ù. ±×¸®°í, ConnectionÀÌ Close³ª ȤÀº Dispose°¡ µÉ ¶§ Ç®¿¡ ´Ù½Ã ¹ÝȯµÇ°Ô µÈ´Ù. ¸¸¾à Ç®¿¡ »ç¿ë °¡´ÉÇÑ ÀÚ¿øÀÌ ¾øÀ¸¸é »õ·Î¿î ¿¬°áÀ» »ý¼ºÇÏ¿© ¹ÝȯÇÏ°Ô µÈ´Ù. À̰ÍÀÌ ¿¬°áÇ®¸µÀÇ ±âº» °³³äÀ̶ó ÇÒ ¼ö ÀÖ´Ù.
ADO.NET ¿¡¼´Â ¿¬°áÇ®¸µ¿¡ ´ëÇÑ º¸´Ù »ó¼¼ÇÑ ¼³Á¤À» Á¦°øÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¾î, Ç® Å©±â¿Í ¿¬°á ¼Ò¸ê ½Ã°£ÀÇ ÁöÁ¤ µî¿¡ ´ëÇÑ ¼³Á¤ÀÌ °¡´ÉÇϵµ·Ï Çâ»óµÇ¾ú´Ù. ¶ÇÇÑ, ADO.NET 2.0¿¡¼´Â ClearAllPools¿Í ClearPool À̶ó´Â »õ·Î¿î ¸Þ¼Òµå¸¦ Á¦°øÇÏ°Ô µÇ´Âµ¥, ÀÌ ¸Þ¼Òµå¸¦ ÅëÇØ ƯÁ¤ ȤÀº ÀüüÀÇ Ç®À» Áö¿ï ¼ö ÀÖ°Ô µÇ¾ú´Ù.
µ¥ÀÌÅͺ£À̽º ÇÁ·Î±×·¡¹Ö½Ã ¿¬°á Ç®¸µ¿¡ ´ëÇÑ ÀÌÇØ¸¦ ÅëÇØ ÀÚ½ÅÀÇ ProductÀÇ Quality¸¦ ³ôÀ̵µ·Ï ÇÏÀÚ.
¹èÄ¡ ¾÷µ¥ÀÌÆ®ÀÇ Áö¿ø
DataSetÀ» »ç¿ëÇÏ¿© µÑ ÀÌ»óÀÇ ÇàÀ» º¯°æ(Ãß°¡, »èÁ¦, ¼öÁ¤)ÇÏ°Ô µÇ´Â °æ¿ì DataAdapter´Â °¢°¢ÀÇ Çà¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÏ°Ô µÈ´Ù. À̶§ º¯°æÇϰíÀÚ ÇÏ´Â ÇàÀÇ ¼ö¸¸Å DataAdapter´Â °¢ ÇàÀ§¸¦ üũÇÏ¿© ½ÇÇàÇϱ⠶§¹®¿¡ ±×¸¸Å ¶ó¿îµåÆ®¸³ÀÌ ¹ß»ýÇÏ¿© ¼º´ÉÀ» ÀúÇϽÃŰ°Ô µÈ´Ù. À̶§ ¹èÄ¡ ¾÷µ¥ÀÌÆ®¸¦ ÅëÇØ ÇØ´ç ³×Æ®¿öÅ©ÀÇ ¶ó¿îµåÆ®¸³À» °¨¼Ò ½Ãų ¼ö ÀÖ°Ô µÇ¾ú´Ù. ¹èÄ¡ ¾÷µ¥ÀÌÆ®¸¦ ÁöÁ¤ÇÏ´Â ±¸¹®Àº ´ÙÀ½°ú °°´Ù.
DataAdapter.UpdateBatchSize = Int32
¿©±â¼ Size´Â 0, 1, ȤÀº 1ÀÌ»óÀ» ÁöÁ¤ÇÏ°Ô µÇ´Âµ¥ 0 Àº ¹èÄ¡ ¾÷µ¥ÀÌÆ®ÀÇ Ãִ븦 ³ªÅ¸³»¸ç 1Àº ¿¹Àü°ú °°ÀÌ °¢°¢ÀÇ ÇàÀ» ó¸®ÇÏ´Â °Í°ú µ¿ÀÏÇÏ´Ù. 1 ÀÌ»óÀÎ °æ¿ì¿¡´Â ÁöÁ¤µÈ ¼ö¸¸ÅÀ» ³ªÅ¸³»°Ô µÈ´Ù.
Á» ´õ È®½ÇÇÑ ÀÌÇØ¸¦ µ½°íÀÚ MSDN¿¡ ³ª¿À´Â ¹èÄ¡ ¾÷µ¥ÀÌÆ®ÀÇ »ùÇà Äڵ带 Ãà¾àÇÏ¿© ¹ßÃéÇÏ¿´´Ù.
 |
| <±×¸² 3> ¹èÄ¡ ¾÷µ¥ÀÌÆ® »ùÇà ÄÚµå(Ãâó: MSDN Library) |
»ùÇÃÄڵ带 »ìÆìº¸¸é BatchUpdate¿¡ DataTable°ú ¹èÄ¡ »çÀÌÁ ByVal·Î Àü´ÞÇÏ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. Sub ³»¿¡´Â Using ºí·ÏÀ¸·Î °¨½Î Äڵ带 ÀÛ¼ºÇÏ¿´À¸¸ç (Using¿¡ ´ëÇØ¼´Â "VB.NET 2005, »ý»ê¼º°ú ¼º´ÉÀÌ Çâ»óµÇ´Â Àϰö°¡Áö ±â´É" Ä®·³¿¡ ¼Ò°³ÇÏ¿´´Ù) ºí·Ï ¾È¿¡ DataAdapter¸¦ »ý¼º ÈÄ ÇÏ´Ü¿¡ °¢°¢ Update, Insert, Delete Command ¸¦ ÀÛ¼ºÇÏ¿´´Ù. ±× ÈÄ DataAdapterÀÇ UpdateBatchSize¿¡ Àü´ÞµÈ batchsize ¸¦ ÁöÁ¤ÇÏ¿© Update 󸮸¦ ÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌó·³ ¹èÄ¡ ¾÷µ¥ÀÌÆ®¸¦ »ç¿ëÇÏ°Ô µÇ¸é ±×¸¸Å ³×Æ®¿öÅ©ÀÇ ¶ó¿îµåÆ®¸³À» °¨¼Ò½Ãų ¼ö ÀÖ°Ô µÈ´Ù.
ÇÊÀÚ ½ÉÀÇÁØ´ÔÀº MCSD .NETÀ̸ç À¥Á¨¿¡¼ °³¹ßÀÚ·Î ±Ù¹« ÁßÀÌ´Ù.