INSERTとUPDATEを実行するストアドプロシージャ(.NETアプリケーションから)を実行すると、時には(しばしば実際にはそうではない)ランダムにこのエラーが発生する:Sybase ASE:「サーバーコマンドでデッドロックが発生しました」
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.
どうすればこの問題を解決できますか?
ありがとうございました。
デッドロックが何であるのか、デッドロックが発生する理由、そしてなぜあなたの*コードで*起こっているのか分かりますか?あなたは "サイベース"と "デッドロック"のようなグーグルリングを試みたことがありますか? – ChrisW
はい私はそれが何であるか知っています、はい私はグーグルをしました。事は、デッドロックが非常にまれに起こることです。クエリは単純なもの(更新と挿入)であるため、他のいくつかのロックがそれをブロックしているだけでなく、それをスローするのではなく、サーバーによって最悪の場合*遅延されます。また、このエラーは、デッドロックがどのようなものであったか(どのテーブル、行など)が問題を解決するのが難しいかを示すものではありません。私は手動で同時に2つのクエリがサーバーに到着するのを防ぐことはできません! – Laurent
デッドロックは他のプロセスを遅らせることはありません。他のプロセスは停止しています。デッドロックについては、理解を示していないので詳細を読むでしょう。 – Mark