Ist ein Deadlock möglich, wenn verschiedene Zeilen in einer Tabelle aktualisiert und gelöscht werden?

Können in Oracle 10+ -Versionen Aktualisierungen und Löschvorgänge in derselben Tabelle zu Deadlocks führen, auch wenn sie gleichzeitig in verschiedenen Zeilen derselben Tabelle ausgeführt werden?

Der Primärschlüssel der Tabelle setzt sich aus zwei Spalten zusammen und es ist kein FK mit einer anderen Tabelle verknüpft / referenziert. Und es gibt keine Eltern-Kind-Beziehung zu einer anderen Tabelle

Was ich glaube ist, dass es keinen Deadlock schafft, aber ich stehe vor einem Problem in meiner Bewerbung.

Hinzufügen der Orakelspur:

Der folgende Deadlock ist kein ORACLE-Fehler. Dies ist ein Deadlock aufgrund eines Benutzerfehlers beim Entwurf einer Anwendung oder aufgrund der Ausgabe von falschem Ad-hoc-SQL. Die folgenden Informationen können bei der Ermittlung des Deadlocks hilfreich sein:

Deadlock graph:
                       ---------Blocker(s)--------  ---------Waiter(s)---------
Resource Name          process session holds waits  process session holds waits
TX-0007003e-0081d6c3        45     790     X            104      20           X
TX-00080043-0085e6be       104      20     X             45     790           X

session 790: DID 0001-002D-000035F9     session 20: DID 0001-0068-000007F6
session 20: DID 0001-0068-000007F6      session 790: DID 0001-002D-000035F9

Rows waited on:
  Session 790: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEfIAAA
  (dictionary objn - 61640, file - 12, block - 18376, slot - 0)
  Session 20: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEfGAAA
  (dictionary objn - 61640, file - 12, block - 18374, slot - 0)

----- Information for the OTHER waiting sessions ----- Session 20:
  sid: 20 ser: 4225 audsid: 57496371 user: 72/RPT_TABLE
    flags: (0x45) USR/- flags_idl: (0x1) BSY/-/-/-/-/-
    flags2: (0x40009) -/-/INC
  pid: 104 O/S info: user: oracle, term: UNKNOWN, ospid: 20798
    image: oracle@caidb10p-node1
  client details:
    O/S info: user: gtsgen, term: unknown, ospid: 1234
    machine: caiapp08p-node0.nam.nsroot.net program: JDBC Thin Client
    application name: JDBC Thin Client, hash value=2546894660
  current SQL:
  delete from RPT_TABLE.TEMP_TABLE_T1 where TEMP_T1_ID=:1

----- End of information for the OTHER waiting sessions -----

Information for THIS session:

----- Current SQL Statement for this session (sql_id=bsaxpc2bdps9q) ----- UPDATE RPT_TABLE.TEMP_TABLE_T1 temp1 SET temp1.CLIENT_ID = (SELECT MIN(INVMAP.CLIENT_ID) FROM LI_REF.REF_CLIENT_MAP INVMAP WHERE INVMAP.F_CODE = :B2 AND INVMAP.AID = temp1.ID AND temp1.R_ID=:B1 )
----- PL/SQL Stack -----
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
45887d750        24  procedure RPT_TABLE.T1_UPDATE_StoredProc  

6399ba188         1  anonymous block

Antworten auf die Frage(2)

Ihre Antwort auf die Frage