43.39. pg_locks

pg_locksºä´Â µ¥ÀÌÅͺ£À̽º ¼­¹ö³»¿¡¼­ ¿­¸®°í ÀÖ´Â Æ®·£Àè¼Ç(transaction)ÀÇ ¶ô¿¡ °üÇÑ Á¤º¸¿¡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. ¶ô¿¡ °üÇѺ¸´Ù »ó¼¼ÇÑ ¼³¸íÀºChapter 12À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

pg_locks¿¡´Â ¶ô ´ë»óÀÌ µÇ´Â ÁøÇàÁßÀÇ °´Ã¼, ¿ä±¸µÈ ¶ô ¸ðµå, ¹× °ü·ÃÇÏ´Â Æ®·£Àè¼Ç(transaction) ¸¶´Ù 1°³ÀÇ ÇàÀ» ¼ÒÀ¯Çϰí ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î, ¸¸¾à º¹¼öÀÇ Æ®·£Àè¼Ç(transaction)ÀÌ ±× Æ®·£Àè¼Ç(transaction)»ó¿¡¼­ ¶ôÀ» º¸°ü À¯ÁöÇϰí Àְųª ¶ôÀ» ´ë±âÇϰí ÀÖ´Â °æ¿ì¿¡´Â, °°Àº ¶ô ´ë»ó °´Ã¼°¡ ¿©·¯¹ø ÃâÇöÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ±×·¯³ª, ÇöÀç ¶ôÀ» °®°í ÀÖÁö ¾ÊÀº °´Ã¼´Â ÀüÇô ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù.

¶ô ´ë»ó °´Ã¼¿¡´Â ´Ù¸¥ ÇüŰ¡ ¸î°³ Á¸ÀçÇÕ´Ï´Ù. ÀüüÀÇ ¸±·¹À̼Ç(¿¹£ºÅ×À̺í), ¸±·¹À̼ÇÀÇ °³º°ÀÇ ÆäÀÌÁö, ¸±·¹À̼ÇÀÇ °³º°ÀÇ Æ©ÇÃ, Æ®·£Àè¼Ç(transaction) ID(°¡»ó°ú ¿µ¼ÓÀÇ ¾çÂÊ ¸ðµÎÀÇ ID), ±×¸®°í ÀϹÝÀûÀÎ µ¥ÀÌÅͺ£À̽º °´Ã¼(À̰ÍÀºpg_description³ªpg_depend¿Í °°Àº ¹æ½ÄÀ¸·Î Ŭ·¡½º OID¿Í °´Ã¼ OID·Î ½Äº°µË´Ï´Ù) °Ô´Ù°¡ ¸±·¹À̼ÇÀ» È®ÀåÇÒ ±Ç¸®´Â, ºÐ¸®ÇÑ ¶ô ´ë»ó °´Ã¼¿¡ ÀÇÇØ Ç¥ÇöµË´Ï´Ù.

Table 43-39. pg_locksÀÇ ¿­

