ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß ¾È³»¼­

ºÐ»ê ¿äû(DR)À» »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º Á¶È¸

¿¬ÇÕ µ¥ÀÌÅͺ£À̽º¿¡ Á¦ÃâµÈ Á¶È¸·Î ´ÜÀÏ µ¥ÀÌÅÍ ¼Ò½º·Î »ý¼ºµÇ´Â °á°ú¸¦ ¿äûÇÒ ¼ö ÀÖÁö¸¸ º¸Åë º¹¼ö µ¥ÀÌÅÍ ¼Ò½º·Î »ý¼ºµÇ´Â °á°ú¸¦ ¿äûÇÕ´Ï´Ù. ÀϹÝÀûÀÎ Á¶È¸´Â º¹¼ö µ¥ÀÌÅÍ ¼Ò½º¿¡ ºÐ»êµÇ¹Ç·Î ºÐ»ê ¿äûÀ̶ó ÇÕ´Ï´Ù.

ÀÌ Àý¿¡¼­´Â

ºÐ»ê ¿äû(DR) ÄÚµù

ÀϹÝÀûÀ¸·Î ºÐ»ê ¿äûÀº ¼¼ °¡Áö SQL Ç¥±â¹ý Áß Çϳª ÀÌ»óÀ» »ç¿ëÇÏ¿© ºÎ¼Ó Á¶È¸, ÁýÇÕ ¿¬»êÀÚ ¹× Á¶ÀÎ subselect µî µ¥ÀÌÅ͸¦ °Ë»öÇÒ À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Àý¿¡´Â ´ÙÀ½ ½Ã³ª¸®¿À ¹®¸ÆÀÇ ¿¹°¡ ÀÖ½À´Ï´Ù. ¿¬ÇÕ ¼­¹ö´Â OS/390¿ë DB2 Universal Database µ¥ÀÌÅÍ ¼Ò½º, AS/400¿ë DB2 Universal Database µ¥ÀÌÅÍ ¼Ò½º ¹× Oracle µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½ºÇϵµ·Ï ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. Á÷¿ø Á¤º¸¸¦ Æ÷ÇÔÇÑ Å×À̺íÀº °¢ µ¥ÀÌÅÍ ¼Ò½º¿¡ ÀúÀåµË´Ï´Ù. ¿¬ÇÕ ¼­¹ö¿¡¼­´Â Å×À̺íÀÌ ÀÖ´Â À§Ä¡¸¦ Áö½ÃÇÏ´Â º°¸í UDB390_EMPLOYEES, AS400_EMPLOYEES ¹× ORA_EMPLOYEES·Î ÀÌ·± Å×À̺íÀ» ÂüÁ¶ÇÕ´Ï´Ù.(º°¸íÀº µ¥ÀÌÅÍ ¼Ò½º¸¦ ÂüÁ¶ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ÀÌ ½Ã³ª¸®¿ÀÀÇ º°¸íÀº Å×À̺íÀÌ ´Ù¸¥ RDBMS¿¡ ÀÖ´Ù´Â »ç½Ç¸¸À» °­Á¶Çϱâ À§ÇØ ÂüÁ¶ÇÕ´Ï´Ù.) ORA_EMPLOYEES ¿Ü¿¡, Oracle µ¥ÀÌÅÍ ¼Ò½º¿¡´Â Á÷¿øÀÌ »ç´Â ±¹°¡¿¡ ´ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÑ ORA_COUNTRIES º°¸íÀÇ Å×À̺íÀÌ ÀÖ½À´Ï´Ù.

ºÎ¼Ó Á¶È¸¸¦ »ç¿ëÇÑ ¿äû

AS400_EMPLOYEES Å×ÀÌºí¿¡´Â ¾Æ½Ã¾Æ¿¡ »ç´Â Á÷¿øÀÇ ÀüÈ­ ¹øÈ£°¡ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀÌ·± ÀüÈ­ ¹øÈ£¿Í ¿¬°üµÈ ±¹°¡ Äڵ嵵 ÀÖÁö¸¸ Äڵ尡 Ç¥½ÃÇÏ´Â Å×ÀÌºí¿¡¼­ ±¹°¡´Â ³ª¿­ÇÏÁö ¾Ê½À´Ï´Ù. ÄÚµå¿Í ±¹°¡´Â ORA_COUNTRIES Å×ÀÌºí¿¡ ³ª¿­µÇ¾î ÀÖ½À´Ï´Ù. ´ÙÀ½ Á¶È¸¿¡¼­´Â ºÎ¼Ó Á¶È¸¸¦ »ç¿ëÇÏ¿© Áß±¹ÀÇ ±¹°¡ Äڵ带 ¾Ë¾Æ³»¸ç SELECT¿Í WHEREÀýÀ» »ç¿ëÇÏ¿©, ´ÙÀ½°ú °°Àº ƯÁ¤ Äڵ尡 ÇÊ¿äÇÑ ÀüÈ­ ¹øÈ£¸¦ °¡Áø AS400_EMPLOYEESÀÇ Á÷¿øÀ» ³ª¿­ÇÕ´Ï´Ù.

   SELECT name, telephone
      FROM djadmin.as400_employees
      WHERE country_code IN
         (SELECT country_code
            FROM djadmin.ora_countries
            WHERE country_name = 'CHINA')

