Eklenen sütunlar ile dizin oluşturmak

Bu konuda kümelendirilmemiş dizinler işlevselliğini genişletmek için gelen (veya nonkey) sütunları eklemek açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL. Nonkey sütunlar ekleyerek, başka sorgular kapak kümelendirilmemiş dizinler oluşturabilirsiniz. Bunun nedeni, nonkey sütunları aşağıdaki faydaları vardır:

  • Bunlar veri türü dizin anahtar sütunları kullanılamaz olabilir.

  • Onlar are not considered by Veritabanı Altyapısıdizin anahtar sütunları veya dizin anahtar boyutu sayısı hesaplanırken.

Sorgudaki tüm sütunları ya da dizin anahtarının veya nonkey sütunlar dahil olduğunda nonkey sütunlar ile dizin sorgu performansını önemli ölçüde iyileştirebilir. Sorgu en iyi duruma getiricisi dizin içinde tüm sütun değerleri bulabilirsiniz çünkü performans artışı elde; Tablo veya kümelenmiş dizin veri daha az disk g/Ç işlemlerinde kaynaklanan erişilebilir değil.

[!NOT]

Dizin o tipik olarak anılacaktır olarak sorgu tarafından başvurulan tüm sütunların içerdiğinde sorgu kapsayan.

Bu Konuda

  • Başlamadan Önce

    Tasarım önerileri

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Kullanarak nonkey sütunlar ile dizin oluşturmak için:

    SQL Server Management Studio

    Transact-SQL

Başlamadan Önce

Tasarım önerileri

  • Böylece yalnızca sütunları, arama ve arama için anahtar sütunları büyük dizin anahtar boyutu kümelendirilmemiş dizinleri yeniden. Tüm diğer sütunları nonkey sütunlar sorgu kapsayan olun. Bu şekilde, tüm sütunlar sorgu karşılamak için gerekli olacak ama küçük ve etkin dizin anahtarı.

  • Nonkey sütunlar 16 anahtar sütun en fazla ve en fazla dizin anahtar boyutu 900 bayt geçerli dizin boyutu sınırlamaları aşan önlemek için kümelendirilmemiş dizin içinde bulunmaktadır. Veritabanı AltyapısıNonkey sütunları dizin anahtar sütunları veya dizin anahtar boyutunu hesaplarken dikkate almaz.

Sınırlamalar ve Kısıtlamalar

  • Nonkey sütunları yalnızca kümelendirilmemiş dizinler üzerinde tanımlanabilir.

  • Dışındaki tüm veri türleri text, ntext, ve imagenonkey sütunları kullanılabilir.

  • Hesaplanan sütunlar deterministic ve kesin veya imprecise nonkey sütunlar olabilir. Daha fazla bilgi için, bkz. Hesaplanan sütun dizinlerde.

  • Hesaplanan sütunlar türetilen image, ntext, ve textveri türleri, hesaplanan sütun veri türü nonkey dizin sütun olarak izin verilen sürece nonkey sütunlar olabilir.

  • Bu tablonun Index ilk bırakılan sürece nonkey sütunları bir tablodan bırakılan.

  • Aşağıdakileri yapmak üzere dışında nonkey sütunları değiştirilemez:

    • Sütun nullability not null için null değiştirin.

    • Uzunluğunu artırmak varchar, nvarchar, ya varbinarysütun.

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

Nonkey sütunlar ile dizin oluşturmak için

  1. Nesne Explorer'da nonkey sütunlar ile dizin oluşturmak istediğiniz tabloyu içeren veritabanını genişletmek için artı işaretini tıklatın.

  2. Genişletmek için artı işaretini tablo ağıl.

  3. Nonkey sütunlar ile dizin oluşturmak istediğiniz tabloyu genişletmek için artı işaretini tıklatın.

  4. Sağ Dizinler klasörüne gelin Yeni bir dizinve Non-Clustered Index….

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

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

  7. İçinde Seçin sütunlarından table_name iletişim kutusunda, onay kutusunu veya tablo sütunu veya sütunları dizine eklenmesi için onay kutularını seçin.

  8. Click OK.

  9. Altında dahil sütunları sekmesinde, tıklayın Ekle….

  10. İçinde Seçin sütunlarından table_name iletişim kutusunda, onay kutusunu veya tablo sütun veya sütunları nonkey sütunları dizine eklenecek onay kutularını seçin.

  11. Click OK.

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

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

Transact-SQL'i Kullanma

Nonkey sütunlar ile 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
    -- Creates a nonclustered index on the Person.Address table with four included (nonkey) columns. 
    -- index key column is PostalCode and the nonkey columns are
    -- AddressLine1, AddressLine2, City, and StateProvinceID.
    CREATE NONCLUSTERED INDEX IX_Address_PostalCode
    ON Person.Address (PostalCode)
    INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID);
    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]