À̸§ Çü ÂüÁ¶Ã³ ¼³¸í
locktype text   ¶ô ´ë»ó °´Ã¼ÀÇ Á¾·ù. relation, extend, page, tuple, transactionid, virtualxid, object, userlock, advisory
database oid pg_database .oid °´Ã¼°¡ °øÀ¯µÈ °´Ã¼ÀÇ °æ¿ì´Â, °´Ã¼°¡ Á¸ÀçÇϰí ÀÖ´Â µ¥ÀÌÅͺ£À̽ºÀÇ OID, ȤÀº Á¦·Î°¡ µË´Ï´Ù. ȤÀº °´Ã¼°¡ Æ®·£Àè¼Ç(transaction) IDÀÎ °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
relation oid pg_class .oid °´Ã¼°¡ ¸±·¹À̼ÇÀÌ ¾Æ´Ñ °æ¿ì³ª ¸±·¹À̼ÇÀÇ ÀϺÎÀÎ °æ¿ì´Â, ¸±·¹À̼ÇÀÇ OID, ȤÀº NULLÀÌ µË´Ï´Ù.
page integer   °´Ã¼°¡ Æ©Çà ȤÀº ¸±·¹ÀÌ¼Ç ÆäÀÌÁö°¡ ¾Æ´Ñ °æ¿ì´Â, ¸±·¹À̼dz»ÀÇ ÆäÀÌÁö¼ö, ȤÀº NULLÀÌ µË´Ï´Ù.
tuple smallint   ÆäÀÌÁö³»ÀÇ Æ©Çüö, ȤÀº °´Ã¼°¡ Æ©ÇÃÀÌ ¾Æ´Ñ °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
transactionid xid   Æ®·£Àè¼Ç(transaction)ÀÇ ID, ȤÀº °´Ã¼°¡ Æ®·£Àè¼Ç(transaction) ID°¡ ¾Æ´Ñ °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
classid oid pg_class .oid °´Ã¼¸¦ Æ÷ÇÔÇÑ ½Ã½ºÅÛ Ä«Å»·Î±×ÀÇ OID, ȤÀº °´Ã¼°¡ ÀϹÝÀûÀÎ µ¥ÀÌÅͺ£À̽º °´Ã¼°¡ ¾Æ´Ñ °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
objid oid any OID column ½Ã½ºÅÛ Ä«Å»·Î±× ³»ÀÇ °´Ã¼ÀÇ OID, ȤÀº °´Ã¼°¡ ÀϹÝÀûÀÎ µ¥ÀÌÅͺ£À̽º °´Ã¼°¡ ¾Æ´Ñ °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
objsubid smallint   Å×À̺íÀÇ ¿­¿¡ ´ëÇØ¼­´Â, À̰ÍÀº ¿­¼ö(classid¿Íobjid´Â Å×À̺í ÀÚ½ÅÀ» ÂüÁ¶Çϰí ÀÖ½À´Ï´Ù)ÀÔ´Ï´Ù. ´Ù¸¥ ¸ðµç °´Ã¼ÀÇ ÇüÅ¿¡ ´ëÇØ¼­´Â, ÀÌ ¿­Àº Á¦·Î°¡ µË´Ï´Ù. °´Ã¼°¡ ÀϹÝÀûÀÎ µ¥ÀÌÅͺ£À̽º °´Ã¼°¡ ¾Æ´Ñ °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
transaction xid   ¶ôÀ» À¯Áö, ȤÀº ±â´Ù¸®°í ÀÖ´Â Æ®·£Àè¼ÇÀÇ ID
pid integer   ¶ôÀ» º¸°ü À¯Áö, ȤÀº ±â´Ù¸®°í ÀÖ´Â ¼­¹ö ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ID. ¶ôÀÌ ÁغñµÇ¾î ÀÖ´Â Æ®·£Àè¼Ç(transaction)¿¡ ÀÇÇØ º¸°ü À¯ÁöµÇ°í ÀÖ´Â °æ¿ì´Â NULLÀÌ µË´Ï´Ù.
mode text   ¶ô ¸ðµåÀÇ À̸§Àº ÀÌ ÇÁ·Î¼¼½º¿¡¼­ À¯ÁöµÇ°Å³ª ¶Ç´Â ÇÊ¿äÇÕ´Ï´Ù.(Section 12.3.1¸¦ ÂüÁ¶)
granted boolean   ¶ôÀÌ º¸°ü À¯ÁöµÇ°í ÀÖ´Â °æ¿ì´Â true, ¶ôÀÌ ´ë±â »óÅÂÀÇ °æ¿ì´Â false

