MS-SQL > Transaction & Lock - Áßø Æ®·£Àè¼Ç(Nested Transactions) µî·ÏÀÏ : 2017-07-03 19:41 Á¶È¸¼ö : 53,264Nested TransactionÀº Æ®·£Àè¼Ç ³»¿¡¼ ´Ù½Ã Æ®·£Àè¼ÇÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
±×¸®±¸, savepoint ¶ó´Â°É ¾Ë¾Æº¼ÅÙµ¥¿ä. ÀÌ°ÍÀº Àüü Æ®·£Àè¼ÇÀÌ ¾Æ´Ï¶ó ƯÁ¤ ½ÃÁ¡±îÁöÀÇ Æ®·£Àè¼Ç¸¸ Ãë¼ÒµÇµµ·Ï ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. 9.3.1 Æ®·£Àè¼Ç ³»ÀÇ Æ®·£Àè¼Ç ó¸®(Nested Transactions) Æ®·£Àè¼Ç ³»¿¡¼ ´Ù½Ã Æ®·£Àè¼ÇÀ» Á¤ÀÇÇÒ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, °¡Àå ¸ÕÀú ½ÃÀÛÇÑ Æ®·£Àè¼Ç¸¸ÀÌ ½ÇÁúÀûÀÎ Àǹ̸¦ °¡Áö¸ç, ±×¼Ó¿¡ ³»ÀåµÈ Æ®·£Àè¼ÇÀº ´Ü¼øÈ÷ @@trancount°ª¸¸À» Áõ°¡½Ãŵ´Ï´Ù. ¿Ö³ÄÇÏ¸é ¾îÂ÷ÇÇ Æ®·£Àè¼ÇÀ̶ó´Â°ÍÀº ±× Á¤ÀÇ ÀÚü°¡ All or Nothing °³³äÀ¸·Î 󸮰¡ ¸ðµÎ µÇ°Å³ª ¾Æ´Ï¸é ¸ðµÎ Ãë¼Ò°¡ µÇ±â ¶§¹®ÀÌÁö¿ä. ÇöÀç Æ®·£Àè¼Ç ³×½ºÆà »óŸ¦ º¸·Á¸é @@trancount °ªÀ̳ª DBCC OPENTRAN ¸í·ÉÀ» »ç¿ëÇÏ¸é µË´Ï´Ù.
¾îÂ¸é ±²ÀåÈ÷ º¹ÀâÇÏ°Ô º¸ÀÌÁö¸¸, ¾î·ÆÁö ¾Ê´Â ³»¿ëÀÔ´Ï´Ù. Æ®·£Àè¼ÇÀ» Á¾·áÇϱâ À§Çؼ´Â BETRAN ¹®À» »ç¿ëÇÑ ¸¸Å ±×¿¡ ´ëÀÀµÇ´Â COMMIT¹®À» »ç¿ëÇϰųª BEGIN TRAN ¹®À» ¼ö¿¡ »ó°ü¾øÀÌ ROLLBACK¹®À» Çѹø¸¸ »ç¿ëÇØ ÁÖ¸é µË´Ï´Ù. À§ÀÇ ¿¹Á¦Ã³·³ BEGIN TRAN ¹®À» ¼¼¹ø »ç¿ëÇß´Ù¸é COMMIT ¹®À» ¼¼¹ø»ç¿ëÇؾ߸¸ ¿ÏÀüÈ÷ Æ®·£Àè¼ÇÀÌ ¿Ï·áµÇ´Â °ÍÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù. 9.3.2 Æ®·£Àè¼Ç SAVEPOINT ½ÃÁ¡ ±îÁö¸¸ ROLLBACK SAVEPOINT ¶ó´Â°ÍÀº Æ®·£Àè¼Ç ó¸®ÁßÀÇ ÇÑ °úÁ¤À» °¡¸®Å°´Â ÁÖ¼Ò °³³äÀÔ´Ï´Ù. ÀÌ°ÍÀº Æ®·£Àè¼ÇÀ» ó¸®ÇÏ´Ù°¡ ¾÷¹« ±ÔÄ¢»óÀÇ ¿À·ù°¡ ¹ß»ýÇßÀ» ¶§ ±×³É ROLLBACK TRAN ¹®À» »ç¿ëÇÏ¿© Àüü Æ®·£Àè¼ÇÀÌ Ãë¼ÒµÇ´Â °ÍÀ» ¸·À» ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î ROLLBACK TRAN SAVEPOINT_NAME Çü½ÄÀ» »ç¿ëÇÏ¿© ÁøÇàµÈ Æ®·£Àè¼Ç Áß¿¡¼ ƯÁ¤ ½ÃÁ¡±îÁö¸¸ Ãë¼ÒÇÒ¼ö ÀÖ°Ô²û ÇØ ÁÝ´Ï´Ù. ¿¹Á¦¸¦ º¸¸é¼ Çؾ߰ÚÁö¿ä? ¾Æ·¡ÀÇ ¿¹Á¦¸¦ º¸¸é,
À§ÀÇ ¿¹Á¦ÀÇ °á°ú¸¦ º¸¸é id trancnt ------------------ 1 2 3 2 ¿Í °°ÀÌ 2¹ø¿¡ ´ëÇÑ µ¥ÀÌŸ´Â rollback 󸮰¡ µÇ¾úÀ½À» ¾Ë¼ö ÀÖ½À´Ï´Ù. ¾ðÁ¦ ÀÌ·±°É »ç¿ëÇÏ°Ô µÉÁö´Â ¸ð¸£°ÚÁö¸¸, ÀÌ·± ¸í·Éµµ ÀÖ±¸³ª ÇÏ´Â Á¤µµ´Â ¾Ë¾ÆµÎ´Â°ÍÀÌ ÁÁÀ» µí ½Í¾î¼ ¸îÀÚ Àû¾î º¸¾Ò½À´Ï´Ù. ¿À´Ãµµ ÇູÇϽÿͿ©.
|