MSSQLSERVER_1204

詳細

製品名

SQL Server

製品バージョン

10.50

製品ビルド番号

10.50.0000.00

イベント ID

1204

イベント ソース

MSSQLSERVER

コンポーネント

SQLEngine

シンボル名

LK_OUTOF

メッセージ テキスト

この時点では、SQL Server データベース エンジンのインスタンスは LOCK リソースを取得できません。アクティブなユーザーが少ないときにステートメントを再実行してください。データベース管理者に依頼して、このインスタンスのロックとメモリの構成を確認するか、実行時間の長いトランザクションを確認してください。

説明

SQL Server が、ロック リソースを獲得できません。このエラーは次のいずれかが原因で生じている可能性があります。

  • SQL Server が、オペレーティング システムからのメモリをこれ以上割り当てることができない。他のプロセスによってメモリが使用されているか、max server memory オプションが構成された状態でサーバーが動作していることが原因です。

  • ロック マネージャーは、SQL Server が使用できるメモリのうち最大 60% までしか使用できない。

ユーザーの操作

SQL Server が十分なメモリを割り当てられないようであれば、次の操作を行ってみます。

  • SQL Server 以外のアプリケーションがリソースを消費している場合は、そのアプリケーションを停止するか、別のサーバーで実行することを検討します。これにより、他のプロセスからメモリが解放され、SQL Server で使用できるようになります。

  • max server memory を構成した場合は、設定値を大きくします。

使用可能なメモリの最大量がロック マネージャーによって使用されたと考えられる場合は、ロックの大半を取得しているトランザクションを見つけて中止します。次のスクリプトは、ロックの大半を取得しているトランザクションを見つけるために使用できます。

SELECT request_session_id, COUNT (*) num_locks
FROM sys.dm_tran_locks
GROUP BY request_session_id 
ORDER BY count (*) DESC

最も値が大きいセッション ID を見つけ、KILL コマンドでそのセッションを中止します。