İndex ilişkili tablonun indexleme alanı olarak kullanılan kolondaki verilere göre sıralanmış biçimde işleme konulmasını sağlar. Eğer bir tablo indexlenmişse bu tablo içinde arama veya listeleme işlemi çok hızlı bir biçimde gerçekleştirilecektir.
İndexin başlıca kullanım amacı Veritabanının başarısını arttırmak.
İndex Kullanımı:
İndex Tipleri
Clustered index: Verilerin kendisinin index key (indexin verileceği kolon) değerine göre fiziksel olarak alfabetik sıralandığı index türüdür. Clustered Index bir tabloda maksimum bir tane olabilir.
Nonclustered index: Non-Clustered Index mimarisinde fiziksel bir sıralama söz konusu değildir. Index değeri, Clustered Indexin aksine verinin kendisi değil pointer değeridir. Bu pointer değeri verinin nerede olduğunu gösterir. Non-clustered Index bir tabloda maksimum 999 tane olabilir.(Sql Server 2008 için)
Örnek İndex Oluşturma:
İndex Değerlerine Bakma:
Komutu çalıştırdığımızda oluşan Scan Density [Best Count:Actual Count]
.: 100.00% satırı bizim için önemlidir. Scan Density oranı %50 nin altına düşerse indexi yeniden oluşturmalıyız. Yani rebuild veya reorganize yapmalıyız.
İndexi tekrar oluşturmak:
Rebuild işlemi aslında indexi drop edip tekrar create etmektir.
İndex yapısını düzenlemek:
Bir indexi reorganize etmek, clustered veya nonclustered Indexte bulunan leaf level pagelerin tekrardan fiziksel sıralamaya sokulması demektir. Bu da index üzerinde yapılan sorgulamaların daha performanslı çalışmasını sağlar.
İndexin başlıca kullanım amacı Veritabanının başarısını arttırmak.
İndex Kullanımı:
Kod:
CREATE [ CLUSTERED | NONCLUSTERED ] INDEX isim ON tablo ( { kolon | ( ifade ) }
İndex Tipleri
Clustered index: Verilerin kendisinin index key (indexin verileceği kolon) değerine göre fiziksel olarak alfabetik sıralandığı index türüdür. Clustered Index bir tabloda maksimum bir tane olabilir.
Nonclustered index: Non-Clustered Index mimarisinde fiziksel bir sıralama söz konusu değildir. Index değeri, Clustered Indexin aksine verinin kendisi değil pointer değeridir. Bu pointer değeri verinin nerede olduğunu gösterir. Non-clustered Index bir tabloda maksimum 999 tane olabilir.(Sql Server 2008 için)
Örnek İndex Oluşturma:
Kod:
create clustered index ix_Firstname
on Calisan (FirstName)
İndex Değerlerine Bakma:
Kod:
dbcc showcontig ('Calisan')
İndexi tekrar oluşturmak:
Kod:
alter index ix_Firstname
on Calisan rebuild
İndex yapısını düzenlemek:
Kod:
ALTER index ix_Firstname
on Calisan reorganize
Bir indexi reorganize etmek, clustered veya nonclustered Indexte bulunan leaf level pagelerin tekrardan fiziksel sıralamaya sokulması demektir. Bu da index üzerinde yapılan sorgulamaların daha performanslı çalışmasını sağlar.