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 コマンドでそのセッションを中止します。