Bu makalede mssql server üzerinde aligned index kavramının ne olduğuna değinmiş olacağız. Partition işlemlerinde sıfırdan veya mevcut bulunan bir tabloyu partition yapısına dönüştürmek istediğimizde indexlerin partition yapısındaki schema yapısına göre oluşturulma işlemidir. Sayfamızda bulunan partition makalelerine bakarak aligned indexlerin nasıl yapıldıklarını da görebilirsiniz.
Gerçek tanımına gelecek olursak Aligned index, bir partitioned table üzerinde oluşturulan ve
tablonun partition yapısıyla birebir aynı hizaya (aligned) sahip olan indextir.
Tablo hangi partition function / scheme ile bölünmüşse, Index de aynı partition scheme üzerinden oluşturulur. Her index partition’ı, tablo partition’ıyla 1-1 eşleşir. Bu yüzden adına aligned (hizalı) denir.
Aligned index kullanmanın birkaç büyük avantajı var: Eğer index aligned değilse: ALTER TABLE … SWITCH PARTITION çalışmaz. Ama aligned index varsa: Partition’ları çok hızlı şekilde taşıyabilir / arşivleyebilirsin. Query partition key üzerinden geliyorsa SQL Server sadece ilgili partition’a bakar. Buna partition elimination denir
Partition makalelerinde aşağıda oluşturulan index yapılarının aynısı görülmektedir.
CREATE CLUSTERED INDEX IX-Table_Tarih ON Table(Tarih)
ON ps_Tarih (Tarih);
Yukarıda görüldüğü gibi index tablo ile aynı partition schema üzerindedir. Bu yapıya Aligned index denilmektedir.
Eğer oluşturulan index yapımızda partition schema yoksa ise Non-Aligned index denilmektedir.
CREATE NONCLUSTERED INDEX IX-Table_Tarih
ON Table(Tarih);
Yukarıdaki index default olan filegroup üzerinde oluşmaktadır.
Özetle Aligned index = partitioned tabloyla aynı yapıda olan indexdir. Partition switching ve bakım işlemleri için olmazsa olmazıdır. Büyük ve tarih bazlı tablolarda best practice olarak kabul edilmektedir.
Bu makalede Aligned index kavramının ne olduğuna değinmiş olduk. Başka makalede görüşmek dileğiyle..
“Şüphesiz güçlükle beraber bir kolaylık vardır. Gerçekten, güçlükle beraber bir kolaylık vardır.” İnşirah Suresi(5-6. Ayet)
