Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich die an einem Oracle-Deadlock beteiligten Zeilen identifizieren?

Ich habe die Antwort gefunden:

  1. Die Zahl nach dictionary objn kann verwendet werden, um aus DBA_objects auszuwählen.

    SELECT owner, object_name, object_type 
    FROM dba_objects 
    WHERE object_id = 217431;
    
  2. Sobald die Tabelle identifiziert ist, kann die Zeile unter Verwendung der rowid gefunden werden:

    SELECT * 
    FROM table_found_above 
    WHERE rowid = 'AAA1FXAAxAAASfLAAn';
    

Wenn die Ablaufverfolgungsdatei besagt, dass es keine "Zeilen wartet auf" gibt, wird diese Technik nicht funktionieren. Das Problem kann auf einen nicht indizierten Fremdschlüssel zurückzuführen sein.