Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Bijzonderheden
| Attribute | Waarde |
|---|---|
| Productnaam | SQL Server |
| Gebeurtenis-id | 1204 |
| Bron van gebeurtenis | MSSQLSERVER |
| Onderdeel | SQLEngine |
| Symbolische naam | LK_OUTOF |
| Berichttekst | Het exemplaar van de SQL Server Database Engine kan op dit moment geen LOCK-resource verkrijgen. Voer uw instructie opnieuw uit wanneer er minder actieve gebruikers zijn. Vraag de databasebeheerder om de configuratie van de vergrendeling en het geheugen voor dit exemplaar te controleren of om te controleren op langlopende transacties. |
Explanation
Tijdens de uitvoering worden query's vaak vergrendeld voor de resources die ze openen en vrijgeven. Het verkrijgen van een vergrendeling maakt gebruik van de vergrendelingsstructuren uit een beschikbare groep slotstructuren. Wanneer er geen nieuwe vergrendelingen kunnen worden verkregen omdat er geen vergrendelingsstructuren meer beschikbaar zijn in de groep, wordt het foutbericht 1204 geretourneerd. Dit probleem kan een van de volgende oorzaken hebben:
SQL Server kan niet meer geheugen toewijzen, omdat er andere processen worden gebruikt, of omdat SQL Server al het geheugen heeft gebruikt en de waarde heeft bereikt die is geconfigureerd met behulp van de configuratieoptie maximaal servergeheugen.
De vergrendelingsbeheerder kan niet meer dan 60 procent van het geheugen gebruiken dat beschikbaar is voor SQL Server en de drempelwaarde is al bereikt.
U stelt de configuratieoptie vergrendelingen in van de systeem opgeslagen procedure sp_configure (Transact-SQL) op een niet-standaardwaarde, niet-dynamische waarde.
U hebt Trace-vlaggen 1211, 1224 of beide ingeschakeld op uw SQL Server om escalatiegedrag te beheren en u voert query's uit waarvoor veel vergrendelingen zijn vereist.
Gebruikersactie
Als u vermoedt dat SQL Server onvoldoende geheugen kan toewijzen, probeert u de volgende opties:
Bepaal of een andere geheugenbediende in SQL Server een groot deel van het geconfigureerde geheugen van SQL Server heeft gebruikt met behulp van een query zoals de volgende:
SELECT pages_kb, type, name, virtual_memory_committed_kb, awe_allocated_kb FROM sys.dm_os_memory_clerks ORDER BY pages_kb DESC;Verminder vervolgens het geheugenverbruik van die geheugenbediende om geheugen te vergrendelen om meer resources te gebruiken. Zie Problemen met onvoldoende geheugen of weinig geheugen oplossen in SQL Server voor meer informatie.
Als toepassingen naast SQL Server resources verbruiken, kunt u deze toepassingen stoppen of overwegen deze uit te voeren op een afzonderlijke server. Hiermee wordt geheugen uit andere processen voor SQL Server vrijgegeven.
Als u maximaal servergeheugen hebt geconfigureerd, verhoogt u de maximale servergeheugeninstelling .
Als u vermoedt dat de vergrendelingsmanager de maximale hoeveelheid beschikbaar geheugen heeft gebruikt, identificeert u de transactie met de meeste vergrendelingen en beëindigt u deze. Het volgende script identificeert de transactie met de meeste vergrendelingen:
SELECT request_session_id, COUNT (*) num_locks FROM sys.dm_tran_locks GROUP BY request_session_id ORDER BY count (*) DESC;Neem de hoogste sessie-id en beëindig deze met behulp van de KILL-opdracht .
Als u een niet-standaardwaarde gebruikt
locks, kuntsp_configureu de waarde van de standaardinstelling wijzigen met behulp vanlocksde volgende instructie:EXEC sp_configure 'locks', 0;Als u het bovenstaande foutbericht hebt aangetroffen bij het gebruik van de SQL Server-traceringsvlagken 1211, 1224 of beide, controleert u het gebruik en schakelt u deze uit tijdens het uitvoeren van query's waarvoor een groot aantal vergrendelingen is vereist. Raadpleeg traceringsvlagmen instellen met DBCC TRACEON en blokkeringsproblemen oplossen die worden veroorzaakt door escalatie van vergrendelingen in SQL Server voor meer informatie.