Aracılığıyla paylaş


Dizinler (veritabanı altyapısı) oluşturma

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

Dizin oluşturma görevleri

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

  1. Dizin tasarlama.

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

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

    • Üzerinde bir birincil anahtar veya benzersiz kısıtlama tanımlayarak bir sütun create table veya alter table kullanarak

      The SQL Server Veritabanı Altyapısı automatically creates a unique index to enforce the uniqueness requirements of a PRIMARY KEY or UNIQUE constraint.Varsayılan olarak, bir birincil anahtar kısıtlaması üzerinde tablo kümelenmiş bir dizin zaten var veya benzersiz bir kümelenmemiş dizin belirttiğiniz sürece zorlamak için benzersiz kümelenmiş dizin oluşturulur.Varsayılan olarak, benzersiz kümelenmiş dizin açıkça belirtilmediği sürece, benzersiz kısıtlamayı zorlamak için benzersiz kümelenmemiş dizin oluşturulur ve kümelenmiş bir dizin üzerinde tablo yok.

      Dizin seçenekleri ve dizin konumu, dosya grubu veya bölümleme düzeni, da belirtilebilir.

      Bir birincil anahtar veya benzersiz kısıtlama bir parçası olarak oluşturulan dizin otomatik olarak aynı adı taşıyan kısıtlama adı verilir.Daha fazla bilgi için bkz: BİRİNCİL anahtar sınırlamaları ve UNIQUE Kısıtları.

    • create INDEX kullanarak bir dizin oluşturarak bağımsız bir kısıtlama olarak deyim, veya Yeni bir dizin iletişim kutusunda SQL Server Management Studio Object Explorer

      Dizini, tablo ve sütun dizini uygulandığı adını belirtmeniz gerekir.Dizin seçenekleri ve dizin konumu, dosya grubu veya bölümleme düzeni, da belirtilebilir.Kümelenmiş veya benzersiz seçenek belirtilmezse, varsayılan olarak, benzersiz olmayan kümelenmemiş bir dizin oluşturulur.Filtre uygulanmış bir dizin oluşturmak için isteğe bağlı where yan tümce tümce tümcesini kullanın.Daha fazla bilgi için bkz: Filtre uygulanmış dizin tasarım yönergeleri.

  3. Dizini oluşturun.

    Boş bir tablo veya veri içeren bir dizin oluşturulmuş olup olmadığını göz önünde bulundurulması gereken önemli bir faktördür.Boş bir tablo üzerinde bir dizin oluşturma sırasında hiçbir Performans etkileri vardır saat dizini oluşturulur; Bununla birlikte, veri eklendiğinde performans etkilenecek tablo.

    Veritabanı performansını engelliyordu için büyük tablolarda dizinler oluşturma dikkatle planlanan.Büyük tablolarda dizinler oluşturmak için tercih edilen kümelenmiş dizin ile başlatın ve sonra tüm kümelenmemiş dizinler oluşturmak için yoludur.Var olan tablolarda dizinler oluştururken çevrimiçi seçenek on olarak ayarlanması göz önünde bulundurun.Zaman küme on, uzun süreli temel alınan tablo kilitleri sorgular veya devam etmek için temel alınan temel alınan tablo güncelleştirmeleri etkinleştirme tutulur değil.Daha fazla bilgi için bkz: Çevrimiçi dizin işlemleri gerçekleştirme.

Uygulama ile ilgili konular

Aşağıdaki tablo kümelenmiş, kümelenmemiş, kayma, için filtre uygulanan en yüksek değerleri ve xml dizinleri listeler.Belirtilmedikçe, tüm dizin türleri için sınırlamalar 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

BİRİNCİL anahtar veya benzersiz kısıtlama ve filtre uygulanmış dizinler, ancak xml dizinler tarafından oluşturulan kümelenmemiş dizinleri içerir.

Tablo başına xml dizinler

249

Birincil ve ikincil xml dizinler içerir xml veri türü sütun.

xml veri türü sütun dizinlerde

Tablo başına kayma dizinler

249

Kayma dizinler (veritabanı altyapısı) ile çalışma

Dizin başına anahtar sütun sayısı

16*

Tablo bir birincil xml dizin veya herhangi bir kayma dizinler içeriyorsa, kümelenmiş dizin için 15 sütunları sınırlıdır.

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

Dizin anahtar kaydı boyutu

900 bayt *

xml dizinler veya kayma dizinler için geçerli değildir.

Bir tablo kayma dizinler desteklemek en fazla dizin anahtar kaydı 1.065.895 bayt boyutudur.

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

* Size dizin önleyebilirsiniz anahtar sütun ve kayıt boyutu sınırlamaları olmayan ekleyerek kümelenmemiş dizinlerianahtar dizin sütunları.Daha fazla bilgi için bkz: Eklenen sütunlar ile dizin.

