Yazılım Eğitim

Yeni Haberler

SQL Server Index Türleri | (Unique,Composite,Covering )

Operatörler

Öncelikle bu makalemizde sizlere;

 Unique sözcüğünün ne olduğunu 

  1. Karma (Composite) ındex,
  2. Kapsam (Covering) ındex,
  3. Parçalı ındexler,
  4. Eklenti sütunlu indexler,
  5. Filtreli indexler,
  6. XML ındexler,
  7. Full-Text ındexler 
  8.  FILLFACTOR ve PAD INDEX Parametrelerinden bahsedeceğim

 

Unique sözcüğü

Bir tablo indexleme alanı olarak seçilen sütundaki verilerin tekrarlanması istenmiyorsa indexleme yapılırken “Is Unique” kutusu Yes olarak işaretlenmelidir. 

Biz isim sütunu için oluşturduğumuz indexin Unique index olmasını sağlarsak aynı isme sahip 2 farklı öğrencinin tabloya eklenmesine engel olmuş oluruz. 

Unique olarak indexlenmiş olan sütuna aynı kayıttan 2. kez girmeye çalıştığımızda aşağıdaki gibi bir hata ile karşılaşırız.

SQL Server Index Türleri 

Clustred ve non-clustred indexlerin her ikisi üstünde de geçerli olabilecek bazı durumIar vardır. 

Bu durumları burada açıklamaya çalışalım:

Unique ındex

Index'teki verilerin tekrarlanmaması maksadıyla kullanabiliriz. 

   Bunun için, bir indexi UNIQUE deyimi ile tanımlamak yeterlidir. 

Hem veri çekme işlemlerini hızlandırmada hem de verinin tekrarlamamasını denetlemede aynı index kullanılabilir. 

 UNIQUE index clustered türden olabileceği gibi nonclustered türden de olabilir. 

  Primary Key Constaint veya Unique Constraint tanımı yapıldığı zaman, SQL Server bir Unique Index tanımlama işlemini gerçekleştirir. 

Bu türden bir Constranit'ı tanımlanırken SQLServer'e  clustered olup olmayacağı hakkında bilgi verilebilir.

Karma (Composite) ındex

İlişkisel veri tabanında, bir indexin ister tekil, ister çoğul index olsun bir tek alandan ibaret olması sık rastlanan bir durumdur ancak bu bir kural değildir.

  Gerektiğinde 16 sütun veya toplam uzunluklar 900 Byte'i aşmamak üzere birden fazla alanı kapsayan ve composite index olarak isimlendirilen bir index tanımlanabilir. 
  
   Ayrıca SQL Server 2005'ten itibaren, non-clustred indexlerde anahtar olmamak koşulu ile uç seviye sayfalarda 900 Byte'dan daha fazla veriyi de eklenti sütun (included column) olarak içerebilir.

Kapsam (Covering) ındex

    Bir sorgunun where kısmı da dâhil olmak üzere, seçilen sütunları ile birlikte bir tek index olarak tanımlanmasına Covering Index denir. 

   Bu türden bir nonclustred index tanımlandığında, SQL Server sadece bu indexi kullanır.

 Covering index genellikle oluşturulurken çok işlem gerektirir ama sorgunun çok hızlı neticelenmesini sağlar.

Ancak Covering Index tanımlarken, Indexler arası bölge kavramına (clustred index içerisindeki sütunu tekrar indexe dâhil etmek gerekmez) ve sorgulanan sütunlarla, indexlenen sütunların sırasına dikkat ederek tanımlanması gerekir.

Parçalı ındexler 

          Parçalı indexler, SQL Server 2005 ile birlikte gelen bir index türü olup farklı fiziksel dosya gruplarına dağıtılmış indexlere verilen isimdir. 

   Fiziksel olarak farklı disklere dağılmış indexler, paralel I/O performansını artırır ve kaynak çekişmelerinin önüne geçer. 

  Parçalı indexler de clustred veya non-clustred olabilir.

Eklenti sütunlu indexler

Eklenti sütunlu indexler, SQL Server 2005 ile gelen bir özellik olup index anahtar değerleri dışında, index yapısının en uç sayfalarında gerçek veriler de tutularak sorguların hızlandırılması sağlanabilir. 

Filtreli indexler 

Filtreli indexler, bir tabloda yer alan belli sütunlar için bütün kayıtları indexlemek yerine sadece kurala uyan satırları indexlemek amacıyla kullanılabilen ve SQL Server 2008 ile birlikte kullanıma sunulan bir yapıdır.

XML ındexler 


SQL Server, XML Sütunlar üstünde de sorguların hızlanmasını sağlamak üzere index tanımlanmasına izin verir. 
  Ancak XML indexler, veri tabanı indexlerine göre biraz farklılık içerir ve daha fazla ön şart gerektirir. 

Full-Text ındexler


 Full-text indexler, özellikle metin ifadelerin farklı formları ve dil kurallarından bağımsız olarak hızlı sorgulanmaları maksadıyla tercih edilir. 
SQL Server 2008 sürümünden itibaren Fulltext indexler veri tabanı motoru ile bütünleştirilmiş durumdadır. 
 Yapıları diğer indexle aynı olmasına rağmen, birçok yönü ile diğer tür indexlerden farklılık gösterir.

FILLFACTOR ve PAD INDEX Parametrelerine Karar Vermek 

            Bir OLTP sistemde, sürekli olarak INSERT, UPDATE ve DELETE işlemleri olduğundan, index sayfalarında boş alanlar bırakarak gitmek daha akıllıca olur. 
  OLAP için ise Index sayfalarının daha dolu olması tercih edilir.
   Bu işlemler için, FILL FACTOR ve PAD_INDEX parametresi kullanılabilir. FILL FACTOR, uç seviye sayfaların ne kadar doluluk oranlarında olacağını tayin eder. 
   PAD_INDEX ise bu oranın uç seviyenin dışındaki sayfalarda da geçerli kılınıp kılınmayacağını ifade etmek için kullanılır.   
   PAD_INDEX denilmezse ara seviye sayfalar (intermediate pages) için en az iki index sığacak kadar olmak üzere SQL Server tarafından uygun bulunan miktarda boş yer bırakılır.

Hiç yorum yok