Sunucu, Temmuz ayında en son yeniden başlatıldığından beri biriken DMV istatistiklerine göre yüzlerce kullanılmayan dizine sahip çok büyük bir veritabanımız var. DBA'larımızdan biri, benim için anlamlı olmayan aşağıdaki uyarıcı ifadeleri yaptı:
- Bir dizini bırakmadan önce, sorgu optimizer'ın bu dizinin var olması gerekebileceğinden, benzersiz bir kısıtlama uygulamadığından emin olmamız gerekir.
- Bir dizin oluşturulduğunda, SQL Server'da bu dizinle ilgili istatistikler de oluşturulur. Bir sorgu dizini kullanmıyor olabilir, ancak istatistiklerini kullanıyor olabilir. Bu nedenle, bir dizine düştükten sonra belirli bir sorgu performansı gerçekten kötüleşir. SQL Server istatistiklerin kullanım istatistiklerini tutmaz. Veritabanımızda “Otomatik İstatistik Oluştur” özelliği etkin olmasına rağmen, sorgu optimize edici eksik istatistikleri oluşturmadan önce hangi parametrelerin dahili olarak karşılanması gerektiğini bilmiyorum.
# 1 ile ilgili olarak, SQL Server aslında bir ekleme / güncelleme yapılmadan önce benzersizliğini belirlemek için dizinde bir arama yapacak gibi görünüyor ve bu nedenle, dizin kullanılmıyor olarak göstermez.
# 2 ile ilgili olarak, bu gerçekten mümkün mü?
Bu arada, bir dizin kullanılmadığını söylediğimde, arama ve tarama yok demek istiyorum.