Aracılığıyla paylaş


DBCC SHOWCONTIG (Transact-SQL)

Verileri ve dizinleri belirtilen parçalanma bilgilerini görüntüler 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ı sys.dm_db_index_physical_stats yerine.

Topic link iconTransact-SQL sözdizimi kuralları

DBCC SHOWCONTIG 
[ ( 
    { table_name | table_id | view_name | view_id } 
    [ , index_name | index_id ] 
) ] 
    [ WITH 
        { 
         [ , [ ALL_INDEXES ] ] 
         [ , [ TABLERESULTS ] ] 
         [ , [ FAST ] ]
         [ , [ ALL_LEVELS ] ] 
         [ NO_INFOMSGS ]
         }
    ]

Bağımsız değişkenler

  • table_name | table_id | view_name | view_id
    Tablo veya Görünüm parçalanma bütünleştirmek için belirtilir.Belirtilmezse, tüm tablo ve dizin oluşturulmuş görünümler geçerli veritabanında denetlenir.Tablo almak veya KIMLIĞINI görüntülemek için kullanın object_id işlev.

  • index_name | index_id
    Parçalanma bütünleştirmek için dizin..Belirtilmezse, deyim, temel dizini için belirtilen işler tablo veya Görünüm.Dizin KIMLIĞI edinmek için , kullanan sys.Indexes kataloğunu görüntüleyin.

  • İLE
    DBCC deyim tarafından döndürülen bir bilgi türü için seçenekler belirtir.

  • HIZLI
    Dizin ve çıktı bilgiler hızlı bir tarama gerçekleştirin etkinleştirilip etkinleştirilmeyeceğini belirtir.Hızlı tarama, dizinin yaprak veya veri düzey sayfalar okumuyor.

  • all_indexes
    Belirli bir dizin belirtilmiş olsa bile, tüm indeksler belirtilen tablolar ve görünümler, sonuçlar görüntüler.

  • tableresults
    satır kümesi ek bilgilerle sonuçlarını görüntüler.

  • all_levels
    Yalnızca geriye dönük uyumluluk için korunur.ALL_LEVELS belirtilmiş olsa bile, yalnızca yaprak düzey dizin veya tablo veri düzeyi işlenir.

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

Sonuç Kümeleri

Aşağıdaki tabloda, sonuç kümesinde bilgiler anlatılmaktadır.

Istatistik

Açıklama

Taranan sayfalar

Dizin veya tablo sayfa sayısı.

Taranan kapsamları

Kapsamları tablo ya da dizin sayısı.

Kapsam geçişi

DBCC ifadesi bir taşınabilir sayısı kapsam başka bir süre için deyim, tablo ya da dizin sayfaları geçiş.

Ort. Uzatma başına sayfa

Kapsam Sayfa zincirdeki her sayfa sayısı.

Yoğunluk tarama [en iyi sayısı: Gerçek sayısı]

Yüzde olarak belirtilir.Oran'dir Count en iyisidir. to Gerçek sayı.Her şeyi bitişik bu değer 100 ise, bu değer 100'den küçük ise, bazı parçalanma bulunmaktadır.

Count en iyisidir. her şeyi bitişik bağlıysa ideal kapsam değişiklikleri sayısıdır. Gerçek sayı kapsam değişikliklerinin gerçek sayıdır.

Mantıksal bir tarama parçalanması

Bir dizinin yaprak sayfaları tarama tarafından döndürülen çıkış emri sayfaları yüzdesi.Bu numara, kümeler için geçerli değildir.Bir çıkış emri sayfası, sonraki fiziksel sayfa dizine ayrılmış sonraki pag işaret sayfa olmadığı bir sayfasıdıre işaretçisi geçerli sayfadaki yaprak.

kapsam tarama parçalanması

Yaprak sayfaları dizin tarama, çıkış emri kapsamlarını yüzdesi.Bu numara, kümeler için geçerli değildir.Bir çıkış siparişi kapsam, bir dizin için geçerli olan sayfa içeren uzantının fiziksel olarak sonraki uzantı dizin için bir önceki sayfa içeren uzantının sonra olmadığı biridir.

NoteNote:
Dizin birden fazla yayılmıştır, bu anlamsız bir sayıdır.

Ort. Sayfa bayt boş

Ortalama Taranan sayfaları boş bayt sayısı.Sayı ne kadar büyük olursa, daha az tam sayfalardır.Dizin birçok rasgele ekler varsa, daha düşük sayılardır.Bu numarayı, satır boyutunu da etkilenir; bir büyük sıra boyutu daha büyük bir sayı neden olabilir.

