Aracılığıyla paylaş


DBCC CHECKFILEGROUP (Transact-SQL)

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

Geçerli veritabanının belirtilen dosya grubundaki tüm tabloların ve dizine alınan görünümlerin ayırma ve yapısal bütünlüğünü denetler.

Transact-SQL söz dizimi kuralları

Sözdizimi

DBCC CHECKFILEGROUP
[
    [ ( { filegroup_name | filegroup_id | 0 }
        [ , NOINDEX ]
  ) ]
    [ WITH
        {
            [ ALL_ERRORMSGS | NO_INFOMSGS ]
            [ , TABLOCK ]
            [ , ESTIMATEONLY ]
            [ , PHYSICAL_ONLY ]
            [ , MAXDOP  = number_of_processors ]
        }
    ]
]

Arguments

filegroup_name

Tablo ayırma ve yapısal bütünlüğün denetlendiği geçerli veritabanındaki dosya grubunun adı. Belirtilmezse veya 0 belirtilirse, varsayılan değer birincil dosya grubudur. Dosya grubu adları , tanımlayıcıların kurallarına uymalıdır.
filegroup_name FILESTREAM dosya grubu olamaz.

filegroup_id

Tablo ayırma ve yapısal bütünlüğün denetlendiği geçerli veritabanındaki dosya grubu tanımlama (KIMLIK) numarası.

NOINDEX

Kullanıcı tabloları için kümelenmemiş dizinlerin yoğun denetimlerinin gerçekleştirilmemesi gerektiğini belirtir. Bu, genel yürütme süresini azaltır. NOINDEX sistem tablolarını etkilemez çünkü DBCC CHECKFILEGROUP her zaman tüm sistem tablosu dizinlerini denetler.

ALL_ERRORMSGS

Nesne başına sınırsız sayıda hata görüntüler. Tüm hata iletileri varsayılan olarak görüntülenir. Bu seçeneği belirtmenin veya atlamanın hiçbir etkisi yoktur.

NO_INFOMSGS

Tüm bilgilendirme iletilerini gizler.

TABLOCK

İç veritabanı anlık görüntüsü kullanmak yerine kilitlerin alınmasına neden olur DBCC CHECKFILEGROUP .

YALNIZCA TAHMIN

Diğer tüm belirtilen seçeneklerle çalışmak tempdb için gereken tahmini alan miktarını DBCC CHECKFILEGROUP görüntüler.

PHYSICAL_ONLY

Denetimi sayfanın fiziksel yapısının, kayıt üst bilgilerinin ve B ağaçlarının fiziksel yapısının bütünlüğüyle sınırlar. Dosya grubunun fiziksel tutarlılığı için küçük bir ek yük denetimi sağlamak üzere tasarlanan bu denetim, bozuk sayfaları ve verilerin güvenliğini tehlikeye atabilecek yaygın donanım hatalarını da algılayabilir. tam çalıştırma, DBCC CHECKFILEGROUP önceki sürümlerden çok daha uzun sürebilir. Bu davranış aşağıdaki nedenlerden dolayı oluşur:

  • Mantıksal denetimler daha kapsamlıdır.
  • Denetlenecek temel yapılardan bazıları daha karmaşıktır.
  • Yeni özellikleri içeren birçok yeni denetim kullanıma sunulmuştur.

Uyarı

Belgelerde genellikle dizinlere başvuruda B ağacı terimi kullanılır. Rowstore dizinlerinde Veritabanı Altyapısı bir B+ ağacı uygular. Bu, sütun deposu dizinleri veya bellek için iyileştirilmiş tablolardaki dizinler için geçerli değildir. Daha fazla bilgi için SQL Server ve Azure SQL dizin mimarisi ve tasarım kılavuzuna bakın.

Bu nedenle, seçeneğin PHYSICAL_ONLY kullanılması büyük dosya gruplarında çok daha kısa bir çalışma süresine DBCC CHECKFILEGROUP neden olabilir ve bu nedenle üretim sistemlerinde sık kullanım için önerilir. Yine de tam çalıştırmanın DBCC CHECKFILEGROUP düzenli aralıklarla gerçekleştirilmesi önerilir. Bu çalıştırmaların sıklığı, tek tek işletmelere ve üretim ortamlarına özgü faktörlere bağlıdır. PHYSICAL_ONLY her zaman herhangi bir onarım seçeneğiyle ima eder NO_INFOMSGS ve buna izin verilmez.

Uyarı

FILESTREAM verilerinin tüm denetimlerinin atlanması için nedenlerin PHYSICAL_ONLY belirtilmesiDBCC CHECKFILEGROUP.

MAXDOP

Şunlar için geçerlidir: SQL Server 2014 Service Pack 2 ve sonraki sürümleri

deyimi için en yüksek paralellik yapılandırma seçeneğini sp_configure geçersiz kılar. ile MAXDOPsp_configureyapılandırılan değeri aşabilir. Resource Governor ile yapılandırılan değeri aşarsaMAXDOP, Veritabanı Altyapısı MAXDOP bölümünde açıklanan Resource Governor değerini kullanır. En yüksek paralellik derecesi yapılandırma seçeneğiyle kullanılan tüm anlam kuralları, sorgu ipucunu MAXDOP kullandığınızda geçerlidir. Daha fazla bilgi için bkz. En yüksek paralellik derecesini yapılandırma Sunucu Yapılandırma Seçeneği.

