DBAtlas · Veritabanı operasyon atlası

1204: The instance of the SQL Server Database Engine cannot obtain a LOCK resource

SQL Server

Ne demek?

SQL Server, lock yöneticisinin ihtiyaç duyduğu bellek kaynağını ayıramadı ve daha fazla lock oluşturamadı. Lock bellek havuzu tükendiği için işlem başarısız olur.

Neden olur?

Aynı anda çok sayıda ince taneli (satır/sayfa) lock tutulması: büyük, index'siz veya toplu DML işlemleri; lock escalation'ın engellenmiş olması; sunucuda genel bellek baskısı; ya da uzun süre açık kalan transaction'lar. Nadiren dışsal bellek baskısı da tetikler.

Nasıl çözülür?

Büyük transaction'ları küçük partilere bölerek eşzamanlı lock sayısını azaltın. Uygun index'lerle taranan/kilitlenen satır sayısını düşürün. Lock escalation'ı kapatan yapılandırmaları gözden geçirin: trace flag 1211/1224 ve ALTER TABLE ... SET (LOCK_ESCALATION = DISABLE); kontrol için SELECT name, lock_escalation_desc FROM sys.tables; ve DBCC TRACESTATUS(-1); Sunucu belleğini ve max server memory ayarını kontrol edin; bellek baskısını giderin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar