Lock Compatibility Nedir

Lock Compatibility(Uyumluluğu), birden fazla transaction’ın aynı anda bir kaynağı(row, page) kilitleme isteği oluştuğunda gerekli kontrolü sağlar. Eğer kaynak bir transaction tarafından daha önce kilitli ise(örneğin kaynak üzerinde Exclusive Lock olduğunu farzedin) bu kaynak üzerinde lock(kilit) koymak isteyen transaction’ın koymak istediği lock’ın ilk koyulan lock çeşidi(örneğimizde Exclusive Lock) ile uyumlu olması gerekir. Eğer ikinci gelen lock isteği ilk gelen lock isteği(ikinci lock’da shared lock olsun) ile uyumlu değilse ilk lock’ın bitmesini bekler ve daha sonra bu kayda lock koyabilir.

 

Örneğimizde ilk lock çeşidi Exclusive Lock, ikincisi ise Shared Lock’tı. Aşağıdaki tabloda da göreceğiniz üzere Exclusive Lock hiçbir lock çeşidi ile uyumlu olmadığından ikinci lock birinci lock’ın bitmesini ve lock’ı serbest bırakmasını beklemek zorunda kalacak.

 

Aşağıdaki Lock uyumluluk tablosunu bulabilirsiniz.

 

 

 

IS

S

U

IX

SIX

X

Intent shared (IS)

Uyumlu

Uyumlu

Uyumlu

Uyumlu

Uyumlu

Uyumlu Değil

Shared (S)

Uyumlu

Uyumlu

Uyumlu

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Update (U)

Uyumlu

Uyumlu

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Intent exclusive (IX)

Uyumlu

Uyumlu Değil

Uyumlu Değil

Uyumlu

Uyumlu Değil

Uyumlu Değil

Shared with intent exclusive (SIX)

Uyumlu

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Exclusive (X)

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

Uyumlu Değil

 

Yukarıdaki lock çeşitleri ile ilgili detaylı bilgiyi “SQL Server Lock(Kilit) Çeşitleri” isimli makalemde bulabilirsiniz.

 

Loading

Leave Your Comment