SQL de Index Yapısı Nedir?

Veri tabanında tutuğumuz verilerin boyutları az olduğunda yaptığımız sorgular için herhangi bir hız sorunu yoktur ve kullanıcı verilere rahat bir şekilde ulaşabilir, fakat gün geçtikçe büyüyen veriler üzerinde yaptığımız sorgulardan geç cevaplar almaya başlarız bunun sonucunda kullanıcılar performans kaybı yaşar. Bu durumun önüne geçmek için veri tabanlarında index yapısı kullanılır.

SQL Server’da iki çeşit indexleme yapısı, bunlar

  1. Clustered Index

  2. Non-Clustered Index

 

Clustered Index

Clustered index bir tabloda bir tane olur, basit bir örnek vermek gerekirse tüm yazılımcıların kullandığı ID alanı gibi, Clustered index ile tablodaki kayıtlar, fiziksel olarak indeksleme alanına göre dizilmiş şekildedir.

Basit bir örnek ile personel kayıtlarının tutulduğu bir tabloda personellerin ID si bilinirse arama da kullanılacak bu numara ile çok rahat bir şekilde veri hızlıca gelecekti fakat veri tabanı üzerinde personelin sadece bir ismini bulmaya çalışsaydık işte bu sorun oluşturmaya başlayacaktı, çünkü sql iniz tüm tablo üzerinde tek tek tarama yapıp belirlediğiniz kritere uygun kayıtları size getirmeye çalışacaktı, bu gibi durumlarda imdadımıza ise Non-Clustered Index yetişiyor.

Non-Clustered Index

Non-Clustered index ise elimizde ki kitabın Index sayfası oluyor ve sqlimiz bu şekilde nereye bakacağını biliyor ve direk o kısımlara konumlanarak daha hızlı bir şekilde gerekli kayıtları kullanıcılara getirmiş oluyor.

 

Basit bir örnek ile göstermemiz gerekir ise;

Öncelikle tablomuzu bir oluşturalım;

create table

181215 kaydımızı ekliyoruz.

Insert

Tablomuzda non-clustered index belirlemeden iki query çağıralım.

Query 1

Query 2

Oluşturduğumuz iki sorgudan ilki 2993 logical read yaptı ve 31ms veriye ulaştı.

İkincisi ise 2993 logical read yaptı ve 45ms veriye ulaştı.

Şimdi tablomuzda AdSoyad ve DogumTarihi alanlarına non-clustered index belirleyelim.

NonClustered Index

Sorgularımızı tekrar çalıştırdığımzda ise sonuçlar ortada.

NonClustered Index Query-1NonClustered Index Query-2

 

Gürkan PAYDAŞ | 2017-11-09 14:55:36