Dikkat

Sıfır olarak ayarlanırsa MAXDOP , sunucu en yüksek paralellik derecesini seçer.

Açıklamalar

DBCC CHECKFILEGROUP ve DBCC CHECKDB benzer DBCC komutlarıdır. Temel fark, belirtilen tek dosya grubu ve gerekli tablolarla sınırlı olmasıdır DBCC CHECKFILEGROUP .

DBCC CHECKFILEGROUP aşağıdaki komutları gerçekleştirir:

DBCC CHECKALLOC Veya ayrı DBCC CHECKTABLE olarak çalıştırmak DBCC CHECKFILEGROUP gerekli değildir.

İç veritabanı anlık görüntüsü

DBCC CHECKFILEGROUP , bu denetimleri gerçekleştirmek için gerekli işlem tutarlılığını sağlamak için bir iç veritabanı anlık görüntüsü kullanır. Daha fazla bilgi için bkz. Veritabanı Anlık Görüntüsünün Seyrek Dosyasının Boyutunu Görüntüleme (Transact-SQL) ve DBCC'deki DBCC iç veritabanı anlık görüntüsü kullanımı bölümü (Transact-SQL).

Anlık görüntü oluşturulamazsa veya TABLOCK seçenek belirtilirse, DBCC CHECKFILEGROUP gerekli tutarlılığı elde etmek için kilitleri alır. Bu durumda, ayırma denetimlerini gerçekleştirmek için özel veritabanı kilidi ve tablo denetimlerini gerçekleştirmek için paylaşılan tablo kilitleri gerekir. TABLOCK yoğun yük altındaki bir veritabanında daha hızlı çalışmasına neden olur DBCC CHECKFILEGROUP , ancak çalışırken veritabanında DBCC CHECKFILEGROUP kullanılabilen eşzamanlılığı azaltır.

Uyarı

ile DBCC CHECKFILEGROUP çalıştırıldığında tempdb herhangi bir ayırma denetimi gerçekleştirilmez ve tablo denetimleri gerçekleştirmek için paylaşılan tablo kilitleri alınmalıdır. Bunun nedeni, performans nedenleriyle veritabanı anlık görüntülerinin üzerinde tempdbkullanılamamasıdır. Bu, gerekli işlem tutarlılığının alınamadığı anlamına gelir.

Nesneleri paralel olarak denetleme

Varsayılan olarak, DBCC CHECKFILEGROUP nesneleri paralel olarak denetler. Paralellik derecesi sorgu işlemcisi tarafından otomatik olarak belirlenir. En yüksek paralellik derecesi aynı paralel sorgular gibi yapılandırılır. DBCC denetimi için kullanılabilen en fazla işlemci sayısını kısıtlamak için sp_configure kullanın. Daha fazla bilgi için bkz. En yüksek paralellik derecesini yapılandırma Sunucu Yapılandırma Seçeneği.

Paralel denetim, izleme bayrağı 2528 kullanılarak devre dışı bırakılabilir. Daha fazla bilgi için bkz. DBCC TRACEON ile izleme bayrakları ayarlama.

Ayrı dosya gruplarında kümelenmemiş dizinler

Belirtilen dosya grubundaki bir kümelenmemiş dizin başka bir dosya grubundaki bir tabloyla ilişkiliyse, temel tablo doğrulama için kullanılamadığından dizin işaretlenmez.

Belirtilen dosya grubundaki bir tablo başka bir dosya grubunda kümelenmemiş bir dizine sahipse, aşağıdakilerden dolayı kümelenmemiş dizin işaretlenmez:

  • Temel tablo yapısı, kümelenmemiş bir dizinin yapısına bağımlı değildir. Temel tabloyu doğrulamak için kümelenmemiş dizinlerin taranması gerekmez.
  • DBCC CHECKFILEGROUP komutu yalnızca belirtilen dosya grubundaki nesneleri doğrular.

Kümelenmiş dizin ve tablo farklı dosya gruplarında olamaz; bu nedenle, önceki önemli noktalar yalnızca kümelenmemiş dizinler için geçerlidir.

Ayrı dosya gruplarında bölümlenmiş tablolar

Bölümlenmiş tablo birden çok dosya grubunda mevcut olduğunda, DBCC CHECKFILEGROUP belirtilen dosya grubunda bulunan bölüm satır kümelerini denetler ve diğer dosya gruplarındaki satır kümelerini yoksayar. Bilgi iletisi 2594, denetlenmeyecek bölümleri gösterir. Belirtilen dosya grubunda yerleşik olmayan kümelenmemiş dizinler işaretlenmez.

DBCC hata iletilerini anlama

