Genellikle sorguları doğru dizine sahip olmayan büyük tablolara karşı çalıştırmam gerekir. Bu yüzden DBA'dan böyle bir endeks oluşturmasını rica ediyorum. Yaptığı ilk şey masa istatistiklerine bakmak ve indeks uzay boyutunu görmektir.
Çoğunlukla alternatif bir çözüm bulmamı söylerdi çünkü “dizin zaten tablodan daha büyük” Dizinin verilerden daha küçük olması gerektiğini düşünüyor, çünkü bana “dizini bir kitapta hiç gördünüz mü? Bu kitabın kendisinden çok daha küçük ve bir tablo dizini böyle olmalı” dedi.
Onun felsefesinin doğru olduğunu hissetmiyorum, ama ona meydan okuyamam çünkü o bir DBA lideri ve ben bir geliştiriciyim. Bir sorgunun bir dizine ihtiyacı varsa, okunamayan ve erişilemez SP'leri yapan "geçici çözümler" bulmak yerine, dizin yalnızca oluşturulmalıdır.
Sadece gerekli sütunları seçiyorum. Buradaki sorun tarihe göre filtreliyorum, bu nedenle motorun sütunlara uyması için mutlaka bir tablo taraması yapması gerekiyor. Sorgu, istatistik toplamak için günde bir kez çalışır, ancak çalışması 15 dakika sürer (başka bir zorlu ve hızlı kuralımız var: Hiçbir işlem 3 dakikadan daha uzun sürmemelidir).
DBA bana endeks istatistiklerini gösterdi. Bu masada sadece 6'sının kullanıldığı 10 endeks vardı (istatistikler 4'üne sıfır sonuç verdi). Bu, 20'den fazla geliştiricinin katıldığı büyük bir sistemdir. Endeksler ne nedenle olursa olsun oluşturulmuştur ve muhtemelen artık kullanılmamaktadır.
SQL Server 2008'i desteklememiz gerekiyor, çünkü test DB'lerinin çalıştığı şey bu. Ancak müşterilerin hepsi 2014 ve 2016'da.