sql >> データベース >  >> RDS >> Sqlserver

ロックとは何ですか |通信バッファリソースとは?

    このメッセージは、ロック リソースまたは通信バッファ リソースの組み合わせによるデッドロックとして解釈されます。 「ロック リソース」は通常のオブジェクト ロックであり、「通信バッファ リソース」は並列クエリの結果を結合するために使用される exchangeEvents です。これらについては、https://blogs.msdn.microsoft.com/bartd/2008/09/24/todays-annoyingly-unwieldy-term-intra-query-parallel-thread-deadlocks/ 関連する段落は次のとおりです:

    私が見たこれらの 1 つのデッドロック グラフには、SPID が 1 つだけの一連のプロセスと、objectlocks および exchangeEvents のグラフが含まれていました。 「トランザクション (プロセス ID 55) がロックでデッドロックされました | 別のプロセスとの通信バッファー リソースがデッドロックの犠牲者として選択されました。トランザクションを再実行してください」 「クエリ内並列処理により、サーバー コマンド (プロセス ID #51) がデッドロックしました。クエリ ヒント オプション (maxdop 1) を使用して、クエリ内並列処理なしでクエリを再実行してください」 の代わりに表示されます。 objectlocks と exchangeevents の組み合わせが原因であるか、記事が書かれてから SQL Server でメッセージが変更されました。



    1. SQL Serverのスパース列:時間とスペースへの影響

    2. MySQLODBC接続を閉じる/プールする

    3. SQLDeveloperの問題を伴うPostgreSQL

    4. プログラムを実行すると、JPAはMySQLでテーブルを作成しません