Aracılığıyla paylaş


sp_indexoption (Transact-SQL)

Seçenek değerleri, kümelenmiş ve kümelenmemiş dizin kullanıcı tanımlı veya kümelenmiş dizin tablolarla kilitleme ayarlar.

The SQL Server Database Engine automatically makes choices of sayfa-, row-, or tablo-düzey locking. You do not have to set these options manually.sp_indexoption is provided for expert users who know with certainty that a particular type of lock is always appropriate.

Important noteImportant Note:

This feature will be removed in the next version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Bunun yerine, ALTER INDIS (Transact-SQL).

Topic link iconTransact-SQL sözdizimi kuralları

sp_indexoption [ @IndexNamePattern = ] 'table_or_index_name' 
        , [ @OptionName = ] 'option_name' 
        , [ @OptionValue = ] 'value'

Bağımsız değişkenler

  • [ @IndexNamePattern=] 'table_or_index_name'
    Is the qualified or nonqualified name of a user-defined table or index.table_or_index_name is nvarchar(1035), with no default.Tam bir dizin veya tablo adı belirtilmezse, tırnak işaretleri gereklidir.Tam olarak nitelenmiş bir tablo adı, bir veritabanı adı da dahil olmak üzere sağlanan, veritabanı adı, geçerli veritabanının adı olmalıdır.Bir tablo adı belirtilen dizin yok, kümelenmiş dizin varsa, belirtilen seçenek değeri tüm dizinler için bu tabloyu ve tablonun kendisi küme.

  • [ @OptionName =] 'option_name'
    Is an index option name.option_name is varchar(35), with no default.option_name can have one of the following values.

    Değer

    Açıklama

    AllowRowLocks

    TRUE olduğunda, satır kilidi dizine erişirken izin verilir.The Database Engine determines when row locks are used.FALSE'olduğunda, satır kilidi kullanılır.Varsayılan değer, DOğRU olur.

    AllowPageLocks

    TRUE olduğunda, sayfa kilidi dizine erişirken izin verilir.The Database Engine determines when sayfa locks are used. FALSE'olduğunda, sayfa kilidi kullanılır.Varsayılan değer, DOğRU olur.

    DisAllowRowLocks

    TRUE olduğunda, satır kilidi kullanılır.FALSE'olduğunda, satır kilidi dizine erişirken izin verilir.The Database Engine determines when row locks are used.

    DisAllowPageLocks

    TRUE olduğunda, sayfa kilidi kullanılır.FALSE'olduğunda, sayfa kilidi dizine erişirken izin verilir.The Database Engine determines when sayfa locks are used.

  • [ @OptionValue =] 'value'
    Specifies whether the option_name setting is enabled (TRUE, ON, yes, or 1) or disabled (FALSE, OFF, no, or 0).value is varchar(12), with no default.

Dönüş Kodu Değerleri

0 (başarılı) veya 0 (hata)'den büyük

Remarks

XML dizinleri desteklemiyor.Belirtilen XML dizin veya tablo adı, dizin adı ile belirtilir ve tablo XML dizin varsa, deyim başarısız olur.Için küme bu seçenekleri kullanın. DİZİN DEĞİŞTİR yerine.

Geçerli satır ve sayfa özellikleri kilitleme görüntülemek için kullanın. indexproperty or the sys.Indexes kataloğunu görüntüleyin.

  • Satır-CVE-2006-sayfa-CVE-2006- ve tablo düzeyindeki kilitler dizine erişirken izin verilen zaman AllowRowLocks = TRUE or DisAllowRowLocks = FALSE, and AllowPageLocks = TRUE or DisAllowPageLocks = YANLıŞ.The Database Engine chooses the appropriate kilit and can escalate the kilit from a row or sayfa kilit to a tablo kilit. Daha fazla bilgi için bkz:Kilit yükseltme (Veritabanı Altyapısı).

Yalnızca bir tablo düzey kilit, dizine erişirken izin verilir, AllowRowLocks = FALSE or DisAllowRowLocks = TRUE and AllowPageLocks = FALSE or DisAllowPageLocks = TRUE.

Bir tablo adı, dizin yok belirtilirse, bu tablodaki tüm dizinleri ayarları uygulanır.temel alınan tablo, kümelenmiş dizin olduğunda (yani, bir yığın olarak) Bu ayarlar aşağıdaki şekilde uygulanır:

  • Ne zaman AllowRowLocks or DisAllowRowLocks TRUE veya FALSE küme ayar, yığına uygulanır ve kümelenmemiş dizin bir fırsatla ilişkili.

  • Ne zaman AllowPageLocks seçenek küme TRUE veya DisAllowPageLocks olduğu küme FALSE'olarak küme ting, yığına uygulanır ve kümelenmemiş dizin bir fırsatla ilişkili.

  • Ne zaman AllowPageLocks seçeneği, ya da YANLıŞ ayarlandı.DisAllowPageLocks , TRUE olarak ayarlanýrsa, ayarı tam kümelenmemiş dizinler için uygulanır.Diğer bir deyişle, tüm sayfa kilitler kümelenmemiş dizinlerde izin verilmeyen.Öbek üzerinde yalnızca paylaşılan (S), güncelleştirme (U) ve Özel (X) kilitlerin sayfa için izni.The Database Engine can still acquire an intent sayfa kilit (IS, IU or IX) for internal purposes.

Dizin kilitleme taneciklik yapılandırma hakkında daha fazla bilgi için bkz: Bir dizin için kilitleme özelleştirme.

İzinler

Üzerinde ALTER iznine gerek duyar tablo.

Örnekler

C.Belirli bir dizin seçeneği ayarlama

Aşağıdaki örnek, sayfa kilidi izin vermiyor IX_Customer_TerritoryID üzerinde dizin Customer TABLO.

b.Tüm dizinler üzerindeki bir seçeneği ayarını bir tablo

Aşağıdaki örnekte, satır kilit ile ilişkili tüm dizinler üzerinde izin vermiyor Product TABLO. The sys.indexes catalog view is queried before and after executing the sp_indexoption procedure to show the sonuçlar of the deyim.

c.Kümelenmiş dizin içeren bir tablo seçeneği ayarlama

Aşağıdaki örnek, sayfa kilidi izin vermiyor bir tablo ile kümelenmiş dizin (yığın) yok.The sys.indexes catalog view is queried before and after the sp_indexoption procedure is executed to show the sonuçlar of the deyim.