Ich habe gerade einen Clustered-Index für eine 1-MM-Zeilentabelle erstellt (Seiten- und Zeilensperre aktiviert). Ich versuche jetzt, Abfragen auszuführen und erhalte folgende Fehlermeldung:
"Die Instanz des SQL Server-Datenbankmoduls kann derzeit keine LOCK-Ressource abrufen. Führen Sie Ihre Anweisung erneut aus, wenn weniger aktive Benutzer vorhanden sind. Bitten Sie den Datenbankadministrator, die Sperr- und Speicherkonfiguration für diese Instanz zu überprüfen oder zu überprüfen, ob sie lange ausgeführt wird Transaktionen. "
Ich muss die Einstellungen für die Seiten- / Zeilensperrung später anpassen, aber in der Zwischenzeit muss ich den Index löschen, da Benutzer die Tabelle abfragen. Ich habe versucht, es fallen zu lassen, aber ich habe den gleichen Fehler erhalten. Irgendwelche Empfehlungen, um den Index endgültig zu löschen? Vielen Dank.
BEARBEITEN 1: Basierend auf der Antwort von Remus unten habe ich das folgende Skript ausgeführt, um die dynamische Zuweisung von Speicher für Sperren zu ermöglichen.
EXEC sp_CONFIGURE 'show advanced options', 1 RECONFIGURE
EXEC sp_configure 'locks', 0 RECONFIGURE
Dann habe ich den Server neu gestartet.
quelle
DBCC MEMORYSTATUS
den Ausgang aus und hängen Sie ihn an.Antworten:
Befolgen Sie die Schritte zur Fehlerbehebung bei Problemen und Fehlern im Zusammenhang mit der SQL Server-Sperre .
locks
Option 0 ist, siehe Standardwert für die Option "Sperrenkonfiguration beibehalten"DBCC MEMORYSTATUS
, siehe Verwenden des Befehls DBCC MEMORYSTATUS zum Überwachen der Speichernutzungsys.dm_tran_locks
undsys.dm_tran_database_transactions
Es gibt Millionen von Tabellen mit Clustered-Indizes, bei denen keine Probleme mit der Erschöpfung von Sperren auftreten. Hier ist noch etwas mehr im Spiel.
quelle