Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure 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:
- Dosya grubunun DBCC CHECKALLOC'u.
- Dosya grubundaki her tablonun ve dizine alınan görünümün DBCC CHECKTABLE'ı.
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 CHECKFILEGROUPkomutu 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
ESTIMATEONLYbelirtildiği durumlarNO_INFOMSGSdışı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;