Filtered Index’lerin yararlı olabileceği birkaç senaryo


SQL Server 2008’den itibaren indekslerinize filtre koyabiliyorsunuz. Tabii ki nonclustered indekslerinize. Clustered indeksler zaten verinin tamamını içerdiği için onlara filtre koyabilmemiz sözkonusu değil.

İyi de bir nonclustered indeksi niye filtrelemek isteyelim? İşte bunun faydalı olabileceği birkaç senaryo:

– Bir kolonun değerlerinin büyük kısmı null ise ve sorgularda koşul olarak hep null olmayan birtakım değerler aranıyorsa… Bu durumda where … is not null kısıtıyla sadece null olmayan satırlar alınabilir nonclustered indekse. Böylece nonclustered indeks kendisinden beklenenleri yerine getirebilirken, kapladığı yer çok daha küçük olacaktır. Mesela null’lü yeni bir satırın alttaki tabloya insert edilmesi durumunda nonclustered indeks’e insert yapılmasına da gerek olmayacaktır.

– Bir kolondaki girilen değerlerin unique olması gerekiyor ama null bırakılmasında da sakınca bulunmuyorsa… Bu durumda kolonu unique constraint ile kısıtlarsanız, sadece tek bir satırda null geçebilirsiniz. Oysa siz istenilen her satırda null geçilmesini ama null geçilmeyenlerin unique olmasını istiyorsunuz. Bu durumda bir unique non clustered’ı filtreli olarak oluşturmak gereksiniminizi karşılayacaktır.

– Özellikle partitioned tablolarda verinin sadece belirli bir bölümü sorgu alıyor olabilir. 5 yıllık veri vardır altta, ama sorgular sadece son altı aya yoğunlaşıyordur. Bu durumda da sadece ilgilenilen bölümü kapsayacak şekilde filtrelenmiş nonclustered indeksler yaratılabilir.

Reklamlar
Bu yazı SQL Server içinde yayınlandı ve , , olarak etiketlendi. 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