ÁýÇÕ ¿¬»êÀÚ¸¦ »ç¿ëÇÑ ¿äû

¿¬ÇÕ ¼­¹ö¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ ¼¼ °¡Áö ÁýÇÕ ¿¬»êÀÚ¸¦ Áö¿øÇÕ´Ï´Ù.

Áߺ¹ ÇàÀÌ °á°ú¿¡¼­ Á¦°ÅµÇÁö ¾Ê¾Æ Ãß°¡ Á¤·ÄÇÒ Çʿ䰡 ¾øÀ½À» Áö½ÃÇÏ´Â ALL ÇÇ¿¬»êÀÚ°¡ ¼¼ ÁýÇÕ ¿¬»êÀÚ ¸ðµÎ¿¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

°¢ Å×À̺íÀÌ ´Ù¸¥ µ¥ÀÌÅÍ ¼Ò½º¿¡ ÀÖ´Â °æ¿ì¿¡µµ ´ÙÀ½ Á¶È¸´Â AS400_EMPLOYEES ¹× UDB390_EMPLOYEES¿¡ ³ªÅ¸³­ ¸ðµç Á÷¿ø À̸§°ú ±¹°¡ Äڵ带 °Ë»öÇÕ´Ï´Ù.

   SELECT name, country_code
      FROM as400_employees
   INTERSECT
   SELECT name, country_code
      FROM udb390_employees

Á¶Àο¡ ´ëÇÑ ¿äû

°ü°èÇü Á¶ÀÎÀº µÎ °³ ÀÌ»óÀÇ Å×ÀÌºí¿¡¼­ °Ë»öÇÑ Ä÷³ÀÇ Á¶ÇÕÀÌ ÀÖ´Â °á°ú ¼¼Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. °á°ú ¼¼Æ® ÇàÀÇ Å©±â¸¦ Á¦ÇÑÇÏ´Â Á¶°ÇÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

¾Æ·¡ Á¶È¸´Â µÎ Å×ÀÌºí¿¡ ³ª¿­µÈ ±¹°¡ Äڵ带 ºñ±³ÇÏ¿© Á÷¿ø À̸§°ú ÇØ´ç ±¹°¡ À̸§À» °áÇÕÇÕ´Ï´Ù. °¢ Å×À̺íÀº ´Ù¸¥ µ¥ÀÌÅÍ ¼Ò½º¿¡ ÀÖ½À´Ï´Ù.

   SELECT t1.name, t2.country_name
      FROM djadmin.as400_employees t1, djadmin.ora_countries t2
      WHERE t1.country_code = t2.country_code

¼­¹ö ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÃÖÀûÈ­ ÃËÁø

¿¬ÇÕ ½Ã½ºÅÛ »ç¿ëÀÚ´Â ¼­¹ö ¿É¼ÇÀ̶ó ÇÏ´Â ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¿¡ Àüü·Î Àû¿ëµÇ´Â Á¤º¸¸¦ Àü¿ª īŻ·Î±×¿¡ Á¦°øÇϰųª DB2¿Í µ¥ÀÌÅÍ ¼Ò½º »çÀÌÀÇ »óÈ£ÀÛ¿ëÀ» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, µ¥ÀÌÅÍ ¼Ò½ºÀÇ ±âº» ¿ªÇÒÀ» ÇÏ´Â ÀνºÅϽºÀÇ ½Äº°ÀÚ¸¦ īŻ·Î±×È­Çϱâ À§ÇØ µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ°¡ ¼­¹ö ¿É¼Ç "³ëµå"¿¡ °ªÀ¸·Î ½Äº°ÀÚ¸¦ ÇÒ´çÇÕ´Ï´Ù.

¸î °¡Áö ¼­¹ö ¿É¼ÇÀº DB2¿Í µ¥ÀÌÅÍ ¼Ò½º »çÀÌÀÇ ÁÖ¿ä ¿µ¿ª, Á¶È¸ ÃÖÀûÈ­¸¦ ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¾î, "varchar_no_trailing_blanks" Ä÷³ ¿É¼ÇÀ» »ç¿ëÇÏ¿© DB2 ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡ µÚ °ø¹éÀÌ ¾ø´Â ƯÁ¤ µ¥ÀÌÅÍ ¼Ò½º VARCHAR Ä÷³À» ¾Ë·Á ÁÙ ¼ö ÀÖµíÀÌ, "varchar_no_trailing_blanks"¶ó°íµµ ÇÏ´Â ¼­¹ö ¿É¼ÇÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½ºÀÇ VARCHAR Ä÷³¿¡ µÚ °ø¹éÀÌ ¾ø´Ù´Â »ç½ÇÀ» ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡ ¾Ë·Á ÁÙ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± Á¤º¸¸¦ »ç¿ëÇÏ¿© ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀ¸·Î ¾×¼¼½º Àü·«À» ÀÛ¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â Ç¥ 27¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

