index_option (Transact-sql)

Bir kısıtlama tanımı kullanılarak oluşturulan bir parçası olan dizin uygulanabilir seçenekler kümesi belirtir alter table.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

{ 
    PAD_INDEX = { ON | OFF }
  | FILLFACTOR = fillfactor
  | IGNORE_DUP_KEY = { ON | OFF }
  | STATISTICS_NORECOMPUTE = { ON | OFF }
  | ALLOW_ROW_LOCKS = { ON | OFF }
  | ALLOW_PAGE_LOCKS = { ON | OFF }
  | SORT_IN_TEMPDB = { ON | OFF } 
  | ONLINE = { ON | OFF }
  | MAXDOP = max_degree_of_parallelism
  | DATA_COMPRESSION = { NONE |ROW | PAGE}
      [ ON PARTITIONS ( { <partition_number_expression> | <range> } 
      [ , ...n ] ) ]
}

<range> ::= 
<partition_number_expression> TO <partition_number_expression>

<single_partition_rebuild__option> ::=
{
    SORT_IN_TEMPDB = { ON | OFF }
  | MAXDOP = max_degree_of_parallelism
  | DATA_COMPRESSION = {NONE | ROW | PAGE } }
}

Bağımsız değişkenler

  • PAD_INDEX = {on | OFF }
    Dizin dolgusunu belirtir. Varsayılan değer OFF'tur.

    • ON
      FILLFACTOR tarafından belirtilen boş alan yüzdesi, dizinin ara düzey sayfalarına uygulanır.

    • KAPALI veya fillfactorbelirtilmemiş
      Orta düzey sayfalar, dizini olabilir, en büyük boyutu en az bir satır için yeterli alan anahtarları kümesi ara sayfalarında verilen bırakarak kapasite, near doldurulur.

  • FILLFACTOR **=**fillfactor
    Nasıl tam gösteren bir yüzdesini belirtir Veritabanı Altyapısıyaprak düzeyi her dizin sayfasının dizin oluşturma veya değiştirme sırasında yapmalısınız. Belirtilen değer bir tamsayı değeri 1 ile 100 olmalıdır. Varsayılan değer 0'dır.

    [!NOT]

    Dolgu etmeni değerler 0 ve 100 tüm açılardan aynıdır.

  • IGNORE_DUP_KEY = {on | OFF }
    Bir ekleme işlemi benzersiz bir dizine yinelenen anahtar değerleri eklemeye çalıştığında verilecek hata yanıtını belirtir. IGNORE_DUP_KEY seçeneği yalnızca dizin oluşturulduktan veya yeniden oluşturulduktan sonraki ekleme işlemlerine uygulanır. Yürütürken seçeneğin bir etkisi olmaz create INDEX, alter INDEX, veya güncelleştirme. Varsayılan değer OFF'tur.

    • ON
      Benzersiz bir dizine yinelenen anahtar değerleri eklendiğinde bir uyarı iletisi oluşur. Yalnızca benzersizlik kısıtlamasını ihlal eden satırlar hata verir.

    • OFF
      Benzersiz dizine yinelenen anahtar değerleri eklendiğinde bir hata iletisi oluşur. Tüm INSERT işlemi geri alınır.

    IGNORE_DUP_KEY on bir görünüm oluşturulmuş dizinleri, benzersiz olmayan dizinler, xml dizinler, kayma dizinleri ve filtre uygulanmış dizinler ayarlanamaz.

    IGNORE_DUP_KEY değerini görüntülemek için, sys.indexes'i kullanın.

    WITH IGNORE_DUP_KEY, geriye doğru uyumluluk dizininde WITH IGNORE_DUP_KEY = ON ayarına denktir.

  • STATISTICS_NORECOMPUTE = {on | OFF }
    İstatistikleri yeniden olup olmadığını belirtir. Varsayılan değer OFF'tur.

    • ON
      Güncelliğini yitirmiş istatistikler otomatik olarak yeniden hesaplanmaz.

    • OFF
      İstatistiklerin otomatik güncelleştirilmesi etkinleştirilir.

  • ALLOW_ROW_LOCKS = { ON | KAPALI}
    Satır kilidi kullanılıp kullanılamadığını belirtir. ON varsayılan değerdir.

    • ON
      Dizine erişilirken satır kilitleri kullanılabilir. Satır kilitlerinin ne zaman kullanıldığını Veritabanı Altyapısı belirler.

    • OFF
      Satır kilitleri kullanılmaz.

  • ALLOW_PAGE_LOCKS = { ON | OFF }
    Sayfa kilidi kullanılıp kullanılamadığını belirtir. ON varsayılan değerdir.

    • ON
      Sayfa kilitlemeleri dizin erişirken izin verilir. Veritabanı AltyapısıNe zaman sayfa kilitleri kullanılır belirler.

    • OFF
      Sayfa kilitleri kullanılmaz.

  • SORT_IN_TEMPDB = {on | OFF }
    Sıralama sonuçları depolamak belirtir tempdb. Varsayılan değer OFF'tur.

    • ON
      Dizin oluşturmak için kullanılan ara sıralama sonuçları depolanır tempdb. Bu, dizin oluşturmak için gereken süreyi azaltmak tempdb kullanıcı veritabanı disklerden farklı bir dizi olduğunu. Ancak, dizinin oluşturulması sırasında kullanılan disk alanı miktarını da artırır.

    • OFF
      Ara sıralama sonuçları, dizin ile aynı veritabanında depolanır.

  • ONLINE = { ON | OFF }
    Alttaki tabloların ve ilişkili dizinlerin dizin işlemi sırasında sorgularda ve veri değiştirmede kullanılıp kullanılamayacağını belirtir. Varsayılan değer OFF'tur.

    [!NOT]

    Benzersiz kümelendirilmemiş dizinler çevrimiçi oluşturulamaz. Bu, UNIQUE veya PRIMARY key kısıtlaması nedeniyle oluşturulan dizinler içerir.

    • ON
      Uzun dönemli tablo kilitleri, dizin işlemi süresince tutulmaz. Dizin işlemini ana aşaması sırasında kaynak tabloda yalnızca bir Amaç Paylaşımı (IS) kilidi tutulur. Bu sorgu veya temel tablo ve dizinleri devam etmek için güncelleştirmeler sağlar. İşlem başlangıcında, (s) paylaşılan kilit kaynak nesne üzerinde çok kısa bir süre için tutulur. Kısa bir süre için operasyon sonunda bir s (paylaşılan) kilit kümelendirilmemiş dizin oluşturulursa kaynağını kazanılır; ya da bir sch-m (şema değiştirme) kilit ve kümelenmiş bir dizin oluşturulduğunda veya çevrimiçi bırakılan zaman kümelenmiş veya kümelendirilmemiş dizin oluşturulmuşsa kazanılır. Yerel geçici bir tabloda bir dizin oluşturulurken ONLINE ayarı ON yapılamaz.

    • OFF
      Dizin işlemi süresinde tablo kilitleri uygulanır. Kümelenmiş bir dizin oluşturan, yeniden oluşturan veya bırakan ya da kümelenmemiş bir dizini bırakan çevrimdışı bir dizin işlemi, tabloda bir Şema değiştirme (Sch-M) kilidir alır. Bu, işlem süresi boyunca alttaki tabloya tüm kullanıcı erişimini engeller. Kümelenmemiş bir dizin oluşturan çevrimdışı bir dizi işlemi tabloda Paylaşılan (S) bir kilit alır. Bu, alttaki tabloda güncelleştirme yapılmasını engeller ancak SELECT deyimleri gibi okuma işlemlerine izin verir.

    Daha fazla bilgi için, bkz. Nasıl çevrimiçi dizin işlemleri çalışma.

    [!NOT]

    Çevrimiçi dizin işlemleri her sürümünde kullanılamaz Microsoft SQL Server. Sürümü tarafından desteklenen özellikleri listesi için SQL Serverbakın SQL Server 2012 Sürümleri Tarafından Desteklenen Özellikler.

  • maxdop **=**max_degree_of_parallelism
    Geçersiz kılan en büyük ölçüde parallelism dizini işlem süresi için yapılandırma seçeneği. Daha fazla bilgi için, bkz. Maksimum ölçüde parallelism sunucu yapılandırma seçeneği yapılandırmak. Paralel plan yürütmede kullanılan işlemci sayısını sınırlamak için MAXDOP kullanın. En fazla değer 64 işlemcidir.

    max_degree_of_parallelismaşağıdakilerden biri olabilir:

    • 1
      Paralel plan üretimini baskılar.

    • >1
      Paralel bir dizin işleminde kullanılan en yüksek işlemci sayısını belirtilen sayı ile sınırlar.

    • 0 (varsayılan)
      Geçerli sistem iş yüküne bağlı olarak gerçek işlemci sayısını veya daha azını kullanır.

    Daha fazla bilgi için, bkz. Parallel ındex işlemi yapılandırma.

    [!NOT]

    Paralel dizin işlemleri her Microsoft SQL Server sürümünde bulunmaz. SQL Server sürümleri tarafından desteklenen özelliklerin bir listesi için, bkz. SQL Server 2012 Sürümleri Tarafından Desteklenen Özellikler.

  • DATA_COMPRESSION
    Veri sıkıştırma seçeneği belirtilen tablo, bölüm numarası veya bölüm aralığını belirtir. Seçenekler aşağıdaki gibidir:

    • NONE
      Tablo veya belirtilen bölümler sıkıştırılmaz.

    • ROW
      Tablo veya belirtilen bölümler satır sıkıştırma kullanılarak sıkıştırılır.

    • PAGE
      Tablo veya belirtilen bölümler sayfa sıkıştırma kullanılarak sıkıştırılır.

    Sıkıştırma hakkında daha fazla bilgi için bkz. Veri Sıkıştırma.

  • BÖLÜMLERİ ( { <partition_number_expression> | <range>} ,...n ] )
    DATA_COMPRESSION ayarının uygulandığı bölümleri belirtir. Tablo bölümlere ayrılmışsa, on BÖLÜMLERI bağımsız bir hata üretecektir. on BÖLÜMLERI yan sağlanmazsa, DATA_COMPRESSION seçeneği bölümlenmiş bir tablonun tüm bölümleri için geçerli olacaktır.

    <partition_number_expression> aşağıdaki şekillerde belirtilebilir:

    • Bir bölüm numarasını örneğin sağlar: on BÖLÜMLERI (2).

    • Birkaç ayrı bölümlemenin bölüm numaralarını, virgüllerle ayırarak sağlayın; örneğin: ON PARTITIONS (1, 5).

    • Örneğin aralıkları ve tek tek bölümleri sağlar: on BÖLÜMLERI (2, 4, 6-8).

    <Aralık> sözcüğü, örneğin ayrılmış bölüm numaraları olarak belirtilebilir: on BÖLÜMLERI (6-8).

    Farklı bölümlerde farklı veri sıkıştırma türleri ayarlamak için, DATA_COMPRESSION seçeneğini birden çok kez belirtin; örneğin:

    REBUILD WITH 
    (
    DATA_COMPRESSION = NONE ON PARTITIONS (1), 
    DATA_COMPRESSION = ROW ON PARTITIONS (2, 4, 6 TO 8), 
    DATA_COMPRESSION = PAGE ON PARTITIONS (3, 5)
    )
    
    REBUILD WITH 
    (
    DATA_COMPRESSION = NONE ON PARTITIONS (1), 
    DATA_COMPRESSION = ROW ON PARTITIONS (2, 4, 6 TO 8), 
    DATA_COMPRESSION = PAGE ON PARTITIONS (3, 5)
    )
    
  • <single_partition_rebuild__option>
    Çoğu durumda, bir dizin yeniden oluşturma tüm bölümleri bölümlenmiş bir dizin yeniden oluşturur. Aşağıdaki seçenekler, tek bir bölümü için uygulanan tüm bölümleri yeniden değil.

    • SORT_IN_TEMPDB

    • MAXDOP

    • DATA_COMPRESSION

Açıklamalar

Dizin seçeneklerini eksiksiz bir açıklaması için bkz: Index (Transact-sql) oluştur.

Ayrıca bkz.

Başvuru

ALTER TABLE (Transact-SQL)

column_constraint (Transact-sql)

computed_column_definition (Transact-sql)

table_constraint (Transact-sql)