COMPUTER ENGINEER

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

Eşzamanlılık ve izolasyon

Locking ve blocking

Beklemek ile deadlock aynı şey değildir.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Lock verinin eşzamanlı kullanımını koordine eder. Shared, update ve exclusive kilitler uyumluluk kurallarıyla çalışır. Blocking, bir oturumun başka oturumun kilidini beklemesidir; kısa beklemeler normal olabilir. Uzun transaction’lar, geniş güncellemeler veya eksik erişim yolları beklemeyi büyütebilir.

Lock ile latch farklıdır: latch iç bellek yapısını korur. NOLOCK “kilit yok” demek değildir; dirty read, eksik veya iki kez okunan satır gibi tutarsızlıklara izin verebilir ve schema lock beklemesini ortadan kaldırmaz. Finansal raporda hız uğruna doğruluğu kaybetme. Sorun çözümünde blocker, transaction süresi, sorgu ve plan birlikte incelenir. KILL komutu yerine önce etki ve rollback maliyeti değerlendirilir.

NERESİNDE KULLANIRSIN?

Eşzamanlı erişimde doğruluk ve gecikmeyi dengelemek için.

SIK YAPILAN HATA

Her sorguya NOLOCK eklemek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT @@SPID AS SessionId;

Kendi oturum kimliğini öğren.

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.

Kendi bağlantının açık transaction sayısını öğren.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT @@SPID AS SessionId, @@TRANCOUNT AS OpenTransactions;

Bitmiş örneklerden sonra OpenTransactions sıfır olmalıdır.