¶ÇÇÑ Oracle µ¥ÀÌÅÍ ¼Ò½º¿¡ Ç÷£ ÈùÆ®¶ó ÇÏ´Â ¸í·É¹® ÀϺθ¦ Á¦°øÇϵµ·Ï DB2¸¦ ¼³Á¤ÇÏ´Â °ªÀ¸·Î ¼­¹ö ¿É¼Ç "plan_hints"¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷£ ÈùÆ®´Â Oracle ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀÇ ÀÛ¾÷À» µ½½À´Ï´Ù. ƯÈ÷ Ç÷£ ÈùÆ®¸¦ ÅëÇØ ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀº Å×ÀÌºí¿¡ ¾×¼¼½ºÇÒ ¶§ »ç¿ëÇÒ »öÀÎÀ̳ª °á°ú ¼¼Æ®ÀÇ µ¥ÀÌÅ͸¦ °Ë»öÇÒ ¶§ »ç¿ëÇÒ Å×À̺í Á¶ÀÎ ¼ø¼­¿Í °°Àº ¹®Á¦¸¦ ½±°Ô °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀϹÝÀûÀ¸·Î µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ°¡ ¿¬ÇÕ ½Ã½ºÅÛ¿¡ ´ëÇØ ¼­¹ö ¿É¼ÇÀ» ¼³Á¤ÇÕ´Ï´Ù. ±×·¯³ª ÇÁ·Î±×·¡¸Ó°¡ Á¶È¸¸¦ ÃÖÀûÈ­ÇÏ´Â µ¥ À¯¿ëÇÑ ¿É¼ÇÀ» Ȱ¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ORACLE1°ú ORACLE2 µ¥ÀÌÅÍ ¼Ò½ºÀÇ °æ¿ì plan_hints ¼­¹ö ¿É¼ÇÀº ±âº»°ª 'n'(¾Æ´Ï¿À, ÀÌ µ¥ÀÌÅÍ ¼Ò½º¿¡ Ç÷£ ÈùÆ®¸¦ Á¦°øÇÏÁö ¾Ê½À´Ï´Ù)À¸·Î ¼³Á¤µË´Ï´Ù. ¶ÇÇÑ ORACLE1°ú ORACLE2 µ¥ÀÌÅÍ¿¡ ´ëÇÑ ºÐ»ê ¿äûÀ» ÀÛ¼ºÇϸç, ÀÌ·± µ¥ÀÌÅÍ ¼Ò½ºÀÇ ÃÖÀûÈ­ ¾Ë°í¸®Áò¿¡¼­ ÀÌ µ¥ÀÌÅÍ¿¡ ¾×¼¼½ºÇÏ´Â Àü·«À» Çâ»ó½ÃŰ´Â µ¥ Ç÷£ ÈùÆ®°¡ À¯¿ëÇϸ®¶ó ¿¹»óÇÒ °æ¿ì¸¦ °¡Á¤Çغ¾½Ã´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¿¬ÇÕ µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áµÇ¾î ÀÖ´Â µ¿¾È 'y'(¿¹, Ç÷£ ÈùÆ®¸¦ Á¦°øÇÕ´Ï´Ù)ÀÇ ¼³Á¤À¸·Î ±âº»°ªÀ» °ãÃľµ ¼ö ÀÖ½À´Ï´Ù. ¿¬°áÀÌ ¿Ï·áµÇ¸é ¼³Á¤ÀÌ ÀÚµ¿À¸·Î 'n'À¸·Î ¹ÝÀüµË´Ï´Ù.

¿¬ÇÕ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¿¬°á Áß ¼­¹ö ¿É¼Ç ¼³Á¤À» °­Á¦ÇÏ·Á¸é SET SERVER OPTION¹®À» »ç¿ëÇϽʽÿÀ. ¼³Á¤À» Àû¿ëÇÏ·Á¸é CONNECT¹® µÚ ¿À¸¥ÂÊ¿¡ ¸í·É¹®À» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ¸í·É¹®À» µ¿ÀûÀ¸·Î ÁغñÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

SET SERVER OPTION¹®¿¡ ´ëÇØ¼­´Â SQL ÂüÁ¶¼­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. ¸ðµç ¼­¹ö ¿É¼Ç°ú ±× ¼³Á¤¿¡ ´ëÇØ¼­´Â °ü¸® ¾È³»¼­: ±¸ÇöÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]