SQL Server’ın tablolarda hangi seviyede lock tutmasını istersiniz?


SQL Server tablo seviyesinde, sayfa seviyesinde ya da satır seviyesinde kilit tutabilir. Satır ya da sayfa seviyesindeki kilitleri gerektiğinde tablo seviyesine de yükseltebilir.

Bazı özel durumlarda satır seviyesinde kilit tutulmayıp sayfa seviyesinde tutulmasını ya da sayfa seviyesinde kilit tutulmayıp satır seviyesinde tutulmasını isteyebilirsiniz. Eğer ilgili tabloda indeksiniz yoksa bunu düzenleneme şansınız bulunmuyor. Ama en azından bir primary key kullandığınızı düşünürsek, büyük olasılıkla her tablo için en azından bir clustered indeksiniz vardır.

İlgili indeksi oluştururken ya da değiştirirken, ALLOW_ROW_LOCKS = { ON | OFF } | ALLOW_PAGE_LOCKS = { ON | OFF } opsiyonlarını kullanarak nasıl çalışılacağını etkileyebilirsiniz. Her iki opsiyonun da varsayılan değeri kullanılması yönündedir. İkisinden birini OFF haline getirerek, o indeks üzerinden o seviyede kilit kullanılmasını engelleyebilirsiniz.

Ama iki şeye dikkat:

Birincisi, otomatikten çıkardığınız herşey sizin sorumluluğunuza geçer ve ileriye dönük olarak da seçiminizin hala uygun olduğunu sürekli denetlemeniz gerekir.

İkincisi, her iki opsiyonu da OFF yaparsanız veritabanınız o tablo için sadece tablo seviyesinde kilitlerle çalışır hale gelir ve performans çok kötü etkilenebilir.

Bu yazıyı okudunuz diye denemeye kalkmamanızda fayda var. Normalde bu opsiyonları olduğu gibi bırakmanız en doğrusudur. Gerçekten detay seviyede bir optimizasyon yapmanız gereken ve bu yazıda anlatılan düzenlemenin işe yarayacağı çok özel durumlar için düşünebilirsiniz.

Bu yazı SQL Server içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s