COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
53/ 65

Eşzamanlılık ve izolasyon

Isolation, RCSI ve snapshot

Hangi tutarlılığı istediğini tanımla.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

READ UNCOMMITTED dirty read’e izin verir. Lock tabanlı READ COMMITTED commit edilmemiş değişikliği okumaz ama iki sorgu arasında veri değişebilir. REPEATABLE READ okunan satırları korur; SERIALIZABLE aralıkları da koruyarak phantom riskini sınırlar. Daha güçlü izolasyon daha fazla bekleme yaratabilir.

READ_COMMITTED_SNAPSHOT açıkken READ COMMITTED, statement seviyesinde sürüm görünümü kullanır. SNAPSHOT transaction seviyesinde tutarlı sürüm sağlar ve önceden izin verilmiş olmalıdır; update conflict oluşabilir. Row versioning “sıfır kilit” veya “sıfır maliyet” değildir. Sürüm deposu ve uzun okuma işlemleri izlenir. Veritabanı ayarını bu ders değiştirmez; DBA değerlendirmesi gerekir. Oturum seviyesini örnek sonunda geri al.

NERESİNDE KULLANIRSIN?

İşlem senaryosuna uygun tutarlılık seçmek için.

SIK YAPILAN HATA

RCSI ile SNAPSHOT’ın aynı kapsamda olduğunu sanmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
DBCC USEROPTIONS;

Oturum ayarlarını görüntüler.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Ayar değiştirmeden mevcut veritabanının RCSI durumunu öğren.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT name, is_read_committed_snapshot_on FROM sys.databases WHERE name = DB_NAME();

1 RCSI açık, 0 kapalı anlamına gelir; kendiliğinden açma.