ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-06-01 10:46:48
URL https://te31.com/rgr/view.php?id=study&no=1874 ¸ð¹ÙÀÏ È­¸é
oracle deadlock °ü·Ã Áú¹®µå¸³´Ï´Ù.

¾È³çÇϼ¼¿ä.

¹èÄ¡¸¦ Çϳª µ¹¸®°í Àִµ¥ deadlock °ü·Ã ¿¡·¯°¡ ¹ß»ýÇؼ­ Áú¹®µå·Áº¾´Ï´Ù.

ERROR (GeneratorIbatisSession.java:118) {}
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in META-INF/ibatis/StdDiary.xml
--- The error occurred while applying a parameter map.
--- Check the StdDiary.upsertStdDiaryDtl-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: ERROR: deadlock detected
Detail: Process 18617 waits for ShareLock on transaction 2340166; blocked by process 18639.
Process 18639 waits for ShareLock on transaction 2340165; 2340165; blocked by process 18617.
Hint: See server log for query details.

ÀÌ·± ¿¡·¯°¡ ¹ß»ýÇÏ°í Àִµ¥¿ä.

¹èÄ¡°¡ upsert ÇÏ´Â Å×ÀÌºí µ¥ÀÌÅ͸¦ ½Ï ³¯¸®°í Çѹø µ¹¸®¸é ¹®Á¦¾øÀÌ Àß µé¾î°¡°í¿ä.
(ÃÖÃÊ insert ¹× ±× ÈÄ µ¥Àϸ® Ãß°¡ insert ´Â ¹®Á¦ ¾øÀ½.)

±Ùµ¥ upsert(update) ÇÒ ¶§ °ü·Ã ¿¡·¯°¡ ¹ß»ýÇϴ°Š°°Àºµ¥ ¿øÀÎÀ» Àß ¸ð¸£°Ú½À´Ï´Ù.
upsert ¸¦ Çϴµ¥ ÀÌ·± ¿¡·¯°¡ ¹ß»ýÇÒ ¼ö ÀÖ³ª¿ä?

Äõ¸®¹®Àº ¾Æ·¡¿Í °°½À´Ï´Ù.

WITH UPSERT AS
(
UPDATE
     STD_DIARY_DTL
SET
       A = #a#
       B = #b#
WHERE
     C = #c#
     D = #d#
RETURNING *
)
INSERT INTO STD_DIARY_DTL
(
  A
  , B
  , C
  , D
) SELECT
  #a#
  , #b#
  , #c#
  , #d#
  WHERE NOT EXISTS (SELECT * FROM upsert)

Áú¹® | 1242¸íÀÌ Àоú¾î¿ä. 3.17.150.89

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-06-01 13:25:43
½ÇÁ¦·Î ÀÌ·± ±¸¹® ¾²´Â °Ç óÀ½ º¸´Â °Å °°Àºµ¥... upsert ±¸ÇöÀ̶ó¸é merge into ¸¦ ¾²´Â °Ô Á» ´õ ÀϹÝÀûÀÏ °Å °°³×¿ä.
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2016-06-02 10:20:13
·Î±× »óÀ¸·Î´Â ¹èÄ¡ µÎ °³°¡ ÇѲ¨¹ø¿¡ µ¹°í Àִ°ɷΠº¸À̳׿ä. ¹èÄ¡°¡ Á¦´ë·Î ³¡³ª´ÂÁö È®ÀÎÇغ¸¼¼¿ä.
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 10.5%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward