¾È±Ô °øºÎ¹æ

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
´ÜÀ§±îÁö È®ÀåµÉ¼ö ÀÖ½À´Ï´Ù.

¾Æ·¡ÀÇ Ç¥´Â ¶ôÀÌ °É¸®´Â ¿µ¿ª ´ÜÀ§¿¡ °üÇÑ Ç¥¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

 
¶ôÀÌ °É¸®´Â ¿µ¿ª ´ÜÀ§
´Ü À§ ³» ¿ë
RID
KEY
PAGE
EXTENT
TABLE
DATABASE
Å×À̺í¾ÈÀÇ ÇϳªÀÇ ÇàÀ» Àá±Û¶§ »ç¿ë(·¹ÄÚµå´ÜÀ§)
À妽º¾ÈÀÇ ÇàÀ» Àá±Û¶§ »ç¿ë(·¹ÄÚµå ´ÜÀ§)
8K µ¥ÀÌŸ³ª À妽º ÆäÀÌÁö ´ÜÀ§
8°³ÀÇ ¿¬¼ÓµÈ µ¥ÀÌÅͳª À妽º ÆäÀÌÁö´ÜÀ§
Å×À̺í°ú À妽º Àüü¿¡ ´ÜÀ§
µ¥ÀÌŸº£À̽º Àüü ¿µ¿ª
  
     
  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)
   ½ºÅ°¸¶ ¶ôÀº Å×À̺íÀ̳ª À妽ºÀÇ ½ºÅ°¸¶¸¦ ÂüÁ¶ÇÏ´Â ÀÛ¾÷ÀÌ ¼öÇàÁßÀ϶§ ÇØ´ç Å×À̺íÀ̳ª À妽º°¡
   ¼öÁ¤µÇ°Å³ª Áö¿öÁö´Â °ÍÀ» ¸·±â À§Çؼ­ »ç¿ëÇÏ´Â ¶ôÀÔ´Ï´Ù.
  
  
¿À´ÃÀº ¿©±â±îÁö ¶ô¿¡ ´ëÇؼ­ È®ÀÎÇØ º¸¾Ò½À´Ï´Ù.

¾î·Á¿î°Å º°·Î ¾øÁö¿©??? ^^;
ÇູÇϼ¼¿ä.
 
¡Ø Ȥ½Ã µµ¿òÀÌ µÇ¼Ì´Ù¸é ´ñ±Û¿¡ ÇѸ¶µð ³²°ÜÁÖ¼¼¿ä!
ÀÛ¼ºÀÚ   ºñ¹Ð¹øÈ£
ÀÚµ¿±Û ¹æÁö     (ÀÚµ¿±Û ¹æÁö ±â´ÉÀÔ´Ï´Ù.)
³»¿ë   ´ñ±Û´Þ±â 
À̸ÞÀÏ ¹®ÀÇ : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.