Delayed Durability Kullanarak SQL Server Transaction Log İle Performansınızı İyileştirin

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…

December 22, 2021 by Aryasoft IT

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 neden olabilir.

Etkinleştirmeli miyiz?

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.

Nasıl etkinleştirebiliriz?

Veritabanı düzeyinde etkinleştirmek için Alter database deyimini kullanırken, SET DELAYED_DURABILITY ile üç farklı seçeneğiniz vardır.

Disabled

Full transaction dayanıklılığına benzer varsayılan ayar.

Allowed

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)

Forced

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:

  1. Databases’i genişletin ve birine sağa tıklayın.
  2. Options sayfasına gidin ve Delayed Durability seçeneğini değiştirin.

Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!