DBCC CHECKFILEGROUP Komut tamamlandıktan sonra SQL Server hata günlüğüne bir ileti yazılır. DBCC komutu başarıyla yürütülürse, ileti başarıyla tamamlandığını ve komutun çalıştırıldığını gösterir. DBCC komutu bir hata nedeniyle denetimi tamamlamadan önce durursa, ileti komutun sonlandırıldığını, durum değerini ve komutun çalıştırıldığı süreyi gösterir. Aşağıdaki tabloda iletiye dahil edilebilecek durum değerleri listelenmiştir ve açıklanmaktadır.

Devlet Description
0 Hata numarası 8930 oluşturuldu. Bu, DBCC komutunun sonlandırmasına neden olan bir meta veri bozulmasını gösterir.
1 Hata numarası 8967 oluşturuldu. bir iç DBCC hatası oluştu.
2 Acil durum modu veritabanı onarımı sırasında bir hata oluştu.
3 Bu, DBCC komutunun sonlandırmasına neden olan bir meta veri bozulmasını gösterir.
4 Onay veya erişim ihlali algılandı.
5 DBCC komutunu sonlandıran bilinmeyen bir hata oluştu.

Hata raporlama

Sql Server SQLDUMP<nnnn>.txt dizininde bir bozulma hatası algılandığında LOG bir mini döküm dosyası (DBCC CHECKFILEGROUP) oluşturulur. SQL Server örneği için Özellik Kullanımı veri toplama ve Hata Raporlama özellikleri etkinleştirildiğinde, dosya otomatik olarak Microsoft'a iletilir. Toplanan veriler SQL Server işlevselliğini geliştirmek için kullanılır.

Döküm dosyası komutun sonuçlarını ve ek tanılama çıkışını DBCC CHECKFILEGROUP içerir. Dosya isteğe bağlı erişim denetimi listelerini (DACL' ler) kısıtlamıştır. Erişim, SQL Server hizmet hesabı ve sysadmin rolünün üyeleriyle sınırlıdır. Varsayılan olarak sysadmin rolü, Windows BUILTIN\Administrators grubunun ve yerel yönetici grubunun tüm üyelerini içerir. Veri toplama işlemi başarısız olursa DBCC komutu başarısız olmaz.

Hataları düzeltme

tarafından DBCC CHECKFILEGROUPherhangi bir hata bildirilirse veritabanını veritabanı yedeğinden geri yüklemenizi öneririz. Onarım seçenekleri olarak DBCC CHECKFILEGROUPbelirtilemiyor.

Yedekleme yoksa, belirtilen bir onarım seçeneğiyle çalışmak DBCC CHECKDB bildirilen hataları düzeltir. Hata bildirilirse, kullanılacak onarım seçeneği listenin sonunda belirtilir. REPAIR_ALLOW_DATA_LOSS seçeneğini kullanarak hataları düzeltmek için bazı sayfaların ve dolayısıyla verilerin silinmesi gerekebilir.

Sonuç kümeleri

DBCC CHECKFILEGROUP aşağıdaki sonuç kümesini döndürür (değerler değişebilir):

  • veya ESTIMATEONLY belirtildiği durumlar NO_INFOMSGS dışında.
  • Geçerli veritabanı için, veritabanı belirtilmezse, herhangi bir seçenek (hariç NOINDEX) belirtilip belirtilmediğinde.
DBCC results for 'master'.
DBCC results for 'sys.sysrowsetcolumns'.
There are 630 rows in 7 pages for object 'sys.sysrowsetcolumns'.
DBCC results for 'sys.sysrowsets'.
There are 97 rows in 1 pages for object 'sys.sysrowsets'.
DBCC results for 'sysallocunits'.
There are 195 rows in 3 pages for object 'sysallocunits'.
  
There are 2340 rows in 16 pages for object 'spt_values'.
DBCC results for 'MSreplication_options'.
There are 2 rows in 1 pages for object 'MSreplication_options'.
CHECKFILEGROUP found 0 allocation errors and 0 consistency errors in database 'master'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

belirtilirse NO_INFOMSGS , DBCC CHECKFILEGROUP şunu döndürür:

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

belirtilirse ESTIMATEONLY , DBCC CHECKFILEGROUP döndürür (değerler değişebilir):

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

Permissions

Sysadmin sabit sunucu rolüne veya db_owner sabit veritabanı rolüne üyelik gerektirir.

Örnekler

A. Veritabanında BİRİnCİl dosya grubunu denetleyin

Aşağıdaki örnek, geçerli veritabanının birincil dosya grubunu denetler.

DBCC CHECKFILEGROUP;
GO

B. AdventureWorks PRIMARY dosya grubunu kümelenmemiş dizinler olmadan denetleyin

Aşağıdaki örnek, birincil dosya grubunun kimlik numarasını belirterek ve belirterek AdventureWorks2025veritabanı birincil dosya grubunu (kümelenmemiş dizinler hariç) denetlerNOINDEX.

USE AdventureWorks2022;
GO
DBCC CHECKFILEGROUP (1, NOINDEX);
GO

C. PRIMARY dosya grubunu seçeneklerle denetleyin

Aşağıdaki örnek, veritabanı birincil dosya grubunu denetler master ve seçeneğini ESTIMATEONLYbelirtir.

USE master;
GO
DBCC CHECKFILEGROUP (1)
WITH ESTIMATEONLY;

Ayrıca bakınız