ÁöÁ¤µÈ Æ®·£Àè¼Ç¿¡ ÀÇÇØ ¼ÒÀ¯µÇ°í ÀÖ´Â ¶ôÀ» ³ªÅ¸³»´Â Çà ³»¿¡¼­granted´Â trueÀÔ´Ï´Ù. falseÀÇ °æ¿ì´Â ÀÌ ¶ôÀ» ÃëµæÇϱâ À§ÇØ ÇöÀç Æ®·£Àè¼ÇÀÌ ´ë±âÁßÀÎ °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. Áï, °°Àº ¶ô ´ë»óÀÇ °´Ã¼¿¡ ´ëÇØ¼­, ´Ù¸¥ Æ®·£Àè¼ÇÀÌ °æÇÕ ÇÏ´Â ¶ôÀ» ÃëµæÇϰí ÀÖ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ´ë±âÁßÀÇ Æ®·£Àè¼ÇÀº ´Ù¸¥ ¶ôÀÌ Ç®¸±¶§±îÁö Á¤½Ã»óÅÂ(sleep)·Î ÀÖ½À´Ï´Ù.(ȤÀº µ¥µå·Ï »óŰ¡ °ËÃâµË´Ï´Ù). ´ÜÀÏ Æ®·£Àè¼Ç¿¡¼­´Â, ¸¹¾Æ¾ß ÇÑ ¹ø¿¡ 1°³ÀÇ ¶ôÀ» ÃëµæÇϱâ À§Çؼ­ ´ë±âÇÕ´Ï´Ù.

¸ðµç Æ®·£Àè¼ÇÀº ±× ¸ðµç °úÁ¤ ¿Ï·á±îÁö ±× °¡»ó Æ®·£Àè¼Ç ID»ó¿¡ ¹èŸÀû ¶ôÀ» °Ì´Ï´Ù. ÇÑ Æ®·£Àè¼ÇÀº, ¶Ç ´Ù¸¥ ƯÁ¤ÇÑ Æ®·£Àè¼ÇÀ» ´ë±âÇØ¾ß ÇÑ´Ù°í ÆÇ´ÜÇßÀ» °æ¿ì, ´Ù¸¥ Æ®·£Àè¼ÇID·Î °øÀ¯ ¶ôÀ» ÃëµæÇϵµ·Ï, ½ÃµµÇØ ¸ñÀûÀ» ´Þ¼ºÇÕ´Ï´Ù. À̰ÍÀº, ´Ù¸¥ Æ®·£Àè¼ÇÀÌ ¿Ï·áÇϰí, ¶ôÀ» Ç®¾úÀ» °æ¿ì¿¡¸¸ ¼º°øÇÕ´Ï´Ù.

Æ©ÇÃÀÌ °´Ã¼ÀÇ ¶ôÀÌ °¡´ÉÇÑ ÇüÅ¿©µµ, Çà ·¹º§ ¶ô¿¡ ´ëÇÑ Á¤º¸´Â ¸Þ¸ð¸®°¡ ¾Æ´Ñ, µð½ºÅ©¿¡ º¸Á¸µË´Ï´Ù. µû¶ó¼­ Çà ·¹º§ ¶ôÀº Åë»ó, ÀÌ ºä¿¡´Â ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù. Æ®·£Àè¼ÇÀÌ Çà ·¹º§ ¶ôÀÇ ´ë±â »óÅÂÀÎ °æ¿ì´Â, ±× Çà ¶ôÀ» º¸°ü À¯ÁöÇϰí ÀÖ´Â Æ®·£Àè¼ÇID¸¦ ±â´Ù¸®´Â »óÅ·Î, ±× Æ®·£Àè¼ÇÀº ºä¿¡ ³ªÅ¸³³´Ï´Ù.

±Ç°íÀû ¶ôÀº, ´ÜÀÏÀÇbigint°ª, ¶Ç´Â, 2°³ÀÇ Á¤¼ö°ªÀ» Ű·Î¼­ ȹµæÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. bigintÀÇ °æ¿ì´Â, °Ô´Ù°¡ »óÀ§ ¹ÝÀÌclassid¿­ ³»¿¡ Ç¥½ÃµÇ¾î ³ª¸ÓÁöÀÇ ÇÏÀ§ ¹ÝÀºobjid¿­ ³»¿¡ Ç¥½ÃµË´Ï´Ù. ¶Ç,objsubid´Â 1ÀÌ µË´Ï´Ù. Á¤¼öÄ¡ Ű¿¡¼­´Â, ÃÖÃÊÀÇ Å°°¡classid¿­¿¡, 2¹øÂ° ۰¡ objid¿­¿¡ Ç¥½ÃµÇ¾îobjsubid´Â 2°¡ µË´Ï´Ù. ŰÀÇ ½ÇÁ¦ÀÇ Àǹ̴ »ç¿ëÀÚ¿¡°Ô ´Þ·Á ÀÖ½À´Ï´Ù. ±Ç°íÀû ¶ôÀº µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ¼­ ±¹¼ÒÀûÀ̹ǷÎ, ±Ç°íÀû ¶ô¿¡¼­´Âdatabase¿­ÀÌ Àǹ̸¦ °¡Áý´Ï´Ù.

