Yazılım Eğitim

Yeni Haberler

Microsoft SQL Server İndex Oluşturma 1 | Ebubekir Bastama

 

Selam arkadaşlar bu makalemiz de sizlere Microsoft SQL Server'da İndex Oluşturmayı ve neden index oluşturmamız gerektiğinden bahsedeceğim.

İndex Oluşturma

SQL Server açısından index kullanımının en önemli amacı, istenen bilginin daha az veri okuyarak daha kısa zamanda getirilmesini sağlamaktır

Index kullanarak bir tablonun tamamını okumaktansa "index key" vasıtasıyla okumak istediğimiz kayda daha hızlı ulaşmak mümkündür. 

Tamamlanması saatler süren bir sorgunun uygun index’ler kullanılarak saniyeler seviyesinde getirilmesi sağlanabilir.

 Şimdi ise Index nedir Sorusunun cevabına bakalım;

 Gerçek hayattan bir örnek vererek Index kavramını daha net açıklamaya çalışalım. 

 Bir telefon rehberi düşünün. Hani şu eskiden PTT’nin dağıttıklarından. 

  İstanbul’da yaşayan herkesin telefon bilgilerinin bu rehberde kayıtlı olduğunu düşünelim. 

  Mehmet Yılmaz adında bir arkadaşım var ve telefon numarasını kaybettiğim için kendisine uzun süredir ulaşamıyorum. 

  Telefon rehberini kullanarak Mehmet’in telefon numarasını bulmak istiyorum. 

  İlk durumda şunu düşünelim (Index olmayan bir tablo). Telefon rehberi sıralı değil. 

  Yani ne ada göre ne de soyada göre herhangi bir sıralama yapılmamış, isimler karışık olarak bulunmaktadır. Böyle bir durumda ben Mehmet’i bulmak için bütün telefon defterini okumak zorundayım.

İkinci durumda ise telefon defterinin isme göre sıralı olduğunu düşünelim. 

  (Index olan bir tablo) Bu durumda biliyorum ki Tahsin B harfinde. 

 Kabaca rehberin ortasına gelirim. 

Ve oradaki harfe bakarak ileriye ya da geriye gitmem gerektiğine karar veririm. 

 Yani bir önceki örneğe (Index olmayan durum) göre çok çok daha hızlı bir şekilde Mehmet’i bulabilirim.

  İşte Index kullanımının amacı budur. İstenilen bilgiye daha az veri okuyarak daha hızlı bir şekilde erişmektir.

Veri tabanı üzerine kayıt sayısı arttıkça çekilen sorguların döndüreceği değerlerin karşımıza gelmesi de o kadar zaman alacaktır.  

   Örnek olarak “ Select * from Tbl_Personel Where Adi Like ‘a%’ ” şeklinde çekilen bir sorguda tablodaki kayıtları tek tek aramaya başlar ve ismi “a” harfi ile başlayan kayıtları listeler, bu işlemi yaparken tablonun en başından başlar ve bu yoğun bir tablodaki erişim hızını oldukça etkiler.

  Veriler hızlı erişim için kullanılması gereken yöntem ise index'lemedir. 

SQL server sorgu çalıştırıldığında öncelikle index'leme var mı kontrol eder ve sorguyu bu duruma göre çalıştırır. 

 İki çeşit index vardır: 

  1.  CLUSTERED 
  2.  NONCLUSTERED 

Bir tabloda 1 tane CLUSTERED 999 adet de NONCLUSTERED index oluşturulabilir.
 Oluşturduğunuz bir tablo üzerinde eğer id kolonunu “SET PRIMARY KEY” yaparsanız, bu kolon otomatik olarak bir CLUSTERED INDEX oluşturur.

Devamı Diğer Makalede Makaleye Ulaş



Hiç yorum yok