Delayed Durability Kullanarak SQL Server Transaction Log İle Performansınızı İyileştirin SQL Server’da Delayed Durability Nedir? Bu, SQL Server 2014’te tanıtılan tehlikeli bir özelliktir. Tembel taahhüt olarak da bilinir, transaction logs bir sürücüye kaydedilmeden önce başarılı bir taahhüt döndüren bir depolama optimizasyonudur. Bazı durumlarda, özellik doğru yapıldığında önemli bir performans farkı yaratabilir. Bazı senaryolarda veri kaybına…
Bu, SQL Server 2014’te tanıtılan tehlikeli bir özelliktir.
Tembel taahhüt olarak da bilinir, transaction logs bir sürücüye kaydedilmeden önce başarılı bir taahhüt döndüren bir depolama optimizasyonudur.
Bazı durumlarda, özellik doğru yapıldığında önemli bir performans farkı yaratabilir. Bazı senaryolarda veri kaybına neden olabilir.
Bu, performansı iyileştirebilse de , veri kaybı riski daha yüksektir çünkü transaction log’lar, yalnızca log’lar bir sürücüye boşaltıldığında eşzamansız olarak kaydedilir.
Basit kurtarma modundaki bir veritabanı için minimum risk vardır. Bir miktar veri kaybının kabul edilebilir olduğuna zaten karar verdiniz.
Tam kurtarma çalıştırıyorsanız, veri kaybı konusunda daha çok endişelenirsiniz. Ama ne kadarı kabul edilebilir? Örneğin, günlüğü temizleyen bir iş potansiyel olarak bu riski en aza indirebilir. Risk var olmaya devam edecek, ancak doğru iş yükü için en aza indirilebilir.
Not: Bir HA formu kullanıyorsanız dikkatli olun. Kontrolsüz bir kapatma veya planlı bir küme yük devretme durumunda bile veri kaybı meydana gelebilir.
Veritabanı düzeyinde etkinleştirmek için Alter database deyimini kullanırken, SET DELAYED_DURABILITY ile üç farklı seçeneğiniz vardır.
Full transaction dayanıklılığına benzer varsayılan ayar.
Her transaction gecikmeli dayanıklılığa karar vermesine izin verin.
Tüm transaction’ların dayanıklılığı, işlem düzeyi ayarlarına bağlı olacaktır.
Bu seçenek, database dayanıklılığı transactions’ların çalışabilmesini sağladı.
İzin verdiğinizde, aşağıdaki örnekteki gibi commit deyiminde işlem seviyesi dayanıklılığını belirtebilirsiniz:
COMMIT TRANSACTION TransactionName WITH (DELAYED_DURABILITY = ON)
Tam transaction dayanıklılığına benzer varsayılan ayar.
İşlemlerinizi transaction’da takip etmeye zorlamak için aşağıdaki ifadeyi çalıştırabilirsiniz ( database’deki [DatabaseName]’ i değiştirin):
USE [master]
GO
ALTER DATABASE [DatabaseName] SET DELAYED_DURABILITY = FORCED
GO
Bu değerleri SSMS kullanarak da değiştirebilirsiniz:
Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!