MS-SQL > Transaction & Lock - ¶ô¿¡ ´ëÇؼ µî·ÏÀÏ : 2017-07-03 19:42 Á¶È¸¼ö : 52,710¾È³çÇϼ¼¿ä... ^^;
2001³âµµ ÀÌÁ¦ ÇÑ´Þ ³²Áþ ³²¾ÆÀֳ׿©.... ^^ ¿À´ÃÀº ¶ô¿¡ ´ëÇؼ °£´ÜÈ÷ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ¶ô¿¡¼ °¡Àå Áß¿äÇÑ °Ç ¾Õ¼ ¸»¾¸µå·È´Ù½ÃÇÇ, ÀÏ°ü¼ºÀÔ´Ï´Ù. 9.4.1 ¶ô À̶õ? ¿¹¸¦µé¾î °°Àº µ¥ÀÌŸº£À̽º¿¡ µÎ»ç¶÷ÀÌ °°Àº ÀÛ¾÷À» µ¿½Ã¿¡ ÇÑ´Ù°í °¡Á¤ÇØ º¼±î¿©? 1. UPDATE Å×À̺í SET ±Ý¾×=±Ý¾×-50000 WHERE °èÁ¹øÈ£_Çʵå='°èÁ¹øÈ£' --> A 2. SELECT * FROM Å×À̺í --> B À§ÀÇ ÀÛ¾÷À» µÎ »ç¶÷ÀÌ µ¿½Ã¿¡ ÇÕ´Ï´Ù. °èÁ¹øÈ£¿¡ UPDATE¸¦ ÇÕ´Ï´Ù. ±×·¯³ª, ¾ÆÁ÷ COMMIT¸¦ ½ÃÅ°Áø ¾Ê¾Ò¾î¿©. ±×·³, ¿Ï·áµÈ°Ô ¾Æ´Ï°ÚÁÒ? ÀÌ·± »óȲ¿¡¼ ´Ù¸¥ »ç¶÷ÀÌ 2¹ø ÀÛ¾÷À» ½ÇÇà½ÃÅ°¸é MS_SQL¿¡¼´Â ¾î¶»°Ô ¹ÝÀÀÇұ? ¿©·¯ºÐÀÌ Äõ¸®ºÐ¼®±â¸¦ ¿¾îº¸½Ã°í Á÷Á¢ Å×½ºÅä ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ï´Ù. ¾Æ·¡ ±×¸²À» º¸½ÃÁ®... À§ÀÇ ±×¸²À» º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸, ÀÏ´Ü Æ®·£Àè¼Ç󸮰¡ ½ÃÀÛÀÌ µÇ°í, UPDATE ¸¦ ½ÃÄ×½À´Ï´Ù. ¾ÆÁ÷ commit À̳ª rollback 󸮸¦ ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ ¿Ï·áµÈ°Ô ¾Æ´ÏÁö¿©. ÀÌ·± »óȲ¿¡¼ ¿À¸¥ÂÊ¿¡¼ ´Ù½Ã select ¸í·ÉÀ» ³»·ÈÀ»¶§,,, ´ë±âÇÏ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿©±â¿¡¼ ¹Ù·Î °á°ú¸¦ »Ñ·ÁÁÖ°Ô µÈ´Ù¸é,,, ÀÏ°ü¼ºÀÌ ¶³¾îÁö°Ô µÇ´Â°ÍÀÌÁÒ. ¿Ö³ÄÇϸé A¶ó´Â »ç¶÷ÀÌ commitÀ» ÇÒÁö, rollback¸¦ ÇÒÁö´Â ¾ÆÁ÷ ¸ð¸£±â ¶§¹®ÀÔ´Ï´Ù. À§ÀÇ °æ¿ì°¡ ¹Ù·Î ºí·°Å·ÀÔ´Ï´Ù. Å×ÀÌºí¿¡ ¶ôÀÌ °É·Á ÀÖÁö¿ä. 9.4.2 ¶ô Á¤º¸ º¸±â. ½Ã½ºÅÛ ÀúÀå ÇÁ·Î½ÃÁ®¸¦ ÀÌ¿ëÇؼ ¶ô ½Ã½ºÅÛÀÇ ¶ôÁ¤º¸¸¦ ¾Ë¾Æº¸Áö¿ä. sp_lock ¶õ ÇÁ·Î½ÃÁ®°¡ ÀÖ½À´Ï´Ù. sp_lock´Â Çö ½Ã½ºÅÛÀÇ ¶ô Á¤º¸¸¦ »ó¼¼ÇÏ°Ô º¸¿©ÁÖ´Â ÇÁ·Î½ÃÁ® ÀÔ´Ï´Ù. EM¿¡¼ Á¤º¸¸¦ ÇÔ º¼±î¿©??? ¾î¶°½Ê´Ï±î?? ÀÚ¼¼È÷ ³ª¿ÀÁö¿©? 9.4.3 ¶ôÀÇ µ¥ÀÌŸ ¿µ¿ª. SQL ¼¹ö¿¡¼ ¶ôÀÌ °É¸®´Â µ¥ÀÌÅÍ ¿µ¿ªÀÇ ±âº» ´ÜÀ§´Â °¢ ·¹ÄÚµå´ÜÀ§À̸ç,KEY,PAGE,EXTENT,TABLE,DATABASE ´ÜÀ§±îÁö È®ÀåµÉ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ Ç¥´Â ¶ôÀÌ °É¸®´Â ¿µ¿ª ´ÜÀ§¿¡ °üÇÑ Ç¥¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
9.4.4 ¶ôÀÇ Á¾·ù. 1. °øÀ¯ ¶ô(Shared Lock)(S) SELECT ¹®°ú °°ÀÌ Å¬¶óÀ̾ðÆ®°¡ Àбâ ÀÛ¾÷ÇÏ´Â µ¥ÀÌÅÍ ¿µ¿ª¿¡ °É¸®´Â ¶ôÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î °øÀ¯¶ôÀº µ¥ÀÌÅ͸¦ Àд µ¿¾È¿¡¸¸ ÇØ´ç ¿µ¿ª¿¡ °É¸®°Ô µÇ¸ç ÇöÀç Æ®·£Àè¼ÇÀÌ Á¾·áµÇÁö ¾Ê¾Æ ¶ôÀÌ °É·ÁÀÖ´Â »óÅ¿¡¼µµ ´Ù¸¥ Æ®·£Àè¼Ç¿¡¼µµ Ãß°¡ÀûÀ¸·Î ¶ôÀ» °É¼ö ÀÖ½À´Ï´Ù. 2. ´Üµ¶ ¶ô(Exclusive Lock)(X) INSERT,UPDATE,DELETE ¹®µî Ŭ¶óÀÌ·±Æ®°¡ ¾²±â ÀÛ¾÷À» ÇÏ´Â µ¥ÀÌÅÍ ¿µ¿ª¿¡ °É¸®´Â ¶ôÀÔ´Ï´Ù. ´Üµ¶ ¶ô¿¡ °É¸®´Â ´Ù¸¥ Æ®·£Àè¼Ç¿¡¼´Â Ãß°¡ÀûÀÎ Exclusive LockÀ» °É¼ö°¡ ¾ø½À´Ï´Ù. 3. ¾÷µ¥ÀÌÆ® ¶ô(Update Lock(U) Update ¹® °°ÀÌ Å¬¶óÀ̾ðÆ®°¡ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ·Á°í ÇÏ´Â µ¥ÀÌÅÍ ¿µ¿ª¿¡ °Å¸®´Â ¶ôÀÔ´Ï´Ù. ¼¹ö¿¡¼´Â update ¹® 󸮴 µ¥ÀÌÅ͸¦ ¼öÁ¤ÇϱâÀü¿¡ ¸ÕÀú Update LockÀ» °É°í ÇØ´ç µ¥ÀÌÅÍ¿µ¿ªÀ» ÀÐÀ¸¸ç Exclusive LockÀ» °ÇÈÄ¿¡ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ°Ô µË´Ï´Ù. 4. ³»Àç Àá±Ý(Intent Lock) ÀÌ°ÍÀº ¼¹ö¿¡¼ µ¥ÀÌÅͺ£À̽º³ª Å×ÀÌºí ³»ÀÇ ÀϺΠµ¥ÀÌÅÍ ¿µ¿ª¿¡ ÀÌ¹Ì °øÀ¯¶ôÀ̳ª ´Üµ¶¶ôÀÌ °É·ÁÀÖ´Ù´Â °ÍÀ» ´Ù¸¥ Ä¿³Ø¼Ç¿¡°Ô ¾Ë¸®±â À§Çؼ »ç¿ëÇÏ´Â ¶ôÀÔ´Ï´Ù. Intent LockÀº ÀÌ·¯ÇÑ ¾Ë¸²ÀÇ ¿ªÇÒÀ» ÇÕ´Ï´Ù. µ¥ÀÌÅÍ ÀϺο¡ ¶ôÀÌ °É·ÈÀ» °æ¿ì Å×ÀÌºí¿¡ Intent LockÀÌ °É·Á ´Ù¸¥ Æ®·£Àè¼Ç¿¡¼ Å×ÀÌºí¿¡ Exclusive LockÀ» °Å´Â °ÍÀ» ¸·½À´Ï´Ù. »õ·Î¿î Æ®·£Àè¼ÇÀº Exclusive LockÀ» °É ¼ö ÀÖ´ÂÁö È®ÀÎ ÀÛ¾÷À» ÇÏ´Â ´ë½Å¿¡ Intent LockÀ» È®Àθ¸ ÇÏ¸é µÇ¹Ç·Î ¼º´ÉÀÌ Çâ»óµË´Ï´Ù. Intent LockÀº ¼¼°¡Áö°¡ ÀÖ½À´Ï´Ù. Intent Shared(IS) : ÇÏÀ§ ¿ÀºêÁ§Æ®¿¡ Shared LockÀÌ °É·ÈÀ» °æ¿ì Intent Exclusive(IX) : ÇÏÀ§ ¿ÀºêÁ§Æ®¿¡ Exclusive LockÀÌ °É·ÈÀ» °æ¿ì Shared with Intent Exclusive(SIX) : ÇÏÀ§ ¿ÀºêÁ§Æ®¿¡ Shared Lock°ú Exclusive LockÀÌ °É·ÈÀ» °æ¿ì 5. ½ºÅ°¸¶ ¶ô(Schema Lock) ½ºÅ°¸¶ ¶ôÀº Å×À̺íÀ̳ª À妽ºÀÇ ½ºÅ°¸¶¸¦ ÂüÁ¶ÇÏ´Â ÀÛ¾÷ÀÌ ¼öÇàÁßÀ϶§ ÇØ´ç Å×À̺íÀ̳ª À妽º°¡ ¼öÁ¤µÇ°Å³ª Áö¿öÁö´Â °ÍÀ» ¸·±â À§Çؼ »ç¿ëÇÏ´Â ¶ôÀÔ´Ï´Ù. ¿À´ÃÀº ¿©±â±îÁö ¶ô¿¡ ´ëÇؼ È®ÀÎÇØ º¸¾Ò½À´Ï´Ù. ¾î·Á¿î°Å º°·Î ¾øÁö¿©??? ^^; ÇູÇϼ¼¿ä.
|