Dizinler devre dışı bırakma

Bir dizin devre dışı bırakma kullanıcı erişimini kümelenmiş dizinleri ve dizin için temel alınan temel alınan tablo verileri için engeller.Bu durumda dizin tanım kalır meta veriler ve dizin istatistikleri kümelenmemiş dizinler üzerinde tutulur.Bir kümelenmemiş dizin veya bir görünümde kümelenmiş dizin fiziksel olarak devre dışı bırakma dizin verileri siler.Üzerinde bir tablo kümelenmiş dizin devre dışı bırakmak için veri erişimi engeller; Veri hala kalır tablo, ancak dizin bırakılan veya yeniden kadar dml işlemleri için kullanılamaz.Yeniden oluşturmak ve etkinleştirmek için bir devre dışı dizin, alter dizin yeniden oluşturma deyim veya DROP_EXISTING ile dizin oluşturma deyim kullanın.

Bir veya daha fazla dizinler aşağıdaki durumlarda devre dışı bırakılabilir:

  • The SQL Server Veritabanı Altyapısı automatically disables the index during an upgrade of SQL Server.

  • Sizin el ile dizin alter INDEX kullanarak devre dışı bırakın.

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

Yeni sürümü veya hizmet paketi yükseltme sırasında SQL Server, Veritabanı Altyapısı otomatik olarak tanımlar ve dizin veya Görünüm tanımı aşağıdakilerden birini içerdiğinde, görünümler, dizinler dahil olmak üzere, bir dizin devre dışı bırakır:

  • Kendisi için bir ifade Veritabanı Altyapısı artık garanti veri bütünlük dizini.

    Örneğin, bir dizin sistemi işlevini kullanır ve işlev, şimdi farklı bir sonuç verir şekilde yükseltme olarak değiştirildi varsayalım.The Veritabanı Altyapısı 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ştirilen bir harmanlama doğru dizin artık bir şekilde sıralanmış.

Dizin yükseltme işlemi sırasında devre dışı bırakıldığında yükseltme tamamlandıktan sonra bunları yeniden yapılandırabilirsiniz için bir uyarı iletisi dizin adı ve tüm ilişkili kısıtlaması adları görüntüler.Yükseltme sırasında geçersiz kılınan veri dizini yeniden oluşturuluyor ve kısıtlamalar etkinleştirme düzeltecektir.

Tanım kendisi için bir ifade içeriyorsa, denetim kısıtlamasını devre dışı olabilir Veritabanı Altyapısı artık garanti bütünlük veri.alter tablo DENETLEME kısıtlaması etkinleştirmek için kullanın deyim.

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

Herhangi bir dizini el ile devre dışı bırakabilirsiniz saat alter dizin devre dışı bırakma deyim kullanarak.

Not

Bir tablo bir işlem ise çoğaltma devre yayını, dışı birincil anahtar sütunları ile ilişkili tüm dizinler.Bu dizinler çoğaltma tarafından gerekli.Bir dizin devre dışı bırakmak için ilk olarak bırakın gerekir tablo yayından.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 hata) dizin sayfa ve daha sonra dizini yeniden oluşturma düzeltiliyor.

  • Sorun giderme amacıyla dizin geçici olarak kaldırma.

  • Kümelenmemiş dizinleri yeniden oluşturuluyor.

    Yeniden oluşturma işlemi, kümelenmemiş dizin devre dışı bırakıldığı sırada, hem eski ve yeni dizini depolamak için yeterli geçici disk alanı gerektirir.Ancak, devre dışı bırakma ve ayrı işlemlerde kümelenmemiş dizin yeniden oluşturma, dizin devre dışı bırakarak 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 geçici disk alanı sıralamak için gereklidir; genelde yüzde 20'sini dizin boyutu budur.

    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ş dizinleri yeniden oluşturur bir saklı yordam vardır.Bu dizinler ilk yeniden oluşturma işleminden ayrı bir işlemde bırakarak, bunları yeniden oluşturmak için gereken geçici disk alanı miktarını önemli ölçüde azaltabilirsiniz.

Bir dizin devre dışı bırakmak için

alter INDEX (Transact-sql)

Nasıl yapılır: Bir dizin (SQL Server Management Studio'yu) yeniden oluştur