Aracılığıyla paylaş


Dizinler (Veritabanı Altyapısı) oluşturma

Bu konu, ana dizin oluşturma görevlerini açıklar ve bir dizin oluşturmadan önce göz önünde bulundurulması gereken uygulama ve performans yönergeleri sağlar.

Dizin oluşturma görevleri

Bizim önerilen strateji dizin oluşturmak için aşağıdaki görevleri oluşturan:

  1. Tasarım dizini.

    Dizin tasarım önemli bir görevdir.Dizin tasarım içeren dizin türünü seçme kullanmak için hangi sütunların belirleme (örneğin, kümelenmiş veya kümelenmemiş) uygun dizin seçeneklerini seçmek ve dosya grubu belirleme veya bölümleme düzeni yerleştirme.Daha fazla bilgi için bkz:Dizin tasarlama.

  2. En iyi oluşturma yöntem belirler.Dizinler, aşağıdaki gibi oluşturulur:

    • CREATE tablo ya da ALTER tablo'ı kullanarak bir sütun birincil anahtar veya UNIQUE sınırlaması tanımlayarak

      The SQL Server Database Engine automatically creates a unique index to enforce the uniqueness requirements of a PRIMARY KEY or UNIQUE constraint.Kümelenmiş bir dizin üzerinde zaten sürece varsayılan olarak, benzersiz kümelenmiş dizin bir birincil anahtar kısıtlaması zorlamak için oluşturulan tablo, ya da benzersiz kümelenmemiş bir dizin belirtin.Varsayılan olarak, benzersiz bir kümelenmemiş dizin benzersiz kümelenmiş dizin açıkça belirtilen ve masadaki kümelenmiş bir dizin yoksa UNIQUE kısıtlamayı zorlamak için oluşturulur.

      Dizin seçenekleri ve dizin konumu, dosya grubu veya bölümü şeması, da belirtilebilir.

      birincil anahtar veya UNIQUE ilişkinin bir parçası olarak oluşturulmuş bir dizini otomatik olarak aynı adı kısıtlama adı verilir.Daha fazla bilgi için bkz:birincil anahtar kısıtlamalarıveUNIQUE kısıtlamaları.

    • CREATE INDEX deyimini kullanarak bir dizin oluşturarak bağımsız bir sınırlama veyaYeni dizin iletişim kutusunda SQL Server Management StudioObject Explorer

      Dizin, tablo ve sütun dizini uygulandığı adını belirtmeniz gerekir.Seçenekler ve dizin konumu, dosya grubu veya bölümü şeması dizin, da belirtilebilir.Kümelenmiş ya da benzersiz seçenek belirtilmezse, varsayılan olarak, kümelenmemiş, benzer bir dizin oluşturulur.Filtre uygulanmış bir dizin oluşturmak için isteğe bağlı WHERE yan tümcesini kullanın.Daha fazla bilgi için bkz:Süzülmüş dizin tasarım yönergeleri.

  3. Oluşturma dizini.

    Dizin boş bir tablo veya veri içeren bir oluşturulacak olup olmadığını göz önünde bulundurulması gereken önemli bir etkendir.Boş bir tablo dizin oluşturma hiçbir performans üzerindeki etkileri saat dizini oluşturulur; tabloya veri eklendiğinde, ancak, performansı etkilenir.

    Veritabanı performansını değil hindered için büyük tabloları dizinleri oluşturma dikkatle planlanmış.Kümelenmiş dizin ile başlatın ve sonra tüm kümelenmemiş dizinler oluşturmak için büyük tablolarda dizinler oluşturmak için tercih edilen yolu değil.Varolan tabloları dizinleri oluştururken çevrimiçi seçeneği ON olarak ayarlanması göz önünde bulundurun.ON olarak ayarlandığında, uzun süreli tablo kilidi sorguları veya devam etmek için temel alınan tablo güncelleştirmelerini etkinleştirme tutulur değil.Daha fazla bilgi için bkz:Çevrimiçi ındex işlemi gerçekleştiriliyor.

Uygulama konuları

Aşağıdaki tablo kümelenmiş, kümelenmemiş, kayma, filtre, uygulanan en yüksek değerleri ve XML dizinleri listeler.Belirtilmedikçe, kısıtlamaları dizin türleri için geçerlidir.

En fazla dizin sınırları

Değer

Ek bilgi:

Tablo başına kümelenmiş dizinler

1

 

Tablo başına kümelenmemiş dizinleri

999

birincil anahtar veya UNIQUE kısıtlamaları ve filtre uygulanmış dizinler, ancak XML dizinler tarafından oluşturulan kümelenmemiş dizinleri içerir.

Tablo başına XML dizinler

249

İçerir birincil ve ikincil XML dizinler hakkındaxmlveri türü sütun.

XML veri türü sütun dizinleri

Tablo başına kayma dizinler

249

Kayma dizinleri (Veritabanı Altyapısı) ile çalışma

Her dizin anahtar sütunlarının sayısını bulmak

16*

Kümelenmiş bir dizin olup olmadığını 15 sütun sınırlı tablo birincil XML dizin ya da uzamsal bir dizin de içerir.

Dizin anahtarlarının en büyük boyutu.

Dizin anahtar kaydı boyutu

900 bayt *

XML dizinler veya uygulanmaz kayma dizinler.

Bir tablo kayma dizinler desteklemek için en fazla dizin anahtar kaydı boyutudur 895 bayt.

Dizin anahtarlarının en büyük boyutu.

*, Dizin anahtar sütun ve kümelenmemiş dizinleri kayıt boyutu sınırlamaları dizinde olmayan sütunlar ekleyerek önleyebilirsiniz.Daha fazla bilgi için bkz:Içerilen sütunları içeren dizin.

