Aracılığıyla paylaş


dbcc DBREINDEX Transact-SQL)

Belirtilen veritabanındaki bir tablo için bir veya daha fazla dizin yeniden oluşturur.

Önemli notÖnemli

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmayın ve bu özelliği kullanmakta olan uygulamaları mümkün olduğunca erken bir zamanda değiştirin.Use alter INDEX onun yerine.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

DBCC DBREINDEX 
( 
    table_name 
    [ , index_name [ , fillfactor ] ]
)
    [ WITH NO_INFOMSGS ] 

Bağımsız değişkenler

  • table_name
    Belirtilen dizin veya dizinleri yeniden oluşturmak için tablo adını içeren.Tablo adları için kuralları izleyin gerekir tanımlayıcıları.

  • index_name
    Yeniden dizin adıdır.Dizin adları tanımlayıcıları kuralları uymanız gerekir.index_name Belirlendiğinde, table_name belirtilmelidir.index_name Belirtilmezse ya da " ", tablo tüm dizinler yeniden oluşturulur.

  • fillfactor
    Dizin oluşturulduğunda veya yeniden veri saklamak için her dizin sayfası alanı yüzdesidir.fillfactordizin oluşturulduğunda, yeni bir kümelenmiş dizin yeniden çünkü yeniden diğer kümelenmemiş dizinleri ve dizin için varsayılan olma doldurma faktörü yerini alır.fillfactor 0, dbcc DBREINDEX kullanır doldurma faktörü değeri son belirtilen dizin.Bu değer saklanan sys.indexes Katalog görünümü.

    fillfactor Belirlendiğinde, table_name ve index_name belirtilmelidir.fillfactor Belirtilmezse, varsayılan doldurma faktörü100 kullanılır.Daha fazla bilgi için, bkz. Dolgu etmeni.

  • NO_INFOMSGS İLE
    Önem düzeyleri 0 ile 10 arasında bilgi tüm iletileri bastırır.

Açıklamalar

dbcc DBREINDEX bir tablo için dizin veya tabloiçin tanımlanmış tüm dizinleri yeniden oluşturur.Dinamik olarak yeniden oluşturulması için dizin izin vererek, birincil anahtar veya UNIQUE kısıtlamaları zorlamayı dizinler bırakın ve bu kısıtlamalar yeniden oluşturmak zorunda kalmadan yeniden.Bu dizin tablo ya da kendi kısıtlamaları yapısını bilmeden yeniden oluşturulması olduğunu anlamına gelir.Bu tablo toplu kopyalama veri sonra ortaya çıkabilir.

dbcc DBREINDEX deyimtek bir tablo için tüm dizinler yeniden inşa edebilirsiniz.Bu, birden çok drop INDEX ve create INDEX deyimleri kodlama daha kolaydır.Bir deyimçalışma gerçekleştirildiğinden, bireysel drop INDEX ve create INDEX deyimleri için atomikbir hareket dahil edilmesi dbcc DBREINDEX otomatik olarak atomik, dır.Ayrıca, dbcc DBREINDEX tek tek drop INDEX ve create INDEX deyimlerinden daha fazla iyileştirmeler sunar.

dbcc INDEXDEFRAG veya alter dizin yeniden düzenle seçeneğiyle farklı olarak, dbcc DBREINDEX çevrimdışı bir işlemdir.kümelenmemiş dizin yeniden oluşturuluyor, paylaşılan bir kilit tablo işlemi süresince söz konusu tutulur.Bu tabloiçin değişiklikleri önler.Özel tablokilit kümelenmiş dizin yeniden oluşturuluyor, tutulur. Böylece, bu nedenle tablo çevrimdışı verimli hale getirme, herhangi bir tablo erişim engellenir.Bir dizini yeniden çevrimiçi yapmak veya dizin yeniden oluşturma işlemi sırasında paralellik derecesini kontrol etmek için alter dizin yeniden oluşturma deyim çevrimiçi seçeneğiyle kullanın.

Yeniden oluşturmak veya bir dizin yeniden düzenlemek için bir yöntem seçme hakkında daha fazla bilgi için bkz: Yeniden düzenleme ve dizinler yeniden oluşturuluyor .

Kısıtlamalar

dbcc DBREINDEX aşağıdaki nesneler üzerinde kullanım için desteklenmiyor:

  • Sistem tabloları

  • Kayma dizinler

Sonuç Kümeleri

NO_INFOMSGS belirtmediyseniz ( tablo adı belirtilmelidir), dbcc DBREINDEX her zaman döndürür:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

İzinler

Arayan tablosahibi veya gerekir üye olmanız sysadmin sabit sunucu rolü, db_owner veritabanı rolü, sabit veya db_ddladmin veritabanı rolüsabit.

Örnekler

A.Bir dizini yeniden oluşturuluyor

Aşağıdaki örnek oluşturur Employee_EmployeeID doldurma faktörü ilekümelenmiş dizin 80 , Employeetablo AdventureWorks2008R2 veritabanı.

USE AdventureWorks2008R2; 
GO
DBCC DBREINDEX ("HumanResources.Employee", PK_Employee_BusinessEntityID,80);
GO

B.Tüm dizinler yeniden oluşturuluyor

Aşağıdaki örnek üzerinde tüm dizinler yeniden oluşturur Employee tablo AdventureWorks2008R2 doldurma faktörü değeri kullanarak 70.

USE AdventureWorks2008R2; 
GO
DBCC DBREINDEX ("HumanResources.Employee", " ", 70);
GO