Aracılığıyla paylaş


Dizinleri devre dışı bırakma

Dizin devre dışı bırakılması kullanıcı erişimini ve kümelenmiş dizinleri, dizin için temel alınan tablo verileri engeller.Dizin tanım kalır'meta veriler ve dizini olarak kümelenmemiş dizinlerde saklanır.Kümelenmemiş dizin ya da bir görünümün kümelenmiş dizin fiziksel olarak devre dışı bırakılması, dizin verileri siler.Bir tabloda kümelenmiş dizin devre dışı bırakma, verilere erişimi engeller; veriler hala tabloda kalır, ancak dizin bırakılan veya yeniden kadar DML işlemleri için kullanılamaz.Yeniden ve devre dışı bırakılmış bir dizinini etkinleştirmek için ALTER DIZINI yeniden OLUşTURMAK deyim veya DROP_EXISTING WITH CREATE INDEX deyimini kullanın.

Bir veya daha çok dizin aşağıdaki durumlarda devre dışı bırakılmış olabilir:

  • The SQL Server Database Engine automatically disables the index during an upgrade of SQL Server.

  • El ile dizin ALTER INDEX kullanarak devre dışı bırakın.

SQL Server yükseltmesi dizin devre dışı bırakır.

Yükseltme işlemi sırasında yeni bir sürümü veya hizmet paketi SQL Server, Database Engine otomatik olarak tanımlar ve bir dizin, dizin veya Görünüm tanımı, aşağıdakilerden birini içeriyorsa, görünümlerde dizinleri de dahil olmak üzere, devre dışı bırakır:

  • Bir ifade Database Engine veriler artık garanti bütünlük dizin.

    Örneğin, bir dizin, bir sistem işlevi kullanır ve işlev, yükseltme, şimdi farklı bir sonuç verdiğini şekilde değiştirildi varsayalım.The Database Engine will disable the index during the upgrade because it may contain data that is not valid after the upgrade.

  • Gibi yükseltme işleminin bir parçası olarak değiştirilmiş BIR harmanlama, doğru dizin artık bir şekilde sıralanır.

Dizin yükseltme işlemi sırasında devre dışı bırakıldığında, bir uyarı iletisi dizin adı ve ilişkili bir kısıtlama ad görüntüler, böylece yükseltme tamamlandıktan sonra bunları yeniden oluşturabilirsiniz.Dizini yeniden oluþturma ve tüm kısıtlamalar etkinleştirme, yükseltme sırasında geçersiz veri düzeltecektir.

Tanımı için bir ifade içeriyorsa, BIR CHECK kısıtlaması devreden çıkarılabilir Database Engine artık veri bütünlüğünü güvence altına alabilirsiniz. Kısıtlamayı etkinleştirmek için , the ALTER tablo CHECK kullanın deyim.

ALTER INDEX dizin devre dışı bırakmak için kullanma

INDIS ALTER devre dışı BıRAKıRSANıZ deyimini kullanarak dizin istenildiği saat el ile getirebilirsiniz.

Not

Bir tablo, bir işlem çoğaltmaya ise yayın, birincil anahtar sütunlarla ilişkili olan tüm dizinleri devre dışı bırakılamıyor.Bu dizinler tarafından çoğaltma gerekir.Dizin devre dışı bırakmak için öne gerekir tablo yayını gelen.Daha fazla bilgi için bkz:Yayımlama veri ve veritabanı nesneleri.

Aşağıdakileri gerçekleştirmek için dizin devre dışı bırakmak isteyebilirsiniz:

  • Disk g/Ç hatası (823 veya 824 hatası), dizin sayfa ve dizini daha sonra yeniden oluþturma düzeltiliyor.

  • Geçici dizin sorun giderme amacıyla kaldırılıyor.

  • Kümelenmemiş dizin yeniden oluşturuluyor.

    Kümelenmemiş bir dizin devre dışıyken, yeniden oluşturma işlemi, hem eski ve yeni dizin depolamak için yeterli geçici disk alanı gerektirir.Ancak, devre dışı bırakma ve kümelenmemiş bir dizin ayrı hareketlerinde yeniden oluþturma tarafından devre dışı bırakma dizini olarak kullanılabilir disk alanını izleyen yeniden oluşturma veya başka bir işlem tarafından yeniden kullanılabilir.Ek boşluk dışında sıralama geçici disk alanı gereklidir; Bu genellikle Dizin boyutunun yüzde 20'si.

    Disk alanı sınırlıysa, kümelenmemiş dizin yeniden oluþturma önce devre dışı bırakmak yararlı olabilir.Örneğin, bir veya daha fazla tablodaki tüm kümelenmemiş dizin oluşturur, saklı bir yordam vardır.Bu dizinler ilk rebuild operasyondaki ayrı bir işlemde bırakarak, bunları yeniden oluşturmak için gereken geçici disk alanı miktarını önemli ölçüde azaltabilirsiniz.

Dizin devre dışı bırakmak için

ALTER INDIS (Transact-SQL)

Nasıl Yapılır: Dizin (SQL Server Management Studio'yu) yeniden oluşturun.