Veri Türleri

Genellikle, bir tablo veya görünümde herhangi bir sütun sıralanması.Aşağıdaki tablo, dizin katılım sınırlı veri türlerini listeler.

Veri türü

Dizin katılım

Ek bilgi:

CLR kullanıcı tanımlı türü

İkili sıralama türünü destekliyorsa, dizin.

Kullanıcı tanımlı türler CLR ile çalışma

(LOB) büyük nesne veri türleri: image,ntext,text,varchar(max),nvarchar(max),varbinary(max), andxml

Bir dizin anahtar sütun olamaz.Ancak birXMLsütun, bir anahtar sütununa bir tablo. birincil veya ikincil bir XML dizini olabilir

(Dahil) olmayan sütunlar kümelenmemiş bir dizin dışında olarak katılmakimage,ntext, vetext.

Katılabilir parçası hesaplanan sütun bir ifade.

Içerilen sütunları içeren dizin

XML veri türü sütun dizinleri

Hesaplanan sütunlar

Dizin oluşturulmuş.Yöntemler belirli işaretli olduğu sürece bu yöntem etkinleştirilmelerinde bir CLR kullanıcı tanımlı türü sütun tanımlanan hesaplanan sütunlar içerir.

Hesaplanan sütunlar türetilen bir anahtar ya da olmayan sütunu hesaplanan sütun veri türü, bir anahtar sütunu dizin veya olmayan bir sütun olarak izin verilir olarak türleri ya da dizine alınması LOB veri.

Hesaplanan sütunlar üzerinde dizin oluşturma

Varchar basılı devre dışı satır sütun

kümelenmiş dizin, dizin anahtar içeremezvarcharROW_OVERFLOW_DATA tahsisini varolan veriyi içeren sütunu unit., kümelenmiş dizin oluşturulur, birvarcharsütun varolan verileri ise IN_ROW_DATA ayırma birimi, sonraki ekleme veya güncelleştirme eylemleri gönderme sütun veri devre dışı-satır olacak başarısız.

Tablo ve dizin kuruluşu

Satır-8 KB Exceeding veri taşması

geometry

Birden fazla kayma dizinleri ile dizin.

uzamsal veri türleri

Ek ana hatları

Bir dizin oluşturmak için bazı ek önemli noktalar şunlardır:

  • CONTROL olması ya da ALTER iznine, dizin oluşturma tablo.

  • Oluşturulan dizin otomatik olarak etkin ve kullanılabilir olur.Dizin erişimini devre dışı bırakarak kaldırabilirsiniz.Daha fazla bilgi için bkz:Dizinleri devre dışı bırakma.

Disk alanı gereksinimleri

Dizini depolamak için gereken disk alanı miktarı aşağıdaki etkenlere bağlıdır:

Performans Değerlendirmeleri

Fiziksel bir dizin oluşturmak için kullanılan saat disk alt sistemi büyük ölçüde bağlıdır.Göz önüne almanız gereken önemli Etkenler şunlardır:

  • Veritabanının kurtarma modeli.Yığın-günlüklenen kurtarma modeli, daha yüksek performans ve tam kurtarma çok dizin oluşturma işlemi sırasında daha az günlük alanı tüketimi sağlar.Ancak, yığın-günlüklenen kurtarma saat içinde alınmı kurtarma için esnekliği azalır.Daha fazla bilgi için bkz:Indeks işlemleri için bir kurtarma modeli seçme.

  • The RAID (redundant array of independent disks) level used to store the database and transaction log files.Genellikle eritleme kullanan RAID düzeyleri daha iyi g/Ç bant genişliği olacaktır.

  • RAID kullanılıyorsa, disk dizisindeki disk sayısı.Daha fazla sürücü dizisi artar veri hızları orantılı olarak aktarın.

  • Burada Ara sıralama verileri çalışan depolanır.The SORT_IN_TEMPDB kullanma seçeneği azaltabilir saat dizin oluşturmak için gereken zamantempdb kullanıcı veritabanında. disklerden farklı bir dizi olan Daha fazla bilgi için bkz:tempdb ve dizin oluşturma.

  • Çevrimiçi veya çevrimdışı dizin oluşturma.

    Bir dizini (varsayılan) çevrimdışı oluşturulduğunda, özel kilit temel üzerinde tutulan tablo dizin oluşturma işlemi tamamlanıncaya kadar.Tablo dizin oluşturulurken kullanıcıların erişilemez.

    XML ve kayma dizin dışındaki dizin çevrimiçi oluşturulmasını belirtebilirsiniz.Çevrimiçi seçeneği olduğunda küme ON olarak değil uzun süreli tablo kilitli tutulur, sorgular veya dizin oluşturulurken devam etmek için temel alınan tablo güncelleştirmelerini etkinleştirme.Çevrimiçi dizin işlemleri öneririz, ancak, ortam ve belirli gereksinimleri değerlendirmelidir.Dizin işlemleri çevrimdışı çalışması daha iyi olabilir.Böylece, kullanıcıların veri erişim işlemi sırasında sınırlı, ancak işlemi daha hızlı sonlandırır ve daha az kaynak kullanır.Daha fazla bilgi için bkz:Çevrimiçi ındex işlemi gerçekleştiriliyor.

Bir tablo oluşturduğunuzda, birincil anahtar veya benzersiz kısıtlama oluşturmak için

Varolan, birincil anahtar veya UNIQUE sınırlaması oluşturmak için tablo

Dizin oluşturmak için

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Kümelenmemiş dizin sınırı 999 için güncelleştirildi.