Kümelenmiş dizinler oluşturma

Tablolarda Kümelenmiş dizinler oluşturabilirsiniz SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL. Birkaç istisna dışında her tablo kümelenmiş bir dizin olmalıdır. Sorgu performans artırma yanında, kümelenmiş bir dizin yeniden veya tablo parçalanma denetlemek amacıyla isteğe bağlı olarak yeniden düzenlenmiş. Kümelenmiş bir dizin, bir görünümü de oluşturulabilir. (Kümelenmiş dizinler'nda tanımlanan Açıklanan kümelenmiş ve kümelendirilmemiş dizinler.)

Bu Konuda

  • Başlamadan Önce

    Tipik uygulamaları

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Bir tabloda, kümelenmiş bir dizin oluşturmak için kullanma:

    SQL Server Management Studio

    Transact-SQL

Başlamadan Önce

Tipik uygulamaları

Kümelenmiş dizinler, aşağıdaki yollarla uygulanır:

  • PRIMARY key ve UNIQUE kısıtlamaları

    PRIMARY key kısıtlaması oluşturduğunuzda, benzersiz kümelenmiş dizin sütun veya sütunları tablo kümelenmiş bir dizin zaten var olmayan ve benzersiz kümelendirilmemiş dizin belirtmezseniz, otomatik olarak oluşturulur. Birincil anahtar sütunu null değerlere izin veremez.

    BENZERSİZ kısıtlama oluşturduğunuzda, benzersiz kümelendirilmemiş dizin varsayılan olarak benzersiz kısıtlamayı zorlamak için oluşturulur. Tablo kümelenmiş bir dizin zaten mevcut değilse, benzersiz kümelenmiş dizin belirtebilirsiniz.

    Kısıtlamanın bir parçası olarak oluşturulan dizin otomatik olarak kısıtlama adı aynı adı verilir. Daha fazla bilgi için Birincil ve yabancı anahtar kısıtlamalarıve UNIQUE kısıtlamaları ve Check kısıtlamaları.

  • Dizin bağımsız bir sınırlama

    Kümelendirilmemiş birincil anahtar kısıtlaması belirtilmişse bir sütunda birincil anahtar sütunu dışındaki kümelenmiş bir dizin oluşturabilirsiniz.

Sınırlamalar ve Kısıtlamalar

  • Bir Kümelenmiş dizin yapısı oluşturduğunuzda eski (kaynak) ve yeni (hedef) yapıları için disk alanı kendi ilgili dosyaları ve filegroups gereklidir. Tam hareketi tamamlar kadar eski yapısı kaldırıldı değil. Ek geçici disk alanı sıralamak için de gerekli olabilir. Daha fazla bilgi için, bkz. Dizin ddl işlemleri için disk alanı gereksinimleri.

  • Kümelenmiş bir dizin, bir yığın birkaç varolan kümelendirilmemiş dizinler ile oluşturulmuşsa, böylece satır tanımlayıcı (RID) yerine kümeleme anahtar değeri içerdikleri bütün kümelendirilmemiş dizinleri oluşturulması gerekir. Kümelenmiş bir dizin olan birkaç kümelendirilmemiş dizinler bir tabloda kesilirse, benzer şekilde, kümelendirilmemiş dizinler tüm bırakma işleminin bir parçası olarak yeniden oluşturulur. Bu büyük tablolarda önemli zaman alabilir.

    Büyük tablolarda dizinler oluşturmak için tercih edilen yolu, kümelenmiş dizin ile başlatın ve sonra herhangi bir kümelendirilmemiş dizinler oluşturmak etmektir. Varolan tablolarda dizinler oluştururken ONLINE seçeneği on olarak ayarlanması düşünün. on olarak ayarlandığında, uzun vadeli tablo kilitleri tutulur değil. Bu sorguları veya devam etmek için temel tablo güncelleştirmelerini sağlar. Daha fazla bilgi için, bkz. Çevrimiçi dizin işlemleri gerçekleştirme.

  • Kümelenmiş bir dizin dizin anahtarı içeremez varcharrow_overflow_data ayırma varolan veri sütunları unit. Kümelenmiş dizin üzerinde oluşturulan bir varcharsütun ve varolan verileri IN_ROW_DATA ayırma biriminde, sonraki INSERT veya update işlemlerini veri kapalı-satır itmek istiyorsunuz sütunu başarısız olur. Satır taşma veri içerebilecek tabloları hakkında bilgi edinmek için sys.dm_db_index_physical_stats (Transact-sql)dinamik yönetimi işlevi.

Güvenlik

İzinler

Tablo veya görünümde ALTER izni gerektirir. Kullanıcı-meli var olmak a üye sysadmin sabit sunucu rolü veya db_ddladmin ve db_owner veritabanı rolleri sabit.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

SQL Server Management Studio Kullanarak

Nesne Gezgini'ni kullanarak kümelenmiş bir dizin oluşturmak için

  1. Nesne Explorer, kümelenmiş bir dizin oluşturmak istediğiniz tablo genişletin.

  2. Sağ Dizinler klasörüne gelin Yeni bir dizinve Kümelenmiş Index….

  3. İçinde Yeni bir dizin iletişim kutusunu Genel sayfasında, yeni dizin adını dizin adı kutusu.

  4. Altında dizin anahtar sütunları, tıklayın Ekle….

  5. İçinde Seçin sütunlarından table_name iletişim kutusunda, kümelenmiş bir dizin için eklenecek tablo sütun onay kutusunu seçin.

  6. Click OK.

  7. İçinde Yeni bir dizin iletişim kutusunda, tıklatın Tamam.

Tablo Tasarımcısı'nı kullanarak kümelenmiş bir dizin oluşturmak için

  1. Nesne Explorer'da tablo kümelenmiş bir dizin oluşturmak istediğiniz veritabanı genişletin.

  2. Sağ tablo ağıl ve tıkırtı Yeni Table….

  3. Normalde yaptığınız gibi yeni bir tablo oluşturun. Daha fazla bilgi için, bkz. Tabloları (veritabanı altyapısı) oluşturma.

  4. Yukarıda oluşturduğunuz yeni tabloyu sağ tıklatın ve tıklatın Tasarım.

  5. Tarih Tablo Tasarımcısı menüsünü tıklayın Dizinler/Anahtarlar.

  6. İçinde Dizinler/Anahtarlar iletişim kutusunda, tıklatın Ekle.

  7. İçinde yeni bir dizin seçin Seçili birincil ve Unique tuşu veya dizini metin kutusu.

  8. Kılavuzda, seçin Clustered olarak oluşturve Evet özelliği sağındaki aşağı açılan listeden.

  9. Tıklayın yakın.

  10. Tarih dosyasını menüsünden tıklatın kaydetmektable_name.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

Kümelenmiş bir dizin oluşturmak için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012;
    GO
    -- Create a new table with three columns.
    CREATE TABLE dbo.TestTable
        (TestCol1 int NOT NULL,
         TestCol2 nchar(10) NULL,
         TestCol3 nvarchar(50) NULL);
    GO
    -- Create a clustered index called IX_TestTable_TestCol1
    -- on the dbo.TestTable table using the TestCol1 column.
    CREATE CLUSTERED INDEX IX_TestTable_TestCol1 
        ON dbo.TestTable (TestCol1); 
    GO
    

Daha fazla bilgi için, bkz. Index (Transact-sql) oluştur.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Ayrıca bkz.

Kavramlar

Birincil anahtarları oluştur

Benzersiz kısıtlama oluşturma