SQL Index Yapıları

CourierC

Kıdemli Üye
16 Ağu 2010
2,655
0
C:\Windows
İ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ı:

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 Index’in 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')
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:

Kod:
alter index ix_Firstname
on Calisan rebuild
Rebuild işlemi aslında index’i drop edip tekrar create etmektir.

İndex yapısını düzenlemek:

Kod:
ALTER index ix_Firstname
on Calisan reorganize

Bir index’i reorganize etmek, clustered veya nonclustered Index’te bulunan leaf level page’lerin tekrardan fiziksel sıralamaya sokulması demektir. Bu da index üzerinde yapılan sorgulamaların daha performanslı çalışmasını sağlar.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.