Aracılığıyla paylaş


DBCC INDEXDEFRAG (Transact-SQL)

Belirtilen dizinlerini birleştirir tablo veya Görünüm.

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. Kullanımı DİZİN DEĞİŞTİR yerine.

Topic link iconTransact-SQL sözdizimi kuralları

DBCC INDEXDEFRAG
(
    { database_name | database_id | 0 } 
        , { table_name | table_id | view_name | view_id } 
    [ , { index_name | index_id } [ , { partition_number | 0 } ] ]
)
    [ WITH NO_INFOMSGS ] 

Bağımsız değişkenler

  • database_name| database_id | 0
    Veritabanını birleştirmek için dizini içeren iş.0 Belirtilirse, geçerli veritabanı kullanılır.Veritabanı adları için kurallara uymanız gerekir tanımlayıcılar.

  • table_name | table_id | view_name | view_id
    Iş tablo veya dizin birleştirme içeren görünüm.Tablo ve Görünüm adları tanımlayıcıları kurallarına uymanız gerekir.

  • index_name | index_id
    Adı veya dizin birleştirme KIMLIĞI'ni uyumsuz.deyim, belirtilmezse, belirtilen bir tablo veya Görünüm tüm indeksler birleştirir.Dizin adları tanımlayıcıları kurallarına uymanız gerekir.

  • partition_number | 0
    Dizin birleştirme bölüm sayısıdır.deyim, belirtilmedi veya 0 belirtilirse, belirtilen dizindeki tüm bölümleri birleştirir.

  • no_infomsgs İLE
    0 Ile 10 arasındaki önem derecelerine sahip bilgi tüm iletileri bastırır.

Remarks

Böylece fiziksel sayfaların sırasını soldan sağa mantıksal sırası yaprak düğümlerin, eşleşen DBCC INDEXDEFRAG dizin yaprak düzey, bu nedenle, dizin tarama performansını artırma birleştirir.

Not

Dizin birleştirme seri olarak, DBCC INDEXDEFRAG çalıştırdığınızda oluşur.Bunun anlamı, tek bir iş parçacığı kullanarak tek bir dizin işlemi gerçekleştirilir.Hiçbir parallelism oluşur.Ayrıca, işlemler aynı DBCC INDEXDEFRAG ekstresinden birden çok dizin üzerinde bir dizin gerçekleştirilen bir saat.

DBCC INDEXDEFRAG de doldurma faktörü dizini oluşturulurken belirtilen bulundurarak bir dizinin sayfaları sıkıştırır.Bu sıkıştırma nedeniyle oluşturulmuş herhangi bir boş sayfaları kaldırılır.Daha fazla bilgi için bkz:Faktörü girin..

Bir dizin birden fazla dosya yayılmışsa, DBCC INDEXDEFRAG, tek bir dosya birleştirir bir saat.Sayfaları dosya arasında geçiş.

DBCC INDEXDEFRAG tahmini yüzde her beş dakikada tamamlandı bildirir.DBCC INDEXDEFRAG işlemindeki herhangi bir noktada durdurulur ve tamamlanan çalışma korunur.

DBCC DBREINDEX veya işlemi genellikle oluşturma dizini farklı olarak, DBCC INDEXDEFRAG çevrimiçi bir işlemdir.Uzun süreli kilit tutmaz.Bu nedenle, DBCC INDEXDEFRAG çalışan sorguları veya güncelleştirmeleri önlemez.Parçalanma düzey birleştirmek için saat ilişkili olduğundan, görece parçalanmamış bir dizini oluşturulmuş yeni bir dizin daha hızlı birleştirilmesi.Çok parçalanmış BIR dizini yeniden oluşturmak üzere daha birleştirmek için oldukça uzun sürebilir.

Birleştirme her zaman tam olarak, veritabanı kurtarma modeli ayarı dikkate alınmaksızın günlüğe kaydedilir.Daha fazla bilgi için bkz:ALTER DATABASE Transact-SQL).Çok parçalanmış bir dizin birleştirme, bir tam oturum dizin oluşturma'den daha fazla günlük oluşturabilir.Ancak, birleştirme; büyük bir günlük günlüğü yedekleri sık olarak gerçekleştirilen, gereksiz veya kurtarma modeli SIMPLE ayarıysa kısa işlemler, bir dizi olarak gerçekleştirilir.

Kısıtlamalar

DBCC INDEXDEFRAG dizin yaprak sayfaları yerde shuffles.Diğer dizinleriyle, disk üzerinde bir dizin araya eklenmiş, bu nedenle, bu dizin karşı DBCC INDEXDEFRAG çalıştıran tüm yaprak sayfalar dizinde bitişik yapmaz.Sayfalar kümeleme geliştirmek için , dizinini yeniden oluşturun.

Aşağıdaki dizinleri birleştirmek için DBCC INDEXDEFRAG kullanılamaz:

  • devre dışı dizin.

  • Sayfa kilitleme ile dizin küme için KAPALı.

  • Kayma dizini.

DBCC INDEXDEFRAG sistem tabloları kullanmak için desteklenmiyor.

Sonuç Kümeleri

DBCC INDEXDEFRAG aşağıdaki sonucu verir küme (değerleri farklılık gösterebilir) deyimi içinde bir dizin belirtilirse (WITH NO_INFOMSGS belirtilmediyse):

Pages Scanned Pages Moved Pages Removed
------------- ----------- -------------
359           346         8

(1 row(s) affected)

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

İzinler

Arayanın kendi gerekir tablo, ya da üye olmanız sysadmin sabit sunucu rolüdb_owner sabit veritabanı rolü veya db_ddladmin sabit veritabanı rolü.

Örnekler

C.Dizin birleştirme DBCC INDEXDEFRAG kullanma

Aşağıdaki örnek, tüm bölümlerini birleştirir PK_Product_ProductID ' de dizin Production.Product ' de tablo AdventureWorks Veritabanı.

b.Bir veritabanında dizinleri birleştirmek için DBCC SHOWCONTIG ve DBCC INDEXDEFRAG kullanma

Aşağıdaki örnek, bildirilen bir eşiğin parçalanmış için veritabanındaki tüm dizinleri birleştirmek için basit bir yol gösterir.