Aracılığıyla paylaş


DBCC (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

Transact-SQL programlama dili, SQL Server için Veritabanı Konsolu Komutları görevi görür DBCC deyimleri sağlar.

Veritabanı Konsolu Komut deyimleri aşağıdaki kategorilere göre gruplandırılır.

Komut kategorisi Oynamak
Bakım Veritabanı, dizin veya dosya grubundaki bakım görevleri.
Çeşitli İzleme bayraklarını etkinleştirme veya bir DLL'yi bellekten kaldırma gibi çeşitli görevler.
Bilgi Çeşitli bilgi türlerini toplayan ve görüntüleyen görevler.
Doğrulama Veritabanı, tablo, dizin, katalog, dosya grubu veya veritabanı sayfalarını ayırma üzerindeki doğrulama işlemleri.

DBCC komutları giriş parametrelerini alır ve değerleri döndürür. Tüm DBCC komut parametreleri hem Unicode hem de DBCS değişmez değerlerini kabul edebilir.

DBCC iç veritabanı anlık görüntüsü kullanımı

Aşağıdaki DBCC komutları, Veritabanı Altyapısı'nın oluşturduğu bir iç salt okunur veritabanı anlık görüntüsünde çalışır. Bu komutlar yürütülürken anlık görüntü engelleme ve eşzamanlılık sorunlarını önler. Daha fazla bilgi için bkz. Veritabanı Anlık Görüntüleri (SQL Server).

  • DBCC CHECKALLOC
  • DBCC CHECKCATALOG
  • DBCC CHECKDB
  • DBCC CHECKFILEGROUP
  • DBCC CHECKTABLE

Bu DBCC komutlarından birini yürütürken, Veritabanı Altyapısı bir veritabanı anlık görüntüsü oluşturur ve bunu işlem açısından tutarlı bir duruma getirir. DBCC komutu daha sonra bu anlık görüntüye karşı denetimleri çalıştırır. DBCC komutu tamamlandıktan sonra bu anlık görüntü bırakılır.

Bazen iç veritabanı anlık görüntüsü gerekmez veya oluşturulamaz. Bu durumda DBCC komutu gerçek veritabanına karşı yürütülür. Veritabanı çevrimiçiyse DBCC komutu, denetlediğini nesnelerin tutarlılığını sağlamak için tablo kilitlemeyi kullanır. Bu davranış, WITH TABLOCK seçeneğinin belirtilmiş olmasıyla aynıdır.

DBCC komutu yürütürken iç veritabanı anlık görüntüsü oluşturulmaz:

  • master veritabanına karşı ve SQL Server örneği tek kullanıcı modunda çalışıyor.
  • masterdışındaki bir veritabanına karşı, ancak veritabanı ALTER DATABASE deyimi kullanılarak tek kullanıcı moduna alındı.
  • Salt okunur bir veritabanına karşı.
  • ALTER DATABASE deyimi kullanılarak acil durum modunda ayarlanmış bir veritabanına karşı.
  • tempdbkarşı. Bu durumda, iç kısıtlamalar nedeniyle veritabanı anlık görüntüsü oluşturulamaz.
  • WITH TABLOCK seçeneğini kullanma. Bu durumda DBCC, veritabanı anlık görüntüsü oluşturmayarak isteği kabul eder.

DBCC komutları, komut aşağıdakilere karşı yürütülürken iç veritabanı anlık görüntüleri yerine tablo kilitleri kullanır:

  • Salt okunur bir dosya grubu
  • FAT dosya sistemi
  • Adlandırılmış akışlar desteklemeyen birim
  • Alternatif akışlar desteklemeyen birim

Not

WITH TABLOCK seçeneğini kullanarak DBCC CHECKALLOCveya DBCC CHECKDBeşdeğer bölümünü çalıştırmaya çalışmak için özel veritabanı (X) kilidi gerekir. Bu veritabanı kilidi tempdb veya master ayarlanamaz ve büyük olasılıkla diğer tüm veritabanlarında başarısız olur.

Not

DBCC CHECKDB, iç veritabanı anlık görüntüsü oluşturulamazsa master karşı çalıştırıldığında başarısız olur.

DBCC komutları için ilerleme raporlaması

sys.dm_exec_requests katalog görünümü, DBCC CHECKDB, CHECKFILEGROUPve CHECKTABLE komutlarının ilerleme durumu ve geçerli yürütme aşaması hakkında bilgi içerir. percent_complete sütunu komutun tamamlanma yüzdesini gösterir ve command sütunu komutun yürütülmesinin geçerli aşamasını bildirir.

İlerleme biriminin tanımı, DBCC komutunun geçerli yürütme aşamasına bağlıdır. Bazen ilerleme bir veritabanı sayfasının ayrıntı düzeyinde, diğer aşamalarda tek bir veritabanı veya ayırma onarımının ayrıntı düzeyinde bildirilir. Aşağıdaki tabloda yürütmenin her aşaması ve komutun ilerleme durumunu bildirdiği ayrıntı düzeyi açıklanmaktadır.

Yürütme aşaması Açıklama İlerleme raporlama ayrıntı düzeyi
DBCC TABLE CHECK Bu aşamada veritabanındaki nesnelerin mantıksal ve fiziksel tutarlılığı denetlendi. veritabanı sayfa düzeyinde ilerleme durumu bildirildi.

İlerleme raporlama değeri, denetlenen her 1000 veritabanı sayfası için güncelleştirilir.
DBCC TABLE REPAIR REPAIR_FAST, REPAIR_REBUILDveya REPAIR_ALLOW_DATA_LOSS belirtilirse ve onarılması gereken nesne hataları varsa, bu aşamada veritabanı onarımları gerçekleştirilir. İlerleme durumu tek tek onarım düzeyinde raporlandı.

Sayaç, tamamlanan her onarım için güncelleştirilir.
DBCC ALLOC CHECK Veritabanındaki ayırma yapıları bu aşamada denetleniyor.

Not:DBCC CHECKALLOC aynı denetimleri gerçekleştirir.
İlerleme bildirmiyor
DBCC ALLOC REPAIR REPAIR_FAST, REPAIR_REBUILDveya REPAIR_ALLOW_DATA_LOSS belirtilirse ve onarılması gereken ayırma hataları varsa, bu aşamada veritabanı onarımları gerçekleştirilir. İlerleme bildirilir.
DBCC SYS CHECK Veritabanı sistem tabloları bu aşamada denetleniyor. veritabanı sayfa düzeyinde ilerleme durumu bildirildi.

İlerleme raporlama değeri, denetlenen her 1000 veritabanı sayfası için güncelleştirilir.
DBCC SYS REPAIR REPAIR_FAST, REPAIR_REBUILDveya REPAIR_ALLOW_DATA_LOSS belirtilirse ve onarılması gereken sistem tablosu hataları varsa, bu aşamada veritabanı onarımları gerçekleştirilir. İlerleme durumu tek tek onarım düzeyinde raporlandı.

Sayaç, tamamlanan her onarım için güncelleştirilir.
DBCC SSB CHECK SQL Server Hizmet Aracısı nesneleri bu aşamada denetleniyor.

Not: Bu aşama, DBCC CHECKTABLE yürütülürken yürütülemez.
İlerleme bildirilir.
DBCC CHECKCATALOG Bu aşamada veritabanı kataloglarının tutarlılığı denetlenmektedir.

Not: DBCC CHECKTABLE yürütürken bu aşama yürütülemez.
İlerleme bildirilir.
DBCC IVIEW CHECK Bu aşamada veritabanında bulunan dizinli görünümlerin mantıksal tutarlılığı denetlendi. İlerleme, denetlenmekte olan tek tek veritabanı görünümünün düzeyinde bildirilir.

Bilgilendirme deyimleri

  • DBCC INPUTBUFFER
  • DBCC SHOWCONTIG
  • DBCC OPENTRAN
  • DBCC OUTPUTBUFFER
  • DBCC PROCCACHE
  • DBCC SHOW_STATISTICS
  • DBCC SQLPERF
  • DBCC TRACESTATUS
  • DBCC USEROPTIONS

Doğrulama deyimleri

  • DBCC CHECKALLOC
  • DBCC CHECKCATALOG
  • DBCC CHECKCONSTRAINTS
  • DBCC CHECKDB
  • DBCC CHECKFILEGROUP
  • DBCC CHECKIDENT
  • DBCC CHECKTABLE

Bakım deyimleri

  • DBCC CLEANTABLE
  • DBCC DBREINDEX
  • DBCC DROPCLEANBUFFERS
  • DBCC FREEPROCCACHE
  • DBCC INDEXDEFRAG
  • DBCC SHRINKDATABASE
  • DBCC SHRINKFILE
  • DBCC UPDATEUSAGE

Çeşitli deyimler

  • DBCC dllname (ÜCRETSİz)
  • DBCC HELP
  • DBCC FLUSHAUTHCACHE
  • DBCC TRACEOFF
  • DBCC FREESESSIONCACHE
  • DBCC TRACEON
  • DBCC FREESYSTEMCACHE
  • DBCC CLONEDATABASE (için geçerlidir: SQL Server 2014 (12.x) Service Pack 2 ve sonraki sürümleri.)