Ort. Sayfa yoğunluk (tam)

Ortalama sayfa yoğunluğu, yüzde olarak.Bu değer, hesap satır boyutunu alır.Bu nedenle, değer, sayfalarınızı nasıl tam olduğunun daha doğru bir göstergesidir.Büyük yüzde, iyi.

Ne zaman table_id ve daha HıZLı, DBCC SHOWCONTIG bir sonuç döndüreceği için belirtilen küme yalnızca aşağıdaki sütunları ile.

  • Taranan sayfalar

  • Extent Switches

  • Scan Density [Best Count:Actual Count]

  • kapsam tarama parçalanması

  • Mantıksal bir tarama parçalanması

Aşağıdaki sütunları ve ayrıca önceki'de açıklanan dokuz sütunları tablo SONUÇLARı belirtildiğinde, DBCC SHOWCONTIG döndürür tablo.

Istatistik

Açıklama

Nesne adı

Tablo veya Görünüm işlenen adı.

Objectıd

Nesne adının TEŞHIS kodu

IndexName

Işlenen dizin adı.Iş için bir yığın null.

IndexId

Dizin KIMLIĞI.Yığın için 0 olarak belirtilir.

Level

Dizin düzey.Düzey 0 dizini yaprak veya veri düzeyidir.

Yığın için 0 düzey.

Sayfaları

Yapan sayfa sayısı düzey dizin ya da tüm öbek.

Satırları

Veri veya dizin sayısını, kayıtlarının düzey dizin.Yığın için bu değer tüm öbek veri kayıt sayısıdır.

Bir yığın için bir SELECT COUNT(*) karşı öbek çalışan tarafından döndürülen satır sayısı bu işlevinden döndürülen kayıtların sayısını eşleşmeyebilir.Birden çok kayıt bir satır içerebileceğinden budur.Örneğin, altında bazı durumlarda, tek öbek satır iletme kayıt ve güncelleştirme iþlemlerinden birinin sonucu olarak iletilen bir kayıt olabilir.Ayrıca, birden çok kayıt LOB_DATA depolama birimindeki çoğu büyük LOB satır bölünür.

MinimumRecordSize

En az bir kayıt boyutu, düzey dizin ya da tüm öbek.

MaximumRecordSize

En büyük kayıt boyutunu, düzey dizin ya da tüm öbek.

AverageRecordSize

Kayıt boyutunu, ortalama düzey dizin ya da tüm öbek.

ForwardedRecords

Sayısı, kayıtları iletilen düzey dizin ya da tüm öbek.

Kapsamları

Içinde kapsamlarını sayısı düzey dizin ya da tüm öbek.

ExtentSwitches

DBCC ifadesi bir taşınabilir sayısı kapsam başka bir süre için deyim, tablo ya da dizin sayfaları geçiş.

AverageFreeBytes

Ortalama Taranan sayfaları boş bayt sayısı.Sayı ne kadar büyük olursa, daha az tam sayfalardır.Dizin birçok rasgele ekler varsa, daha düşük sayılardır.Bu numarayı, satır boyutunu da etkilenir; bir büyük sıra boyutu daha büyük bir sayı neden olabilir.

AveragePageDensity

Ortalama sayfa yoğunluğu, yüzde olarak.Bu değer, hesap satır boyutunu alır.Bu nedenle, değer, sayfalarınızı nasıl tam olduğunun daha doğru bir göstergesidir.Büyük yüzde, iyi.

ScanDensity

Yüzde olarak belirtilir.Oran'dir BestCount to ActualCount.Her şeyi bitişik bu değer 100 ise, bu değer 100'den küçük ise, bazı parçalanma bulunmaktadır.

BestCount

Her şeyi bitişik bağlıysa ideal kapsam değişiklikleri sayısıdır.

ActualCount

Kapsam değişikliklerinin gerçek sayıdır.

LogicalFragmentation

Bir dizinin yaprak sayfaları tarama tarafından döndürülen çıkış emri sayfaları yüzdesi.Bu numara, kümeler için geçerli değildir.Bir çıkış emri sayfası, sonraki fiziksel sayfa dizine ayrılmış sonraki pag işaret sayfa olmadığı bir sayfasıdıre işaretçisi geçerli sayfadaki yaprak.

ExtentFragmentation

