Respond needs javascript to run. To find out more click here
indexleme » Serdar Demir
RSS
 

Posts Tagged ‘indexleme’

Sql server index kullanımı ve yönetimi

08 Eyl

Sql server index kullanımı ve yönetimi;

Veritabanları verilerimizi saklar bir veritabanı içinde bulunan kayıt sayısı arttıkça performansta bir düşüklük yaşanır bizim için ise sorgularımızı hızlı bir şekilde gerçekleştirmek verileri hızlı bir şekilde açmak çok önemlidir.

Sql server verileri nasıl açar ?

Örnek bir sorgu yazarak gösterelim

Select isim from deneme where ad like e% // sql server bunu yazdığımız anda tablo içindeki tüm sayfaları tek tek aramaya başlar ve ismi e harfi ile başlayanları (bizim belirlediğimiz kriterlere uyan kayıtları) listeler. Tabi bu işlemi yaparken tablonun başından başlar ve bu verilere erişim hızını düşürür.

Diğer bir yöntem ise indexleme kullanımıdır sql server sorgu çalıştırıldığında öncelikle bir index olup olmadığını kontrol eder.

Neden index oluşturulur?

Başlıca neden tabiki hızlı erişim örneğin kitapların arka kapaklarında index bölümü vardır. Diyelim ki kitabın içinde group by terimini arıyorsunuz bunun için ya bin küsür sayfalık kitabın bütün sayfalarını tarayacaksınız yada index bölümünden alfabetik olarak o terimin hangi bölümünde kaçıncı sayfada olduğunu  hemen kolaylıkla  bulacaksınız J

Hemen basit bir örnekle nasıl index oluşturacağımızı anlatalım;

  • Öncelikle  deneme isimli bir veritabanı oluşturuyoruz ve bu veritabanına index adında bir tablo ekliyoruz
  • index1
  • Daha sonar rastgele veriler giriyoruz;
  • index2
  • Daha sonar tasarım kısmından index uygulayacağımız Alana sağ tıklayarak Indexes/Keys seçelim
  • index3
  • Gelen ekrana add şekildeki gibi değişiklikleri yapıyoruz created as clustered seçeneğine yes yapıp close diyerek kaydediyoruz.
  • index4
  • Kayıtları tekrar görüntülediğimizde ise aşağıdaki gibi kayıtlarımız alfabetik olarak listelenecektir ve her  veri girdiğimizde veriler otomatik sıraya sokulacaktır.
  • index5

Indexin faydasını anlamak için bir örnek verceğim diyelim bir kitapçı veritabanımız olsun ve yazar isimlerine index uygulamış olalım ve aşağıdaki sorguyu yazalım;

Select * from kitap where yazar  between ‘MehmetAfik’ and ‘YaşarKemal’

Bu sorgunun sonucunda dönecek olan kayıtlar yine alfabetik olarak listelenecektir. J

SQL-Server bütün indexler hakkındaki en önemli verileri(sayfa sayısı, veri, satır sayısı….) sysindexes system tablsu içerisinde tutar.

SELECT       * FROM            sys.sysindexes dediğimizde ;

index6

Tablo karşımıza çıkar en önemli sutunlar ise id ve indid sutunudur id sutunu tablonun ve indexin id sini kimliğini belirtir, indid sutunu ise nesnelerin özelliklerini tutar.