Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Belirtilen veritabanında bir tablo için bir veya daha fazla indeks yeniden oluşturur.
Önemli
Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine ALTER INDEX kullanın.
için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
Transact-SQL söz dizimi kuralları
Sözdizimi
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
Arguments
table_name
Yeniden oluşturulacak belirtilen indeks veya indeksleri içeren tablonun adı. Tablo isimleri, tanımlayıcılar için kurallara uymalıdır.
index_name
Yeniden inşa edilecek indeksin adı. Indeks isimleri, tanımlayıcılar için kurallara uymalıdır.
Eğer index_name belirtilmişse, table_name belirtilmelidir.
Eğer index_name belirtilmemişse veya belirtiliyorsa' ', tablo için tüm indeksler yeniden oluşturulur.
Doldurma faktörü
Indeks oluşturulduğunda veya yeniden inşa edildiğinde veri depolamak için her indeks sayfasında yer oranı. Fillfactor , indeks oluşturulduğunda doldurma faktörünün yerini alır ve bu da indeksin ve diğer kümelenmiş olmayan indekslerin yeniden oluşturulması için yeni varsayılan olur, çünkü kümelenmiş bir indeks yeniden inşa edilir.
Doldurma faktörü 0 olduğunda, DBCC DBREINDEX indeks için en son belirtilen doldurma faktörü değerini kullanır. Bu değer katalog görünümünde sys.indexes saklanır.
Eğer fillfactor belirtilmişse, table_name ve index_name belirtilmelidir. Eğer doldurma faktörü belirtilmemişse, varsayılan doldurma faktörü olan 100 kullanılır. Daha fazla bilgi için bkz. Diziniçin Dolgu Faktörü Belirtme.
BİLGİ_MSJSIZ
Önem düzeyi 0 ile 10 arasında olan tüm bilgilendirme iletilerini gizler.
Açıklamalar
DBCC DBREINDEX bir tablo için bir indeks veya bir tablo için tanımlanan tüm indeksleri yeniden oluşturur. Bir indeksin dinamik olarak yeniden inşa edilmesine izin vererek, BIRINCIL ANAHTAR veya UNIQUE kısıtlamaları uygulayan indeksler, bu kısıtlamaları bırakıp yeniden oluşturmak zorunda kalmadan yeniden oluşturulabilir. Bu, bir indeksin tablonun yapısını veya kısıtlamalarını bilmeden yeniden oluşturulabileceği anlamına gelir. Bu, verilerin tabloya toplu bir kopyası verildikten sonra gerçekleşebilir.
DBCC DBREINDEX Bir tablo için tüm indeksleri tek bir ifadede yeniden oluşturabilir. Bu, çoklu DROP INDEX ve CREATE INDEX ifadeleri kodlamaktan daha kolaydır. İş tek bir ifade tarafından yapıldığı için DBCC DBREINDEX otomatik olarak atomiktir, oysa bireysel DROP INDEX ve CREATE INDEX ifadeler atomik olmak için işlem içinde yer almalıdır. Ayrıca, DBCC DBREINDEX bireysel DROP INDEX ve CREATE INDEX ifadelerden daha fazla optimizasyon sunar.
Aksine DBCC INDEXDEFRAG, veya ALTER INDEX opsiyonla REORGANIZE birlikte, DBCC DBREINDEX çevrimdışı bir işlemdir. Kümelenmiş olmayan bir indeks yeniden inşa ediliyorsa, işlem sırasında ilgili masada paylaşılan bir kilit tutulur. Bu, tabloda yapılan değişiklikleri önler. Kümelenmiş indeks yeniden inşa ediliyorsa, özel bir tablo kilidi tutulur. Bu, herhangi bir tablo erişimini engeller ve böylece tablo fiilen çevrimdışı hale gelir. Çevrimiçi bir indeks yeniden yapılandırması yapmak veya indeks yeniden oluşturma işlemi sırasında paralellik derecesini kontrol etmek için, seçenekli ONLINE ifadeyi ALTER INDEX REBUILD kullanın.
Bir indeksin yeniden oluşturulması veya yeniden düzenlenmesi için bir yöntem seçme hakkında daha fazla bilgi için Dizinleri Yeniden Düzenle ve Yeniden İnşa Dizinleri sayfasına bakınız.
Restrictions
DBCC DBREINDEX aşağıdaki nesnelerde kullanımı desteklenmez:
- Sistem tabloları
- Uzamsal dizinler
- Bellek için optimize edilmiş columnstore indeksleri
Sonuç kümeleri
Belirtilmedikçe NO_INFOMSGS (tablo adı belirtilmelidir), DBCC DBREINDEX her zaman döner:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permissions
Arayan kişi tabloya sahip olmalı veya sistem yöneticisi sabit sunucu rolü, db_owner sabit veritabanı rolü veya db_ddladmin sabit veritabanı rolünün üyesi olmalıdır.
Örnekler
A. Dizini yeniden oluşturma
Aşağıdaki örnek, veritabanındaki tabloda AdventureWorks2025 ' dolma faktörü Employee80 ile kümelenmiş indeks yeniden oluştururEmployee_EmployeeID.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', PK_Employee_BusinessEntityID, 80);
GO
B. Tüm indeksleri yeniden oluştur
Aşağıdaki örnek, tablodaki EmployeeAdventureWorks2025 tüm indeksleri doldurma faktörü değeri kullanılarak 70yeniden oluşturur.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', ' ', 70);
GO