¼±¾ðµÈ Àӽà Å×À̺íÀº Àӽà Å×À̺íÀ» ÀÛ¼ºÇÑ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ½ÇÇàµÇ´Â SQL¹®¿¡¼¸¸ ¾×¼¼½ºµÉ ¼ö ÀÖ´Â Àӽà Å×À̺íÀÔ´Ï´Ù. ¼±¾ðµÈ Àӽà Å×À̺íÀº µ¥ÀÌÅͺ£À̽º¿¡ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¿¬°áµÇ¾î ÀÖ´Â Áö¼Ó±â°£ ÀÌÈıîÁö Áö¼ÓµÇÁö ¾Ê½À´Ï´Ù.
¼±¾ðµÈ Àӽà Å×À̺íÀ» »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» ÀáÀçÀûÀ¸·Î Çâ»ó½ÃŰ½Ê½Ã¿À. ¼±¾ðµÈ Àӽà Å×À̺íÀ» ÀÛ¼ºÇÒ ¶§ DB2´Â ½Ã½ºÅÛ Ä«Å»·Î±× Å×ÀÌºí¿¡ Ç׸ñÀ» »ðÀÔÇÏÁö ¾ÊÀ¸¹Ç·Î, ¼¹ö¿¡¼ īŻ·Î±× °æÇÕ ¹®Á¦°¡ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. ÀÏ¹Ý Å×À̺í°ú ºñ±³ÇßÀ» ¶§ DB2´Â ¼±¾ðµÈ Àӽà Å×À̺íÀ̳ª ÇàÀ» Àá±×Áö ¾Ê°í ¼±¾ðµÈ Àӽà Å×À̺íÀ̳ª ±× ³»¿ëÀ» ±â·ÏÇÏÁö ¾Ê½À´Ï´Ù. ÇöÀç ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ Å×À̺íÀ» ÀÛ¼ºÇÏ¿© ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ ó¸®Çϰí, ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ µ¥ÀÌÅÍ Ã³¸®°¡ ³¡³µÀ» ¶§ ÀÌ·± Å×À̺íÀ» Á¦°ÅÇϸé ÀÏ¹Ý Å×ÀÌºí ´ë½Å ¼±¾ðµÈ Àӽà Å×ÀÌºí »ç¿ëÀ» °í·ÁÇØ º¸½Ê½Ã¿À.
µ¿½Ã »ç¿ëÀÚ¿¡ ´ëÇØ ÀÛ¼ºµÈ ÀÀ¿ëÇÁ·Î±×·¥À» °³¹ßÇϸé ÀÀ¿ëÇÁ·Î±×·¥Àº ¼±¾ðµÈ Àӽà Å×À̺íÀ» »ç¿ëÇÕ´Ï´Ù. ÀÏ¹Ý Å×À̺í°ú´Â ´Þ¸® ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡¼´Â À̸§ Ãæµ¹ÀÌ ÀϾÁö ¾Ê½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °¢ ÀνºÅϽº¿¡ ´ëÇØ DB2´Â µ¿ÀÏÇÑ À̸§À¸·Î ¼±¾ðµÈ Àӽà Å×À̺íÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀÏ¹Ý Å×À̺íÀ» »ç¿ëÇÏ¿© ¸¹Àº ¾çÀÇ Àӽà µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â µ¿½Ã »ç¿ëÀÚ¿¡ ´ëÇØ ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ·Á¸é, ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °¢ ÀνºÅϽº¿¡¼ Àӽà µ¥ÀÌÅ͸¦ º¸À¯ÇÏ´Â ÀÏ¹Ý Å×ÀÌºí¿¡ °íÀ¯ À̸§À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¾ðÁ¦µçÁö »ç¿ëÇÒ ¼ö ÀÖ´Â Å×À̺íÀ» À̸§À» ÃßÀûÇÏ´Â ´Ù¸¥ Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù. ¼±¾ðµÈ Àӽà Å×À̺íÀ» »ç¿ëÇϸé Àӽà µ¥ÀÌÅÍ¿¡ ´ëÇØ ¼±¾ðµÈ Àӽà Å×À̺í À̸§À» ÇÑ ¹ø¸¸ ÁöÁ¤ÇÏ¸é µË´Ï´Ù. DB2´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °¢ ÀνºÅϽº¿¡¼ °íÀ¯ Å×À̺íÀ» »ç¿ëÇÏ°Ô ¸¸µì´Ï´Ù.
¼±¾ðµÈ Àӽà Å×À̺íÀ» »ç¿ëÇÏ·Á¸é ´ÙÀ½ ´Ü°è¸¦ ¼öÇàÇϽʽÿÀ.
´Ü°è 1. | USER TEMPORARY TABLESPACE°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. USER TEMPORARY TABLESPACE°¡ ¾øÀ¸¸é CREATE USER TEMPORARY TABLESPACE¹®À» ½ÇÇàÇϽʽÿÀ. |
´Ü°è 2. | ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ DECLARE GLOBAL TEMPORARY TABLE¹®À» ½ÇÇàÇϽʽÿÀ.
|
¼±¾ðµÈ Àӽà Å×À̺íÀÇ ½ºÅ°¸¶´Â Ç×»ó SESSIONÀÔ´Ï´Ù. SQL¹®¿¡¼ ¼±¾ðµÈ Àӽà Å×À̺íÀ» »ç¿ëÇÏ·Á¸é, SESSION ½ºÅ°¸¶ ±ÔÁ¤ÀÚ¸¦ ¸í½ÃÀûÀ¸·Î »ç¿ëÇÏ¿© Å×À̺íÀ» ÂüÁ¶Çϰųª SESSIONÀÇ DEFAULT ½ºÅ°¸¶¸¦ »ç¿ëÇÏ¿© ±ÔÁ¤µÇÁö ¾ÊÀº ÂüÁ¶¸¦ ±ÔÁ¤ÇÕ´Ï´Ù. ´ÙÀ½ ¿¹¿¡¼ Å×À̺í À̸§Àº ´ÙÀ½ ¸í·É¹®À» »ç¿ëÇÏ¿© TT1À¸·Î ¸í¸íµÈ ¼±¾ðµÈ Àӽà Å×À̺íÀ» ÀÛ¼ºÇÒ ¶§ SESSION ½ºÅ°¸¶ À̸§À¸·Î Ç×»ó ±ÔÁ¤µË´Ï´Ù.
DECLARE GLOBAL TEMPORARY TABLE TT1
¾ÕÀÇ ¿¹¿¡¼ ÀÛ¼ºµÈ ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡¼ column1 Ä÷³ÀÇ ³»¿ëÀ» ¼±ÅÃÇÏ·Á¸é ´ÙÀ½ ¸í·É¹®À» »ç¿ëÇϽʽÿÀ.
SELECT column1 FROM SESSION.TT1;
DB2¸¦ ÅëÇØ SESSION ½ºÅ°¸¶°¡ ÀÖ´Â Áö¼Ó Å×À̺íÀ» ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. SESSION.TT3ÀÇ ¿ÏÀüÇÑ À̸§ÀÇ Áö¼Ó Å×À̺íÀ» ÀÛ¼ºÇϸé, SESSION.TT3ÀÇ ¿ÏÀüÇÑ À̸§ÀÇ ¼±¾ðµÈ Àӽà Å×À̺íÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± »óȲ¿¡¼ DB2´Â Ç×»ó ¶È°°ÀÌ ±ÔÁ¤µÈ À̸§À» »ç¿ëÇÏ´Â Áö¼Ó ¹× ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡¼ ÇØ°áÇÕ´Ï´Ù. Áö¼Ó Å×À̺í°ú ¼±¾ðµÈ Àӽà Å×ÀÌºí°£ÀÇ È¥¶õÀ» ÇÇÇÏ·Á¸é SESSION ½ºÅ°¸¶¸¦ »ç¿ëÇÏ¿© Áö¼Ó Å×À̺íÀ» ÀÛ¼ºÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù.
Å×À̺í, ºä ¶Ç´Â SESSI ½ºÅ°¸¶·Î ±ÔÁ¤µÈ º°¸í¿¡ ´ëÇÑ Á¤Àû SQL ÂüÁ¶¸¦ Æ÷ÇÔÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇϸé, DB2 »çÀü ó¸® ÄÄÆÄÀÏ·¯´Â ¹ÙÀÎµå ½Ã°£¿¡ ±× ¸í·É¹®À» ÄÄÆÄÀÏÇÏÁö ¾Ê°í ¸í·É¹®À» "ÄÄÆÄÀÏÇØ¾ß ÇÏ´Â °Í"À¸·Î Ç¥½ÃÇÕ´Ï´Ù. ·±Å¸ÀÓ½Ã, DB2´Â ¸í·É¹®À» ÄÄÆÄÀÏÇÕ´Ï´Ù. ÀÌ µ¿ÀÛÀº ÁõºÐ½Ä ¹ÙÀεùÀ̶ó°í ÇÕ´Ï´Ù. DB2´Â Å×À̺í, ºä ±×¸®°í SESSION ½ºÅ°¸¶·Î ±ÔÁ¤µÈ º°¸í¿¡ ´ëÇÑ Á¤Àû SQL ÂüÁ¶¿¡ ´ëÇØ ÁõºÐ½Ä ¹ÙÀεùÀ» ÀÚµ¿À¸·Î ¼öÇàÇÕ´Ï´Ù. BIND ¶Ç´Â PRECOMPILE ¸í·É¿¡¼ VALIDATE RUN ¿É¼ÇÀ» ÁöÁ¤ÇÏ¿© ÀÌ·± ¸í·É¹®¿¡¼ ÁõºÐ½Ä ¹ÙÀεùÀ» »ç¿ëÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.
DECLARE GLOBAL TEMPORARY TABLE¹®À» Æ÷ÇÔÇÏ´Â Æ®·£Àè¼Ç¿¡ ´ëÇØ ROLLBACK¹®À» ½ÇÇàÇϸé DB2´Â ¼±¾ðµÈ Àӽà Å×À̺íÀ» Á¦°ÅÇÕ´Ï´Ù. ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ ´ëÇØ DROP TABLE¹®À» ½ÇÇàÇϸé, ±× Æ®·£Àè¼Ç¿¡ ´ëÇØ ROLLBACK¹®À» ½ÇÇàÇÒ ¶§¸¸ ºó ¼±¾ðµÈ Àӽà Å×À̺íÀ» º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù. DROP TABLE¹®ÀÇ ROLLBACKÀº ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ ÀÖ´Â ÇàÀ» º¹¿øÇÏÁö ¾Ê½À´Ï´Ù.
¼±¾ðµÈ Àӽà Å×À̺íÀÇ ±âº» µ¿ÀÛÀº Æ®·£Àè¼ÇÀ» È®¾àÇÒ ¶§ Å×ÀÌºí¿¡¼ ¸ðµç ÇàÀ» »èÁ¦ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª Çϳª ÀÌ»óÀÇ WITH HOLD Ä¿¼°¡ ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ °è¼Ó ¿·Á ÀÖÀ¸¸é, DB2´Â Æ®·£Àè¼ÇÀ» È®¾àÇÒ ¶§ Å×ÀÌºí¿¡¼ ÇàÀ» »èÁ¦ÇÏÁö ¾Ê½À´Ï´Ù. Æ®·£Àè¼ÇÀ» È®¾àÇÒ ¶§ ¸ðµç ÇàÀ» »èÁ¦ÇÏÁö ¾ÊÀ¸·Á¸é, DECLARE GLOBAL TEMPORARY TABLE¹®¿¡¼ ON COMMIT PRESERVE ROWSÀýÀ» »ç¿ëÇÏ¿© Àӽà Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù.
Æ®·£Àè¼Ç¿¡¼ INSERT, UPDATE ¶Ç´Â DELETE¹®À» »ç¿ëÇÏ¿© ¼±¾ðµÈ Àӽà Å×À̺íÀÇ ³»¿ëÀ» ¼öÁ¤Çϰí, ±× Æ®·£Àè¼ÇÀ» ±¸°£ º¹¿øÇϸé DB2´Â ¼±¾ðµÈ Àӽà Å×À̺íÀÇ ¸ðµç ÇàÀ» »èÁ¦ÇÕ´Ï´Ù. INSERT, UPDATE ¶Ç´Â DELETE¹®À» »ç¿ëÇÏ¿© ¼±¾ðµÈ Àӽà Å×À̺íÀÇ ³»¿ëÀ» ¼öÁ¤ÇÏ·Á°í Çϴµ¥, ¸í·É¹®ÀÌ ½ÇÆÐÇϸé DB2´Â ¼±¾ðµÈ Àӽà Å×À̺íÀÇ ¸ðµç ÇàÀ» »èÁ¦ÇÕ´Ï´Ù.
ÆÄƼ¼ÇµÈ ȯ°æ¿¡¼ ³ëµå ½ÇÆÐ°¡ ¹ß»ýÇÏ¸é ½ÇÆÐÇÑ ³ëµå¿¡ ÆÄƼ¼ÇÀÌ ÀÖ´Â ¸ðµç ¼±¾ðµÈ Àӽà Å×À̺íÀº »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. ÀÌ·¸°Ô »ç¿ëÇÒ ¼ö ¾ø´Â ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ ´ëÇÑ ¸ðµç ÈÄ¼Ó ¾×¼¼½º´Â ¿À·ù¸¦ ¸®ÅÏÇÕ´Ï´Ù(SQL1477N). ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÒ ¼ö ¾ø´Â ¼±¾ðµÈ Àӽà Å×À̺íÀ» ¸¸³ª¸é, ÀÀ¿ëÇÁ·Î±×·¥Àº Å×À̺íÀ» »èÁ¦Çϰųª DECLARE GLOBAL TEMPORARY TABLE¹®¿¡¼ WITH REPLACEÀýÀ» ÁöÁ¤ÇÏ¿© Å×À̺íÀ» ´Ù½Ã ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼±¾ðµÈ Àӽà Å×À̺íÀº ¸î °¡Áö Á¦ÇÑ»çÇ×ÀÇ Àû¿ëÀ» ¹Þ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ ´ëÇØ »öÀÎ, º°¸í ¶Ç´Â ºä¸¦ Á¤ÀÇÇÒ ¼ö ¾ø½À´Ï´Ù. IMPORT¿Í LOAD¸¦ »ç¿ëÇÏ¿© ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ »óÁÖ½Ãų ¼ö ¾ø½À´Ï´Ù. DECLARE GLOBAL TEMPORARY TABLE¹®ÀÇ ¿ÏÀüÇÑ ±¸¹®°ú ¼±¾ðµÈ Àӽà Å×ÀÌºí¿¡ ´ëÇÑ ¿ÏÀüÇÑ Á¦ÇÑ»çÇ× ¸ñ·Ï¿¡ ´ëÇØ¼´Â SQL ÂüÁ¶¼¸¦ ÂüÁ¶ÇϽʽÿÀ.