Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Részletek
| Attribute | Érték |
|---|---|
| Terméknév | SQL Server |
| Eseményazonosító | 1204 |
| Eseményforrás | MSSQLSERVER |
| Összetevő | SQLEngine |
| Szimbolikus név | LK_OUTOF |
| Üzenet szövege | Az SQL Server adatbázismotor példánya jelenleg nem tud LOCK-erőforrást beszerezni. Ismételje meg a nyilatkozatát, amikor kevesebb aktív felhasználó van. Kérje meg az adatbázis-adminisztrátort, hogy ellenőrizze az adott példány zár- és memóriakonfigurációját, vagy ellenőrizze a hosszú ideig futó tranzakciókat. |
Explanation
A végrehajtás során a lekérdezések gyakran szereznek be és oldanak fel zárolásokat az általuk elért erőforrásokon. A zárolás megszerzéséhez a zárolási struktúrák egy rendelkezésre álló készletből származó zárolási struktúrákat használják. Ha az új zárolások nem szerezhetők be, mert nincs több zárolási struktúra a készletben, a rendszer az 1204-ben megadott hibaüzenetet adja vissza. Ez a probléma az alábbi okok bármelyikének tudható be:
Az SQL Server nem tud több memóriát lefoglalni, vagy azért, mert más folyamatok használják, vagy mert az SQL Server felhasználta az összes memóriáját, és elérte a kiszolgáló memóriájának maximális konfigurációs beállításával konfigurált értéket.
A zároláskezelő nem használhatja az SQL Server számára elérhető memória több mint 60 százalékát, és a küszöbérték már teljesült.
Beállítja a rendszer által tárolt eljárás konfigurációs beállítási zárolásait, sp_configure (Transact-SQL) nem alapértelmezett, nem dinamikus értékre.
Engedélyezte az 1211-es, 1224-es vagy mindkettő nyomkövetési jelzőket az SQL Serveren a zárolás eszkalációs viselkedésének szabályozásához, és olyan lekérdezéseket hajt végre, amelyekhez sok zárolás szükséges.
Felhasználói művelet
Ha azt gyanítja, hogy az SQL Server nem tud elegendő memóriát lefoglalni, próbálkozzon az alábbi lehetőségekkel:
Az alábbihoz hasonló lekérdezéssel állapítsa meg, hogy az SQL Serveren belül bármely más memóriajegyző használta-e az SQL Server által konfigurált memória nagy részét:
SELECT pages_kb, type, name, virtual_memory_committed_kb, awe_allocated_kb FROM sys.dm_os_memory_clerks ORDER BY pages_kb DESC;Ezután csökkentse a memóriajegyző memóriahasználatát, hogy a memória zárolása több erőforrást használjon. További információ: Az SQL Server kevés memóriával vagy kevés memóriával kapcsolatos problémáinak elhárítása.
Ha az SQL Serveren kívül más alkalmazások is használnak erőforrásokat, próbálja meg leállítani ezeket az alkalmazásokat, vagy fontolja meg az alkalmazások külön kiszolgálón való futtatását. Ez felszabadítja a memóriát az SQL Server más folyamataiból.
Ha a kiszolgáló maximális memóriáját konfigurálta, növelje a kiszolgáló memóriájának maximális beállítását.
Ha azt gyanítja, hogy a zároláskezelő a rendelkezésre álló memória maximális mennyiségét használta, azonosítsa azt a tranzakciót, amely a legtöbb zárolást tartja, és állítsa le. A következő szkript a legtöbb zárolást tartalmazó tranzakciót azonosítja:
SELECT request_session_id, COUNT (*) num_locks FROM sys.dm_tran_locks GROUP BY request_session_id ORDER BY count (*) DESC;Vegye ki a legmagasabb munkamenet-azonosítót, és állítsa le a KILL paranccsal.
Ha nem alapértelmezett értéket
lockshasznál,sp_configureaz alábbi utasítással módosíthatjalocksaz alapértelmezett értékre:EXEC sp_configure 'locks', 0;Ha a fenti hibaüzenetet az SQL Server 1211-es, 1224-es vagy mindkettő nyomkövetési jelzőinek használatakor észlelte, tekintse át a használatukat, és tiltsa le őket a nagy számú zárolást igénylő lekérdezések végrehajtásakor. További információkért tekintse át a nyomkövetési jelzők beállítását a DBCC TRACEON használatával , és oldja meg az SQL Server zárolási eszkalációja által okozott blokkolási problémákat.