Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 8936|Yanıt: 0

SQL kilitleri NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Bağlantıyı kopyala]
Yayınlandı 20.07.2016 14:02:51 | | |

NOLOCK
Bu seçenek seçildiğinde, SQL Server kilitsiz verileri okur veya değiştirir. Bu durumda, kullanıcı "kirli veri" olarak bilinen Bağlanmamış İşlem veya Geri Geri Dönüşten veri okuyabilir.

TUTMA
Bu seçenek seçildiğinde, SQL Server bu paylaşılan kilidi tüm işlemin sonuna kadar sürdürür ve yol boyunca serbest bırakır.

UPDLOCK
Bu seçenek seçildiğinde, SQL Server veri okururken paylaşılan kilit yerine değiştir kilidi kullanır ve bu kilidi tüm işlem veya komutun sonuna kadar korur. Bu seçenek, birden fazla sürecin aynı anda veriyi okuyabilmesini sağlar, ancak yalnızca o süreç veriyi değiştirebilir.

TABLOCK
Bu seçenek seçildiğinde, SQL Server komut bitene kadar tüm tabloya paylaşılan bir kilit yerleştirir. Bu seçenek, diğer süreçlerin sadece verileri okuyabilmesini ve veriyi değiştirmemesini sağlar.

PAGLOCK
Bu seçenek varsayılan seçenektir ve seçildiğinde SQL Server paylaşılan bir sayfa kilidi kullanır.

TABLOCKX (Özel Masa Kilidi)
Bu seçenek seçildiğinde, SQL Server komut veya işlem bitene kadar tüm tabloya bir kilit koyar. Bu, diğer süreçlerin tablodaki verileri okumasını veya değiştirmesini engeller.

HOLDLOCK, paylaşılan kilidi tüm işlem tamamlanana kadar tutar ve kilitli nesne gerekmediğinde serbest bırakılmalıdır; bu da SERIALIZEDİLİR işlem izolasyon seviyesine eşit

NOLOCK ifadesi, paylaşılan kilit verilmeden yürütülür ve kirli okumalara izin verilir; bu da READ UNCOMMITTED işlem izolasyon seviyesine eşittir

PAGLOCK, bir tablo kilidi kullanılan birden fazla sayfa kilidi kullanır

READPAST, sql sunucusunun kilitli satırları atlamasına ve işlemleri yürütmesine izin verir ve READ UNCOMMITTED işlem izolasyon seviyeleri için sadece RID kilitlerini atlar, sayfa, bölge ve tablo kilitlerini değil

ROWLOCK, sıralı kilitlerin kullanımını zorunlu kılar

TABLOCKX, işlem sırasında başka herhangi bir işlemin tabloyu kullanmasını engelleyen özel bir tablo düzeyinde kilit kullanımını zorunlu kılar

UPLOCK, paylaşılan kilitsiz bir tablo okunurken güncellemeler kullanımını zorunlu kılıyor

Not: Bir veritabanında bir tabloyu kilitlemek arasındaki fark
SELECT * FROM tablosuyla (HOLDLOCK) Diğer işlemler tabloyu okuyabilir, ancak güncellenemez veya sile gelemez
SELECT * FROM tablo WITH (TABLOCKX) Diğer işlemler tabloları okuyamaz, güncellelemez ve silmez




Önceki:SQL'de kilitler, kirli okumalar, tekrarlanamaz okumalar ve yanlış okumalar
Önümüzdeki:SQL Server çıkmaza bakıyor ve çıkmazı serbest bırakıyor
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com