Beim Ausführen einer gespeicherten Prozedur (von einer .NET-Anwendung), die ein INSERT und ein UPDATE ausführt, bekomme ich manchmal (aber nicht so oft, wirklich) und zufällig diesen Fehler :Sybase ASE: "Ihr Serverbefehl hat eine Deadlock-Situation festgestellt"
ERROR [40001] [DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]Your server command (family id #0, process id #46) encountered a deadlock situation. Please re-run your command.
Wie kann ich das beheben?
Danke.
Weißt du, was ein Deadlock ist, warum ein Deadlock passieren kann ... und warum es * mit * deinem * Code passiert? Hast du versucht wie "Sybase" und "Deadlock" zu googlen? – ChrisW
Ja ich weiß was es ist, ja ich habe gegoogelt. Die Sache ist, der Stillstand passiert sehr selten. Da die Abfrage einfach ist (ein Update und eine Einfügung), sollte sie im schlimmsten Fall vom Server * verzögert * werden, wenn eine andere Sperre sie blockiert, nicht einfach wegwerfen. Außerdem sagt der Fehler nicht, was der Deadlock war (welche Tabelle, Zeile usw.), was es schwierig macht, das Problem zu lösen. Ich kann nicht manuell verhindern, dass 2 Anfragen gleichzeitig auf dem Server ankommen! – Laurent
Ein Deadlock verzögert nie andere Prozesse, es stoppt den anderen Prozess tot - ich würde mehr über Deadlocks lesen, da Sie kein Verständnis gezeigt haben – Mark