pg_locksºä¿¡ ¾×¼¼½º°¡ °É¸®¸é, ³»ºÎ ¶ô °ü¸® µ¥ÀÌÅÍ ±¸Á¶´Â ÀϽÃÀûÀ¸·Î ¶ô µÇ¾î º¹Á¦°¡ Ç¥½Ã¿ëÀÇ ºä·Î¼­ ÀÛ¼ºµË´Ï´Ù. À̰Ϳ¡ ÀÇÇØ Åë»óÀÇ ¶ô °ü¸® Á¶ÀÛÀ» ÇÊ¿äÀÌ»óÀ¸·Î ¹æÇØÇÏÁö ¸»°í, ºä´Â ¸ð¼øÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â °á°úÀÇ »ý¼ºÀÌ º¸ÁõµË´Ï´Ù. ±×·³¿¡µµ ºÒ±¸Çϰí ÀÌ ºä°¡ ºó¹øÇÏ°Ô ¾×¼¼½º µÇ¸é, µ¥ÀÌÅͺ£À̽ºÀÇ ÆÛÆ÷¸Õ½º¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ½À´Ï´Ù.

pg_locks´Â ÇöÇàÀÇ µ¥ÀÌÅͺ£À̽º¿¡ °ü·ÃÇÏ´Â ¶ô »Ó¸¸ ¾Æ´Ï¶ó, µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅͳ»ÀÇ ¸ðµç ¶ôÀÇ ÀüüÀÇ ºä¸¦ Á¦°øÇÕ´Ï´Ù. ±×relation¿­ÀÌpg_class. oid¿¡ ´ëÇØ ¶ô µÈ ¸±·¹À̼ÇÀÎ °ÍÀ» Ç¥¸íÇϱâ À§Çؼ­ °áÇÕÀÌ °¡´ÉÇÕ´Ï´Ù, À̰ÍÀº ÇöÇàÀÇ µ¥ÀÌÅͺ£À̽º³»ÀÇ ¸±·¹À̼Ç(±×¿¡ ´ëÇÑdatabase¿­ÀÌ ÇöÇàÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ OID ȤÀº Á¦·Î)¿¡ ´ëÇØ ÀÛµ¿ÇÕ´Ï´Ù.

¶ô À¯Áö¸¦ ȤÀº À¯ÁöÇϰí ÀÖ´Â ¼¼¼ÇÀÇ »õ·Î¿î Á¤º¸¸¦ ÀÔ¼öÇϱâ À§ÇØ, pg_stat_activityºäÀÇprocpid¿­°úpid¿­Àº °áÇÕÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÁغñµÈ Æ®·£Àè¼ÇÀ»»ç¿ëÇϰí ÀÖ´Â °æ¿ì¿¡´Â,transactionÀÇ ¿­Àº pg_prepared_xactsºäÀÇtransaction¿­°ú °áÇÕÇÒ ¼ö ÀÖ¾î, ¶ôÀ» À¯ÁöÇϰí ÀÖÀ» ÁغñµÈ Æ®·£Àè¼Ç¿¡ °üÇØ¼­, º¸´Ù ¸¹Àº Á¤º¸¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. (ÁغñµÈ Æ®·£Àè¼ÇÀº ¶ôÀ» ±â´Ù¸®Áö ¾ÊÁö¸¸, ½ÇÇà½Ã¿¡ ÃëµæÇÑ ¶ôÀ» °è¼Ó À¯ÁöÇÕ´Ï´Ù. )