Aracılığıyla paylaş


DBCC CHECKTABLE (Transact-SQL)

Bakar bütünlük tüm tablo ya da dizinli görünüm yapıların ve sayfaları.

Topic link iconTransact-SQL sözdizimi kuralları

DBCC CHECKTABLE 
(
        table_name | view_name
    [ , { NOINDEX | index_id }
     |, { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } 
    ] 
)
    [ WITH 
        { ALL_ERRORMSGS ]
          [ , EXTENDED_LOGICAL_CHECKS ] 
          [ , NO_INFOMSGS ]
          [ , TABLOCK ] 
          [ , ESTIMATEONLY ] 
          [ , { PHYSICAL_ONLY | DATA_PURITY } ] 
        }
    ]

Bağımsız değişkenler

  • table_name | view_name
    Tablo veya görünümü, bütünlük denetimleri çalıştırmak için dizin.Tablo veya Görünüm adları kuralları ile uyumlu olmalıdırtanımlayıcılar.

  • NOINDEX
    Kullanıcı tablosu için kümelenmemiş dizinler yoğun denetimleri değil gerçekleştirilmesi gerektiğini belirtir.Bu genel çalışma zamanı azaltır.NOINDEX her zaman gerçekleştirilir tüm sistem bütünlüğünü denetler, çünkü sistem tablo s etkilemez tablo dizin.

  • index_id
    Dizin kimliği (ID), bütünlük denetimleri çalıştırmak sayısıdır.Ifindex_idbelirtilmişse, DBCC CHECKTABLE çalışan bütünlük denetimi yalnızca dizin yığını veya kümelenmiş dizin.

  • REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
    DBCC CHECKTABLE bulunan hataları onarmak belirtir.Bir onarım seçeneğini kullanmak için veritabanını tek kullanıcı modu olması gerekir.

    • REPAIR_ALLOW_DATA_LOSS
      Tüm bildirilen hataları onarmak çalışır.Bu onarım bazı veri kaybına neden olabilir.

    • REPAIR_FAST
      Sözdizimi yalnızca geriye dönük uyumluluk için korunur.Hiçbir onarım işlemleri gerçekleştirilir.

    • REPAIR_REBUILD
      Hiçbir veri kaybı olasılığı olan onarımları gerçekleştirir.Bu eksik satırları kümelenmemiş dizinleri ve dizin yeniden oluşturma gibi daha fazla saat onarımlar onarma gibi hızlı onarım, içerebilir.

      REPAIR_BUILD değil onarma hataları ile ilgili FILESTREAM.

    Not

    ONARIM seçenekleri yalnızca son çare olarak kullanın.Hataları onarmak için bir yedek kopyadan geri yüklenmesi önerilir.Onarım işlemlerini bulunabilecek kısıtlamalar üzerinde veya tablolar arasında birini düşünün değil.Belirtilen tablo bir veya daha fazla kısıtlamayı söz konusu ise, DBCC CHECKCONSTRAINTS Onarım işleminden sonra çalışan öneririz.REPAIR kullanmanız gerekiyorsa, DBCC CHECKTABLE onarım bulmak için bir onarma seçeneği olmadan çalıştırmak düzey kullanılacak.REPAIR_ALLOW_DATA_LOSS kullanmak için kullanacaksanız düzey, bu seçenek, DBCC CHECKTABLE komutunu çalıştırmadan önce veritabanını yedeklemeniz önerilir.

  • ALL_ERRORMSGS
    Sınırsız sayıda hataları görüntüler.InSQL Server 2008hizmet Pack 1 (SP1), tüm hata iletileri varsayılan olarak görüntülenirBelirterek veya bu seçenek kullanılmazsa, hiçbir etkisi yoktur.Önceki sürümlerindeALL_ERRORMSGS belirtilmezse, SQL Server(exceptSQL Server 2005SP3), yalnızca ilk 200 hata iletileri her nesne için görüntülenen.

  • EXTENDED_LOGICAL_CHECKS
    Uyumluluk düzeyini 100 ise ( SQL Server 2008) veya sonraki mantıksal tutarlılığını denetler, kayma dizinler, dizinli görünüm ve XML dizinler burada geçerli.

    Daha fazla bilgi için "Gerçekleştirme mantıksal tutarlılığı denetler, dizinler", daha sonra bu konudaki "Uyarılar" bölümüne bakın.

  • NO_INFOMSGS
    Engeller tüm bilgilendirici iletileri.

  • TABLOCK
    Bir iç veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüsü kullanmak yerine bir paylaşılan tablo kilit elde etmek DBCC CHECKTABLE neden olur.TABLOCK neden DBCC CHECK tablo üzerinde daha hızlı çalıştırmak için bir tablo yoğun yük altında azaltır ancak kullanılabilir eşzamanlılık tablo çalışırken DBCC CHECK tablo çalışıyor.

  • ESTIMATEONLY
    Tahmini miktarını görüntüler.tempdbalan gerekene çalışacak DBCC CHECKTABLE tüm diğer belirtilen seçenekleri.

  • PHYSICAL_ONLY
    Sınırlar için sayfa üstbilgi kaydı ve B ağaçlarının fiziksel yapısını fiziksel yapısının bütünlüğünü denetleme.Bir küçük genel gider tablosunun fiziksel tutarlılık denetimi sağlamak üzere tasarlanmış bozuk sayfalar ve veri olumsuz etkileyebilir, genel donanım hataları da bu denetim algılayabilir.DBCC CHECKTABLE'ın tam bir çalışma daha önceki sürümlerinde, oldukça uzun sürebilir.Bu davranış aşağıdaki nedenlerden dolayı oluşur:

    • Mantıksal denetimleri, daha kapsamlı olur.

    • Bazı alt düzeydeki yapıları denetlenecek daha karmaşıktır.

    • Birçok yeni denetimleri yeni özellikler ortaya.

    Bu nedenle PHYSICAL_ONLY seçeneğini kullanarak bir çok daha kısa çalışma zamanı için DBCC CHECKTABLE büyük tablolarda neden olabilir ve bu nedenle üretim sistemlerinde sık kullanım için önerilir.Yine de tam bir DBCC CHECKTABLE çalışması düzenli olarak yapılması önerilir.Sıklığı bu çalışır, tek işletmeler ve üretim ortamlarında belirli etkenlere bağlıdır.PHYSICAL_ONLY her zaman NO_INFOMSGS anlamına gelir ve onarım seçenekleri herhangi biri ile izin verilmez.

    Not

    Tüm atlamak DBCC CHECKTABLE PHYSICAL_ONLY neden belirtilmesi, FILESTREAM veri denetler.

  • DATA_PURITY
    Neden DBCC CHECK tablo denetlemek için tablo sütun değerleri geçerli veya aralık dışı.Örneğin, büyük veya daha az kabul edilebilir aralık için tarih ve saat değerleri içeren sütunlar DBCC CHECKTABLE algılardatetimeveri türü; veyadecimalveya yaklaşık sayısal veri türü geçersiz ölçek ya da kesinlik değerleri içeren sütunların.

    Oluşturulan veritabanları içinSQL Server 2005ve daha sonra sütun değeri bütünlük denetimleri varsayılan olarak etkindir ve DATA_PURITY seçeneği. gerektirmeyenVeritabanının önceki sürümlerinden yükseltmeSQL Server, bulmak ve belirli bir tablo hatalarını gidermek için DBCC CHECKTABLE DATA_PURITY'ile [NULL]'yi kullanabilirsiniz; ile DBCC CHECKDB DATA_PURITY hata boş veritabanı. üzerinde çalıştırıldıktan kadar ancak tablodaki sütun değeri denetimleri varsayılan olarak etkin değildirBundan sonra DBCC CHECKDB ve DBCC CHECKTABLE değeri sütun bütünlüğünü varsayılan denetleyin.

    DBCC onarım seçenekleri kullanarak bu seçeneği tarafından bildirilen doğrulama hatası sabit olamaz.El ile bu hataları giderme hakkında daha fazla bilgi için bkz: Bilgi Bankası makalesi 923247: SQL Server 2005'te 2570 DBCC sorun giderme hata.

    PHYSICAL_ONLY belirtilmezse, sütun bütünlük denetimleri gerçekleştirilmez.