Veri Türleri

Genel olarak, herhangi bir sütun bir tablo veya görünümde sıralanabilir.Aşağıdaki tablo, dizin katılım sınırlandırmış 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, sıralanabilir.

clr kullanıcı tanımlı türleri ile çalışma

Büyük nesne (lob) veri türleri: image, ntext, text, varchar(max), nvarchar(max), varbinary(max), and xml

Bir dizin anahtar olamaz sütun.Ancak, bir XML sütun bir anahtar olabilir sütun bir tablo üzerinde birincil veya ikincil bir xml dizin içinde.

Anahtarı olmayan (dahil) sütunlar halinde kümelenmemiş dizin dışında katılabilirsiniz image, ntext, ve text.

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

Eklenen sütunlar ile dizin

xml veri türü sütun dizinlerde

Hesaplanan sütunlar

Sıralanabilir.Yöntem deterministic işaretlenmiş olduğu sürece bu clr kullanıcı tanımlı tür sütun çağırmaları yöntemi tanımlanan hesaplanan sütunlar içerir.

Hesaplanan sütunlar türetilen lob veri anahtarı veya anahtarı olmayan sütun olarak hesaplanan sütun veri türü dizin anahtar sütunu ya da anahtarı olmayan sütun izin sürece türleri ya da dizine alınabilir.

Dizinler üzerinde hesaplanan sütunlar oluşturma

Varchar sütun satır kapalı itildiği

kümelenmiş dizin dizin anahtar içeremez varchar row_overflow_data içinde varolan verilere sahip sütunlar ayırma birimi.Kümelenmiş dizin üzerinde oluşturduysanız, bir varchar sütun ve mevcut verilere olan IN_ROW_DATA ayırma birimi, ekleme veya istediğiniz sütun güncelleştirme eylemlerini gönderme veri kapalı-satır will fail.

Tablo ve dizin organizasyon

8 kb aşan satır taşma veri

geometry

Birden fazla kayma dizinleri ile sıralanabilir.

Kayma veri türleri

Dikkat edilecek diğer noktalar

Dizin oluşturma için bazı noktalar şunlardır:

  • DENETLEME sahiptir ya da alter izni bir dizin oluşturmak tablo.

  • Oluşturduğunuzda otomatik olarak etkin ve kullanılabilir dizinidir.Dizin erişimi devre dışı bırakarak kaldırabilirsiniz.Daha fazla bilgi için bkz: Dizinler devre dışı bırakma.

Disk alanı gereksinimleri

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

Performans değerlendirmeleri

saat Gerçekleştirilen fiziksel dizin oluşturmak için disk alt sisteminde büyük ölçüde bağlıdır.Dikkat edilecek önemli noktalar şunlardır:

  • Veritabanı kurtarma modeli.toplu günlük kurtarma modeli Daha yüksek performans ve tam kurtarma dan 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 noktası için esneklik azaltır-de-saat kurtarma.Daha fazla bilgi için bkz: Dizin 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.

  • Dizideki RAID kullanılıyorsa, disk, disk sayısı.Daha fazla dizi artar veri sürücülerinde aktarım hızları orantılı.

  • Ara sıralama verilerin nerede çalışır depolanır.SORT_IN_TEMPDB seçeneğini kullanarak azaltabilirsiniz saat dizin oluşturmak için gereken, tempdb kullanıcı veritabanı disklerden farklı küme açıktır.Daha fazla bilgi için bkz: tempdb ve dizin oluşturma.

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

    Bir dizin (varsayılan) çevrimdışı oluşturulduğunda, dizin oluşturma işlemi tamamlanıncaya kadar temel alınan temel alınan tablo üzerinde özel kilit tutulur.Dizin oluşturulurken tablo kullanıcıları için erişilebilir değil.

    xml ve kayma dizinler dışındaki dizin çevrimiçi oluşturulmasını belirtebilirsiniz.Ne zaman çevrimiçi seçenek, küme , on değil uzun vadeli temel alınan tablo kilitleri tutulur, etkinleştirme sorgular veya dizin oluşturulurken devam etmek için temel alınan temel alınan tablo güncelleştirir.Çevrimiçi dizin işlemleri öneririz, ancak ortamı ve belirli gereksinimleri değerlendirmelidir.Dizin işlemleri çevrimdışı çalışması daha iyi olabilir.Böylece, işlem sırasında kullanıcıların veri erişim sınırlandırmış, ancak işlem tamamlandığında daha hızlı ve daha az kaynak kullanır.Daha fazla bilgi için bkz: Çevrimiçi dizin işlemleri gerçekleştirme.

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

Üzerinde varolan bir birincil anahtar veya benzersiz kısıtlama oluşturmak içintablo

Dizin oluşturmak için