Dizin, SQL Server'ın satırlardan hızla veri almasına yardımcı olur. Dizinler, kitapların başındaki içindekiler gibi çalışır ve bir konunun bulunduğu sayfayı hızlı bir şekilde aramanıza olanak tanır. Dizinler olmadan, SQL Server'ın bir kayıt bulmak için bir tablodaki tüm satırları taraması gerekir.
SQL Server'da iki tür dizin vardır: kümelenmiş ve kümelenmemiş. Kümelenmiş ve kümelenmemiş dizinler arasındaki farkı ve neden önemli olduklarını öğrenin.
SQL Server'da Kümelenmiş Dizin
Kümelenmiş bir dizinde, veri satırları, anahtar değerine göre sıralı bir şekilde fiziksel olarak depolanır. Dizin tabloyu içerdiğinden ve satırları yalnızca bir sırada düzenleyebildiğinden, tablo başına yalnızca bir kümelenmiş dizin oluşturabilirsiniz.
Dizinler, bir aralıktaki satırların alınmasını hızlandırırken, INSERT ve UPDATE deyimleri
yavaş olabilir, çünkü sorgu iyileştirici hedef dizini bulana kadar dizini sırayla tarar.SQL Server'da Kümelenmemiş Dizin
Kümelenmemiş bir dizin, girişi satır bulucu adı verilen bir işaretçi olan anahtar değerleri içerir. Kümelenmiş tablolar için (kümelenmiş dizine sahip tablolar), işaretçi kümelenmiş dizindeki bir anahtarı işaret eder ve bu da tablodaki satırı gösterir. Kümelenmiş dizini olmayan satırlar için işaretçi doğrudan tablo satırını gösterir.
SQL Server'da Kümelenmiş Dizin Nasıl Oluşturulur
Birincil anahtarla bir tablo oluşturduğunuzda, SQL Server otomatik olarak bu birincil anahtarı temel alan bir kümelenmiş dizin anahtarı oluşturur. Birincil anahtarınız yoksa, kümelenmiş bir dizin anahtarı oluşturmak için aşağıdaki ifadeyi çalıştırabilirsiniz.
YARATMAK KÜMELENMİŞ DİZİN <dizinisim>
MASADA <Tablo ismi>(sütun adı)
Bu ifadede, dizinin adını, oluşturulacağı tablonun adını ve dizinde kullanılacak sütun adını belirtiyorsunuz.
Halihazırda kümelenmiş bir dizine sahip bir tabloya birincil anahtar eklerseniz, SQL Server onunla kümelenmemiş bir dizin oluşturur.
Birincil anahtar sütununu içermeyen kümelenmiş bir dizin oluşturmak için önce birincil anahtar kısıtlamasını kaldırmanız gerekir.
KULLANMAKveri tabanı ismi
DEĞİŞİKLİKMASA Tablo ismi
DÜŞÜRMEKKISITLAMA pk_adı
GİTMEK
Birincil anahtar kısıtlamalarının kaldırılması, kümelenmiş dizini de kaldırarak özel bir dizin oluşturmanıza olanak tanır.
SQL Server'da Kümelenmemiş Dizin Nasıl Oluşturulur
Kümelenmemiş bir dizin oluşturmak için aşağıdaki ifadeyi kullanın.
YARATMAKDİZİN <dizinisim>
MASADA <Tablo ismi>(sütun adı)
NONCLUSTERED anahtar kelimesini şu şekilde de kullanabilirsiniz:
YARATMAK [KÜMELENMEMİŞ] DİZİN <dizinisim>
MASADA <Tablo ismi>(sütun adı)
Bu ifade, belirttiğiniz tabloda kümelenmemiş bir dizin oluşturur ve belirttiğiniz sütunu içerir.
Dilerseniz sütunları artan (ASC) veya azalan (DESC) düzende sıralayabilirsiniz.
YARATMAK [KÜMELENMEMİŞ] DİZİN <dizinisim>
MASADA <Tablo ismi>(sütun_adı ASC/DESC)
Hangi Dizini Seçmelisiniz?
Hem kümelenmiş hem de kümelenmemiş dizinler, sorgulama süresini iyileştirir. Sorgularınızın çoğu, tablodaki birkaç sütunda SELECT işlemleriyse, kümelenmiş dizinler daha hızlıdır. Ancak, INSERT veya UPDATE işlemleri için, sorgu iyileştirici sütunu doğrudan dizinden bulabildiğinden, kümelenmemiş dizinler daha hızlıdır.
Gördüğünüz gibi, bu indeksler en iyi şekilde çalışır. farklı SQL sorguları. Bu nedenle çoğu SQL veri tabanı, düzenli olarak güncellenen sütunlar için en az bir kümelenmiş dizine ve kümelenmemiş dizine sahip olmaktan fayda sağlayacaktır.
SQL Server'da İndekslerin Önemi
Kümelenmiş ve kümelenmemiş dizinler, daha yüksek sorgu performansı sağlar. Bir sorgu çalıştırdığınızda, sorgu iyileştirici dizini bir satırın depolama konumu için tarar ve ardından bu konumdan bilgi alır. Bu, tablodaki tüm satırları taramaktan çok daha hızlıdır.
Sorguların dahil olduğu sütunlar için kümelenmemiş bir dizin oluşturarak yer imi arama kilitlenmelerini çözmek için kümelenmemiş dizinleri de kullanabilirsiniz.