MSSQLSERVER_1204
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
詳細
属性 | Value |
---|---|
製品名 | SQL Server |
イベント ID | 1204 |
イベント ソース | MSSQLSERVER |
コンポーネント | SQLEngine |
シンボル名 | LK_OUTOF |
メッセージ テキスト | この時点では、SQL Server データベース エンジンのインスタンスは LOCK リソースを取得できません。 アクティブなユーザーが少ないときにステートメントを再実行してください。 データベース管理者に依頼して、このインスタンスのロックとメモリの構成を確認するか、実行時間の長いトランザクションを確認してください。 |
説明
実行中、クエリはアクセスするリソースのロックを頻繁に取得および解放します。 ロックを取得すると、使用可能なロック構造のプールからロック構造が使用されます。 プールで使用可能なロック構造がなくなったために新しいロックを取得できない場合は、エラー 1204 メッセージが返されます。 この問題は、次のいずれかの理由が考えられます。
SQL Server では、他のプロセスでメモリを使用しているため、または SQL Server がすべてのメモリを使い果たして、構成オプション の最大サーバー メモリを使用して構成された値に達したため、割り当てることができない。
ロック マネージャーは、SQL Server で使用できるメモリの 60% を超えるメモリを使用せず、しきい値が既に満たされています。
SQL Server でトレース フラグ 1211、 1224、またはその両方を有効にしてロックのエスカレーション動作を制御し、多くのロックを必要とするクエリを実行しています。
ユーザーの操作
SQL Server で十分なメモリを割り当てることができないと思われる場合は、次の手順を試してください。
次のようなクエリを使用して、SQL Server 内の他のメモリ クラークが SQL Server 構成メモリの大部分を使い果たしているかどうかを識別します。
SELECT pages_kb, type, name, virtual_memory_committed_kb, awe_allocated_kb FROM sys.dm_os_memory_clerks ORDER BY pages_kb DESC
その後、ロック メモリがより多くのリソースを使用できるように、そのメモリ クラークのメモリ消費量を減らします。 詳細については、「SQL Server のメモリ不足またはメモリ不足の問題のトラブルシューティング」を参照してください。
SQL Server 以外のアプリケーションがリソースを消費している場合は、そのアプリケーションを停止するか、別のサーバーで実行することを検討します。 これにより、SQL Server の他のプロセスからメモリが解放されます。
最大サーバー メモリを構成した場合は、最大サーバー メモリ設定を増やします。
使用可能なメモリの最大量がロック マネージャーによって使用されたと考えられる場合は、ロックの大半を取り扱っているトランザクションを見つけて中止します。 次のスクリプトは、ロックが最も多いトランザクションを識別します。
SELECT request_session_id, COUNT (*) num_locks FROM sys.dm_tran_locks GROUP BY request_session_id ORDER BY count (*) DESC
最も高いセッション ID を取得し、KILL コマンドを使用して終了します。
既定値以外の値
locks
を使用している場合は、次のステートメントを使用して、値を既定のlocks
設定に変更するために使用sp_configure
します。EXEC sp_configure 'locks', 0
SQL Server トレース フラグ 1211、1224、またはその両方を使用しているときに上記のエラー メッセージが発生した場合は、それらの使用を確認し、多数のロックを必要とするクエリの実行中に無効にします。 詳細については、DBCC TRACEON - トレース フラグ (Transact-SQL) に関するページを参照し、SQL Server のロックエスカレーションによって発生するブロックの問題を解決します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示