Remarks

Not

DBCC CHECK gerçekleştirmek için tablo üzerindeki her tablo veritabanında kullanmakDBCC CHECKDB.

Belirtilen tablo için DBCC CHECKTABLE aşağıdakileri denetler:

  • Dizin, veri sayfası, satır, LOB ve satır taşma doğru bağlı.

  • Dizinlere doğru sıralama düzeni düzenlerini var.

  • İşaretçiler tutarlı hale gelir.

  • Her veri sayfa makul, hesaplanan sütunlar eklenir.

  • Sayfa uzaklıklar kabul edilebilir.

  • Temel tablodaki her satır her kümelenmemiş dizin ve tersi eşleşen bir satır vardır.

  • Her satırda bir bölümlenmiş bir tablo ya da dizin içinde doğru bölümdür.

  • Tablo, depolama ve dosya sistemi arasında bağlantı düzey tutarlılığıvarbinary(max)veri dosya sistemi kullanarak FILESTREAM.

Dizinler mantıksal tutarlılığı gerçekleştirme denetler

Mantıksal tutarlılık denetimini yoğun olmayan dizinlerde uyumluluğunu göre değişen düzey veritabanının aşağıdaki gibi:

  • , Uyumlu düzey 100'dür ( SQL Server 2008) veya sonraki sürümü:

    • NOINDEX belirtilmediği sürece, her iki fiziksel DBCC CHECKTABLE yapar ve tek bir tablo ve tüm kümelenmemiş dizinler mantıksal tutarlılığını denetler.Ancak, XML dizinler, kayma dizinleri ve dizin oluşturulmuş görünümler yalnızca fiziksel tutarlılık denetimleri varsayılan olarak gerçekleştirilir.

    • WITH EXTENDED_LOGICAL_CHECKS belirtilmemişse, dizinli görünüm, XML dizinler ve kayma dizinleri mantıksal denetimleri gerçekleştirilmez, burada yok.Varsayılan olarak, fiziksel tutarlılık denetimleri önce mantıksal tutarlılık denetimleri gerçekleştirilir.NOINDEX de belirtilirse, yalnızca mantıksal denetimleri gerçekleştirilir.

      Bu mantıksal tutarlılık onay başvuru kullanıcı tablo ile dizin nesnesinin iç dizin tablosunu denetler.Harici satırları bulmak için tam bir iç kesişimi ve kullanıcı tablolarını gerçekleştirmek için bir iç sorgu oluşturulur.Bu sorgu çok yüksek bir performans etkisi olabilir ve ilerleme izlenemez.Bu nedenle, yalnızca fiziksel bozulmasına ilgisiz dizin sorunlara şüpheleniyorsanız veya sayı ile EXTENDED_LOGICAL_CHECKS belirtmek öneririz sayfa-düzey sağlaması kapalı ve, sütun - şüphe düzey donanım Bozulması.

    • Dizin filtre uygulanmış bir dizindir, DBCC CHECKDB dizin girişlerini filtre koşulunu karşılamak doğrulamak için tutarlılığını denetler.

  • Uyumluluk düzey 90 veya NOINDEX belirtilmediği sürece, daha az, DBCC CHECKTABLE fiziksel ve mantıksal tutarlılık denetimleri tek bir tablo veya dizinli görünüm ve tüm alt kümelenmemiş hem de XML dizinler gerçekleştirir.Kayma dizinler desteklenmez.