Yaprak sayfaları dizin tarama, çıkış emri kapsamlarını yüzdesi.Bu numara, kümeler için geçerli değildir.Bir çıkış siparişi kapsam, bir dizin için geçerli olan sayfa içeren uzantının fiziksel olarak sonraki uzantı dizin için bir önceki sayfa içeren uzantının sonra olmadığı biridir.

NoteNote:
Dizin birden fazla yayılmıştır, bu anlamsız bir sayıdır.

WITH TABLERESULTS ve FAST belirtilir, sonuç küme dışında aşağıdaki sütunlara null değerleri olacaktır, WITH TABLERESULTS belirtilen aynıdır:

Satırları

Kapsamları

MinimumRecordSize

AverageFreeBytes

MaximumRecordSize

AveragePageDensity

AverageRecordSize

ExtentFragmentation

ForwardedRecords

 

Remarks

DBCC SHOWCONTIG deyim at yaprak sayfa zincirdeki geçtiği düzey ne zaman belirtilen dizin index_id belirtildi. Yalnızca table_id Belirtilen veya index_id 0, belirtilen tablo, veri sayfaları taranır. Işlem, yalnızca bir hedefi paylaşılan (IS) gerektiriyor tablo kilit.Bu biçimde tüm güncelleştirmelerin ve ekler, bir özel (tablo kilit X) gerektiren dışındaki gerçekleştirilebilir.Bu bir tradeoff yürütme hızı hiçbir azaltma arasındaki için eşzamanlılık karşı döndürdü istatistikleri sayısını verir.Ancak, komut yalnızca parçalanma ölçmek için kullanılan, en iyi performans için WITH HıZLA seçeneği kullanmanız önerilir.Hızlı tarama, dizinin yaprak veya veri düzey sayfalar okumuyor.WITH HıZLA seçeneği, bir yığın için geçerli değildir.

Parçalanma hesaplamak için kullanılan algoritma daha kesin olarak olur. SQL Server 2008 daha da SQL Server 2000. Sonuç olarak, parçalanma değerleri daha büyük görünür.Örneğin, SQL Server 2000, tablo, Sayfa 11'i ve Sayfa 13 sınandığı varsa, parçalanmış olarak nitelendirilmez ancak 12 sayfa. Bu nedenle, bu parçalanma sayılır ancak, bu iki sayfalarına erişmek için fiziksel iki g/Ç işlemlerini gerekir SQL Server 2008.

Kısıtlamalar

DBCC SHOWCONTIG veriyle görüntülemiyor ntext, text, ve image veri türleri. Bunun nedeni, metin (dizinde KIMLIĞI 255 dizin oluşturur. SQL Server 2000) metin ve resim veri deposu artık yok. Dizin KIMLIĞI 255 hakkında daha fazla bilgi için bkz: sys.sysindexes (Transact-SQL).

Ayrıca, bazı yeni özellikler DBCC SHOWCONTIG desteklemiyor.Örneğin:

  • Belirtilen tablo ya da dizin bölümlere ayrılmışsa, DBCC SHOWCONTIG, yalnızca belirtilen bir tablo ya da dizin ilk bölümünü görüntüler.

  • DBCC SHOWCONTIG satır taşma Depolama bilgileri ve diğer yeni satır devre dışı veri türleri gibi görüntülemiyor nvarchar(max), varchar(max), varbinary(max), ve xml.

  • Kayma dizinleri DBCC SHOWCONTIG tarafından desteklenmiyor.

Tüm yeni özellikler tarafından tam olarak desteklenen sys.dm_db_index_physical_stats (Transact-SQL) dinamik yönetimi görüntüleyin.

Tablo parçalanması

DBCC SHOWCONTIG tablo çok parçalanmış olup olmadığını belirler.Veri tablosu karşı yapılan değişiklikler (INSERT, UPDATE ve DELETE deyimlerini) sürecinde tablo parçalanma oluşur.Bu değişiklikler genellikle eşit tablo satırları arasında dağıtılır değil, çünkü her sayfanın tamlık zamanla değişebilir.Bir bölümünü veya tümünü bir tablo taraması sorguları gibi tablo parçalanma, ek bir sayfa okuma neden olabilir.Başka bir yavaşlattığını paralel verilerin taranıyor.

