MSSQLSERVER_1204
Neu: 17. Juli 2006
Details
Produktname |
SQL Server |
Produktversion |
9.0 |
Buildnummer des Produkts |
9.00.1281.60 |
Ereignis-ID |
1204 |
Ereignisquelle |
MSSQLSERVER |
Komponente |
SQLEngine |
Symbolischer Name |
LK_OUTOF |
Meldungstext |
Die Instanz des SQL Server-Datenbankmoduls kann derzeit keine LOCK-Ressource erhalten. Führen Sie die Anweisung erneut aus, wenn die Zahl der aktiven Benutzer kleiner ist. Bitten Sie den Datenbankadministrator, die Konfiguration der Sperren und des Arbeitsspeichers für diese Instanz zu überprüfen oder nach lange andauernden Transaktionen zu suchen. |
Erklärung
SQL Server kann keine Sperrenressource erhalten. Dies kann eine der beiden folgenden Ursachen haben:
- SQL Server kann keinen zusätzlichen Arbeitsspeicher vom Betriebssystem zuordnen, weil der Arbeitsspeicher von anderen Prozessen verwendet wird oder weil der Server mit der konfigurierten Option max server memory ausgeführt wird.
- Der Sperren-Manager verwendet nicht mehr als 60 Prozent des für SQL Server verfügbaren Arbeitsspeichers.
Benutzeraktion
Wenn Sie vermuten, dass SQL Server nicht genügend Arbeitsspeicher zuordnen kann, können Sie folgende Maßnahmen durchführen:
- Wenn andere Anwendungen als SQL Server Ressourcen verbrauchen, versuchen Sie, diese Anwendungen zu beenden, oder führen Sie sie auf einem separaten Server aus. Dadurch wird Arbeitsspeicher von anderen Prozessen für SQL Server freigegeben.
- Wenn Sie die Option max server memory konfiguriert haben, erhöhen Sie die Einstellung für diese Option.
Wenn Sie vermuten, dass der Sperren-Manager die maximale Menge an verfügbarem Arbeitsspeicher verwendet hat, identifizieren Sie die Transaktion, die die meisten Sperren aufrechterhält, und beenden Sie sie. Das folgende Skript identifiziert die Transaktion mit den meisten Sperren:
SELECT request_session_id, COUNT (*) num_locks
FROM sys.dm_tran_locks
GROUP BY request_session_id
ORDER BY count (*) DESC
Nehmen Sie die höchste Sitzungs-ID, und beenden Sie sie mithilfe des KILL-Befehls.