Bir veritabanı uyumluluk düzeyini öğrenmek için

İç Veritabanı anlık görüntü

DBCC CHECKTABLE bir iç veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüsünü bu denetimleri gerçekleştirmek için gereken işlem tutarlılığı sağlamak için kullanır.Daha fazla bilgi için bkz:Veritabanı anlık görüntü olarak seyrek dosya boyutları'nı anlamave "DBCC iç veritabanı anlık görüntü kullanımı" bölümündeDBCC (Transact-SQL).

anlık görüntü görüntü oluşturulamaz veya TABLOCK belirtildiğinde, DBCC CHECKTABLE bir paylaşılan edinme tablo kilit gerekli tutarlılık. elde etmek için

Not

DBCC CHECKTABLE, karşı çalıştırıntempdbonu gerekir alma paylaşılan tablo kilit.Bu, çünkü performans nedenleriyle, veritabanı Snapshot kullanılamıyortempdb.Yani, gerekli işlem tutarlılığı alınamıyor.

Denetleme ve onarma FILESTREAM veri

FILESTREAM, bir veritabanı ve tablo için etkinleştirildiğinde, isteğe bağlı olarak saklayabilirvarbinary(max)ikili büyük nesneleri (BLOB'lar) dosya sistemi.DBCC CHECK kullanırken tablo üzerinde bir tablo BLOB'lar, dosya sisteminde depolar, DBCC dosya sistemi ve veritabanı arasındaki bağlantı düzey tutarlılığını denetler.

Bir tablo içeriyorsa, örneğin, birvarbinary(max)FILESTREAM özniteliğini kullanır sütununu DBCC CHECKTABLE'ı işaretleyin, dosya sistemi dizinleri ve dosyaları ve tablo satır, sütun ve arasında bire bir eşleme yok sütun değerleri.REPAIR_ALLOW_DATA_LOSS seçeneği belirtirseniz, DBCC CHECKTABLE bozulma onarabilirsiniz.DBCC FILESTREAM bozulmayı onarmak için dosya sistemi verileri eksik olan ve herhangi bir dizin ve bir tabloya satır, sütun veya sütun değerine eşleme dosyaları siler, tablo satırlarının silinmesine neden olur.

Paralel nesneleri denetleme

Varsayılan olarak, DBCC CHECKTABLE paralel nesnelerin denetimini gerçekleştirir.Parallelism derecesini otomatik olarak sorgu işlemcisi tarafından belirlenir.Parallelism en büyük ölçüde paralel sorgular, aynı şekilde yapılandırılmıştır.İçin en yüksek işlemci DBCC denetimi için sınırlama kullanınsp_configure.Daha fazla bilgi için bkz:parallelism seçeneği en büyük ölçüde.

Paralel denetimi izleme bayrağı 2528 kullanarak devreden çıkarılabilir.Daha fazla bilgi için bkz:İzleme Bayrakları (Transact-SQL).

Not

DBCC CHECKTABLE işlemi sırasında kullanıcı tanımlı bayt sipariş türü sütunda depolanan bayt kullanıcı tanımlı tür değerin hesaplanan serileştirme için eşit olmalıdır.Bu bilgiler doğru değilse, DBCC CHECKTABLE sıradan bir tutarlılık hatası bildirir.

DBCC hata iletileri anlama

DBCC sonra CHECKTABLE komutunu biter, bir ileti yazılırSQL Serverhata günlüğüDBCC komutu başarıyla yürütür, iletiyi başarılı bir tamamlama ve komutu çalıştıran süreyi gösterir.Denetim bir hata nedeniyle tamamlamadan önce DBCC komutunu durdurur, ileti komut sonlandırıldı, bir durum değeri ve komutu çalıştırdığınız saat miktarını gösterir.Aşağıdaki tabloda, listeler ve iletide bulunan durum değerleri açıklanmaktadır.

STATE :

Açıklama

0

Hata numarası 8930 ortaya çıktı.Bu meta veriler bozulma nedeniyle sona erdirmek DBCC komutunu gösterir.

1

Hata numarası 8967 ortaya çıktı.DBCC iç hata oluştu.

2

Acil Durum modu veritabanı onarım sırasında bir hata oluştu.

3

Bu meta veriler bozulma nedeniyle sona erdirmek DBCC komutunu gösterir.

4

Assert veya erişim ihlali algılandı.

5

DBCC komutu sona bilinmeyen bir hata oluştu.

Hata bildirimi

Mini-döküm dosyası (SQLDUMP nnnn .txt) oluşturulan SQL ServerGünlük dizini her DBCC CHECKTABLE algılar bir bozulma hatası.Özelliğinin kullanımı, veri koleksiyon ve hata raporlama özellikleri örnek için etkinleştirildiSQL Serverdosya otomatik olarak iletilmesi içinMicrosoft.Toplanan veriler geliştirmek için kullanılırSQL Serverişlev.

Döküm dosyasını DBCC CHECKTABLE komutunu ve ek tanılama çıkış sonuçlarını içerir.Dosya, isteğe bağlı erişim denetimi listelerinde (DACL) kısıtladı.Sınırlı erişimiSQL Serverhizmet hesabı ve üyelerisysadminrol.Varsayılan olarak,sysadminrolü içeren tüm üyeleri Windows BUILTIN\Administrators grubu ve yerel yönetici grubu.Veri koleksiyon işlemi başarısız olursa DBCC komutu başarısız..

Hata giderme

DBCC CHECKTABLE herhangi bir hata bildirirse, bir ONARIM seçenekleri REPAIR çalıştırmak yerine veritabanının yedek veritabanını geri öneririz.Yedeğiniz varsa, çalışan REPAIR bildirilen hataları düzeltebilirsiniz.ONARIM seçeneğini kullanmak için bildirilen hataların listesini sonunda belirtilir.Ancak REPAIR_ALLOW_DATA_LOSS seçeneğini kullanarak bu hataları düzeltme bazı sayfaları ve bu nedenle veri silinmesi gerekebilir.

Onarım yapılan değişiklikleri geri almak izin veren kullanıcı işlem altında gerçekleştirilebilir.Onarım geri alınır, veritabanı hata yer alır ve bir yedek kopyadan geri yüklenmesi gerekir.Tüm onarımları tamamladıktan sonra veritabanını yedekleyin.

Sonuç Kümeleri

DBCC CHECKTABLE aşağıdaki sonuç kümesi verir.Aynı sonucu küme yalnızca tablo adını veya diğer seçenekleri belirtin, geri döner.

DBCC results for 'HumanResources.Employee'.
There are 288 rows in 13 pages for object 'Employee'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

DBCC CHECKTABLE aşağıdaki sonucu verir küme ESTIMATEONLY seçeneği varsa:

Estimated TEMPDB space needed for CHECKTABLES (KB) 
-------------------------------------------------- 
21
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

İzinler

Kullanıcı gerekir tablonun sahibi veya üyesi sysadminsabit sunucu rolü,db_ownersabit veritabanı rolü, ya dadb_ddladminsabit veritabanı rolü.

Örnekler

C.Belirli bir tablo denetimi

Aşağıdaki örnek veri sayfa bütünlüğünü denetlerHumanResources.Employee , tabloAdventureWorks veritabanı.

B.Tablo düşük yük kontrol gerçekleştirme

Aşağıdaki örnekte düşük bir genel gider denetimi yapanEmployee , tabloAdventureWorksveritabanı.

C.Belirli bir dizin denetimi

Aşağıdaki örnek bir belirli dizin erişerek elde denetlersys.indexes.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Yer ALL_ERRORMSGS, açıklanan yeni işlevlerSQL Server 2008SP1'i.