Dizin çok parçalanmış, aşağıdaki seçenekleri parçalanma azaltmak için kullanılabilir:

  • Bırakma ve kümelenmiş dizin yeniden oluşturun.

    kümelenmiş dizin yeniden verileri reorganizes ve tam veri sayfaları neden olur.Tamlık düzey CREATE INDEX FILLFACTOR seçeneği kullanılarak da yapılandırılabilir.Bu yöntemin dezavantajları şunlardır: dizin sırasında açılan çevrimdışıdır veya döngüsü yeniden oluşturun ve atomik işlem olduğunu.Dizin oluşturma işlemi kesintiye uğrarsa, dizini yeniden değil.

  • Düzey yaprak sayfaları dizinin mantıksal bir sırada yeniden sıralayın.

    ALTER INDEX…REORGANIZE dizinin mantıksal bir sırada düzey yaprak sayfaları yeniden düzenlemek için kullanın.Bu işlem, çevrimiçi bir işlem olduğundan, dizin deyim çalışırken kullanılabilir.Işlem tamamlanan iş kaybı olmadan interruptible de vardır.Bu yöntemin olumsuzluk yöntem olarak iyi bir kümelenmiş dizin açılır olarak verileri yeniden düzenleyerek, bir iş yapın veya işlem yeniden, ' dir.

  • Dizini yeniden oluşturmak.

    ALTER INDIS ile REBUILD dizini yeniden oluşturmak için kullanın.Daha fazla bilgi için bkz:ALTER INDIS (Transact-SQL).

The Avg. Her bayt boş sayfa ve Ort. Sonuç sayfası yoğunluk (tam) istatistik küme dizin sayfaların tamlık gösterir.The Avg. Her sayfa numarası boş bayt, düşük ve olmalıdır.Ort. Sayfa yoğunluk (tam) birçok rasgele ekler içeren dizin için yüksek olması gerekir.Bırakma ve FILLFACTOR taşıyan bir dizin yeniden oluşturma seçeneği belirtildi istatistikleri artırabilirsiniz.Ayrıca, ALTER INDIS ile yeniden Düzenle, FILLFACTOR hesaba katarak, dizin sıkıştırır ve istatistikleri artırır.

Not

Rasgele bir çoğu olan dizin ekler ve çok tam sayfa, sayfa bölmeleri daha yüksek bir sayıda gerekir.Bu, daha fazla parçalanma neden olur.

Dizin parçalanma düzeyini aşağıdaki yollarla belirlenebilir:

  • Değerleri karşılaştırarak Kapsam geçişi and Taranan kapsamları.

    Değeri Kapsam geçişi mümkün olduğu kadar yakın, olmalıTaranan kapsamları.Bu oran olarak hesaplanan Yoğunluk Tara değeri.Bu değer, olabildiğince yüksek olmalı ve Dizin parçalanması azaltarak geliştirilebilir.

    Not

    Dizin birden fazla yayılmıştır, bu yöntem işe yaramaz.

  • Tarafından anlama Mantıksal bir tarama parçalanması and kapsam tarama parçalanması değerleri.

    Mantıksal bir tarama parçalanması ve daha az ölçüde, kapsam tarama parçalanması değerlerdir Parçalanma düzey en iyi göstergelerin bir tablo.Kabul edilebilir bir değer 0'dan yüzde 10 olabilir, ancak her iki değer sıfır olarak olabildiğince, yakın olması gerekir.

    Not

    The kapsam Scan Fragmentation value will be high if the index spans multiple files.Bu değeri azaltmak için , Dizin parçalanması azaltmalısınız.

İzinler

Kullanıcı 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.Bir tablo için parçalanma bilgilerini görüntüleme

Aşağıdaki örnek, parçalanma bilgilerini görüntüler Employee Tablo.

b.Tablo KIMLIĞI ve sys.indexes'dizin KIMLIĞINI elde etmek için edinme OBJECT_ID kullanma

Aşağıdaki örnek kullanır. OBJECT_ID ve sys.indexes Görünüm, tablo KIMLIĞI'ni edinip KIMLIĞI dizin katalog AK_Product_Name dizinin Production.Product ' de tablo AdventureWorks Veritabanı.

c.Kısaltılmış bir sonuç görüntüleme küme tablosu

Aşağıdaki örnek, kısaltılmış bir sonuç döndürür küme için Product ' de tablo AdventureWorks Veritabanı.

d.Tam sonucu görüntüleme küme veritabanındaki her tablo, her dizin için

Aşağıdaki örnek, her tabloda her dizin için ayarlanan tüm tablo sonucu verir AdventureWorks Veritabanı.

e.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ış bir veritabanındaki tüm dizinleri birleştirmek için basit bir yol gösterir.