DBCC CHECKALLOC (Transact-SQL)
Disk alanı ayırma yapıları belirtilen veritabanının tutarlılığını denetler.
DBCC CHECKALLOC
[
( database_name | database_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
)
[ WITH
{
[ ALL_ERRORMSGS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
}
]
]
Bağımsız değişkenler
database_name | database_id | 0
Veya ayırma ve sayfa kullanımını denetlemek, veritabanı kimliği adıdır.Belirtilmedi veya 0 belirtilirse, geçerli veritabanı kullanılır.Veritabanı adı gereken kuralları izleyintanımlayıcılar.
noindex
Kullanıcı tablosu için kümelenmemiş dizinler değil denetlenmesi belirtir.Not
NOINDEX yalnızca geriye dönük uyumluluk için korunur ve DBCC CHECKALLOC'u etkilemez.
repair_allow_data_loss | repair_fast | repair_rebuild
Specifies that DBCC CHECKALLOC repair the found errors.database_name must be in single-user mode.repair_allow_data_loss
Bulunan hatalar onarmaya çalışır.Bu onarım, bazı veri kaybına neden olabilir.REPAIR_ALLOW_DATA_LOSS onarılması ayırma hataları sağlayan tek seçenektir.repair_fast
Sözdizimi yalnızca geriye dönük uyumluluk için korunur.Hiçbir onarım eylemler gerçekleştirilir.repair_rebuild
Uygulanamaz.
Important Note: ONARıM seçenekleri yalnızca son çare olarak kullanın.Hataları onarmak için , bir yedekten geri yüklenmesi önerilir.Onarım işlemleri herhangi biri bulunabilir kısıtlamaları üzerinde veya tablolar arasında düşünün değil.Belirtilen tablo içinde bir veya daha fazla kısıtlamayı söz konusu ise, DBCC CHECKCONSTRAINTS bir onarım işleminden sonra çalışan öneririz.REPAIR kullanmanız gerekiyorsa, DBCC CHECKDB kullanmak için onarım düzey bulmak için onarım seçeneği olmadan çalıştırın.REPAIR_ALLOW_DATA_LOSS düzey kullanırsanız, bu seçenekle DBCC CHECKDB çalıştırmadan önce veritabanını yedeklemeniz önerilir.
With
Seçeneklerin belirtilmesine olanak sağlar.all_errormsgs
Tüm hata iletilerini görüntüler.Içinde SQL Server 2008 hizmet Pack 1 (SP1), tüm hata iletileri varsayılan olarak görüntülenir. Belirterek veya bu seçenek kullanılmazsa, hiçbir etkisi olmaz.' Ün önceki sürümlerinde SQL Server (dışında SQL Server 2005 SP3), ALL_ERRORMSGS belirtilmezse, yalnızca her nesne için ilk 200 hata iletileri görüntülenir.no_infomsgs
Tüm bilgilendirici iletileri ve raporda kullanılan alanı kaldırır.tablock
Bir veritabanını özel kullanım kilit elde etmek DBCC komutunu neden olur.YALNIZCA BİR TAHMİN
Tahmini miktarını görüntüler.tempdbdiğer seçenekleri belirlendiğinde DBCC CHECKALLOC'u çalıştırmak için gerekli olan alan.
Remarks
DBCC CHECKALLOC'u sayfa türünü veya ait oldukları nesne türü ne olursa olsun, veritabanındaki tüm sayfaları ayrılması denetler.Bu sayfalar ve aralarındaki ilişkileri izlemek için kullanılan çeşitli dahili yapıları da geçerliliğini denetler.
NO_INFOMSGS belirtilmezse, DBCC CHECKALLOC veritabanındaki tüm nesneler için alan kullanım bilgilerini toplar.Bu bilgiler daha sonra bulunan herhangi bir hata ile birlikte yazdırılır.
Not
The DBCC CHECKALLOC'u işlevselliği de dahilDBCC CHECKDB ve DBCC CHECKFILEGROUP . Bu, DBCC CHECKALLOC Bu ifadeler ayrı olarak çalıştırmak gerekmediği anlamına gelir.
Not
DBCC CHECKALLOC'u FILESTREAM verilerini denetlemez.FILESTREAM ikili büyük nesneleri (BLOBS) dosya sisteminde depolanır.
Iç veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüsü
DBCC CHECKALLOC, bu denetimleri gerçekleştirmek için gereken işlem tutarlılığı sağlamak için bir iç veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüyü kullanır.anlık görüntü görüntü oluşturulamaz veya TABLOCK belirtilen gerekli tutarlılık elde etmek için veritabanı üzerinde bir özel (X) kilit almak DBCC CHECKALLOC'u çalışır.Kilitlerin hakkında daha fazla bilgi için bkz: Kilit modu.
Not
InSQL Server 2005ve daha sonra DBCC CHECKALLOC'u karşıtempdbolmayan gerçekleştirmek tüm denetler.Performansı düşürmemek için veritabanı anlık görüntüleri üzerinde kullanılamaz, bunun nedeni tempdb. Bu işlem gerekli tutarlılığını alınamıyor anlamına gelir.Stop ve start MSSQLSERVER hizmetini herhangi gidermek içintempdbayırma sorun.Bu eylem engeller ve yeniden oluştururtempdbveritabanı.
DBCC hata iletileri'ni anlama
DBCC sonra CHECKALLOC'u komut tamamlandıktan, bir ileti yazılırSQL Serverhata günlüğüDBCC komutu başarıyla yürütür, iletiyi başarılı bir tamamlama ve miktarını gösterir saat komutu çalışan.Denetim bir hata nedeniyle tamamlamadan önce DBCC komutunu durdurur, iletinin durumu değeri ve miktarı çalıştırdığında, komut komut sonlandırıldı gösterir.Aşağıdaki tablo listeler ve iletide bulunan durum değerleri açıklanmaktadır.
STATE |
Açıklama |
---|---|
0 |
Hata numarası 8930 geçirilen.Bu, DBCC komut sona erdirmek neden bir meta veriler bozulması gösterir. |
1 |
Hata numarası 8967 geçirilen.DBCC iç hata oluştu. |
2 |
Acil Durum modu veritabanı onarım sırasında bir BIR hata oluştu. |
3 |
Bu, DBCC komut sona erdirmek neden bir meta veriler bozulması gösterir. |
4 |
Assert veya erişim ihlali algılandı. |
5 |
DBCC komut sonlandırıldı bilinmeyen bir hata oluştu. |
Hata Raporlama
Mini-döküm dosyası (SQLDUMP nnnn .txt) oluşturulan SQL ServerGünlük dizini her DBCC CHECKALLOC'u algılar bir bozulma hatası.Özellik kullanımı veri koleksiyon ve hata raporlama özellikleri örnek için etkinleştirildiğinde SQL Server, dosya otomatik olarak iletilir Microsoft. Toplanan veriler artırmak için kullanılır SQL Server işlevi.
Döküm dosyasını DBCC CHECKALLOC komutu ve ek tanılama çıkış sonuçlarını içerir.Dosya, isteğe bağlı erişim denetimi listelerinde (DACL) kısıtladı.Erişimi sınırlıdır SQL Server hesabı ve üyeleri hizmet sysadmin Rol. Varsayılan olarak, sysadmin Rol, Windows BUILTIN\Administrators grubu ve yerel yönetici grubunun tüm üyelerinin içerir. Veri koleksiyon işlemi başarısız olursa DBCC komutu başarısız değil.
Hataları giderme
DBCC CHECKALLOC'u herhangi bir hata bildirirse, onarım çalıştırmak yerine veritabanının yedek veritabanını geri yükleme öneririz.Yedek yoksa, onarım çalışan bildirilen hataları düzeltebilir; ancak hataları düzeltme bazı sayfaları ve bu nedenle veriler silinecek gerektirebilir.
Bir kullanıcı hareketine onarım gerçekleştirilebilir.Bu değişikliklerin geri alınması için izin verir.Değişiklikleri geri alınır, veritabanı hata yer alır ve bir yedek kopyadan geri yüklenmesi gerekir.Onarım işlemini tamamladıktan sonra veritabanını yedekleyin.
Sonuç Kümeleri
Aşağıdaki tabloda DBCC CHECKALLOC'u veren bilgiler açıklanmaktadır.
Öğe |
Açıklama |
---|---|
FirstIAM |
Yalnızca iç kullanım. |
Kök |
Yalnızca iç kullanım. |
Dpages |
Veri sayfa sayısı. |
Kullanılan sayfaları |
Ayrılmış sayfa. |
Özel alanları |
Nesneye ayrılmış alanları. Karma ayırma sayfaları kullandıysanız, sayfaları alanları ayrılmış olabilir. |
DBCC CHECKALLOC'u her dizin ve her dosya bölümünde Özet tahsisat de bildirir.Bu Özet verileri dağıtımını açıklar.
Öğe |
Açıklama |
---|---|
Ayrılmış sayfa |
Dizin ve ayrılmış alanları kullanılmayan sayfaları için sayfa. |
Kullanılan sayfaları |
Tahsis edilen sayfaları ve dizin tarafından kullanılıyor. |
Bölüm Kimliği |
Yalnızca iç kullanım. |
Birim kimliği tahsis |
Yalnızca iç kullanım. |
Satır verileri |
Sayfalar, dizini veya yığın veri içeriyor. |
LOB veri |
Sayfalar içerirvarchar(max),nvarchar(max),varbinary(max),text,ntext,xml, andimageveri. |
Verileri satır-taşma |
Satır kapalı itilmiş sütun değişken uzunlukta veri sayfaları içerir. |
DBCC CHECKALLOC'u aşağıdaki sonucu verir küme (değerleri değişebilir), ESTIMATEONLY veya NO_INFOMSGS, belirtilen dışında.
DBCC results for 'master'.
************************************************************* Table sysobjects Object ID 1. Index ID 1 FirstIAM (1:11) Root (1:12) Dpages 22. Index ID 1. 24 pages used in 5 dedicated extents. Index ID 2 FirstIAM (1:1368) Root (1:1362) Dpages 10. Index ID 2. 12 pages used in 2 dedicated extents. Index ID 3 FirstIAM (1:1392) Root (1:1408) Dpages 4. Index ID 3. 6 pages used in 0 dedicated extents. Total number of extents is 7. ************************************************************* '...' ************************************************************* Table spt_server_info Object ID 1938105945. Index ID 1 FirstIAM (1:520) Root (1:508) Dpages 1. Index ID 1. 3 pages used in 0 dedicated extents. Total number of extents is 0. ************************************************************* Processed 52 entries in sysindexes for database ID 1. File 1. Number of extents = 210, used pages = 1126, reserved pages = 1280. File 1 (number of mixed extents = 73, mixed pages = 184). Object ID 1, Index ID 0, data extents 5, pages 24, mixed extent pages 9. '...' Object ID 1938105945, Index ID 0, data extents 0, pages 3, mixed extent pages 3. Total number of extents = 210, used pages = 1126, reserved pages = 1280 in this database. (number of mixed extents = 73, mixed pages = 184) in this database. CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'. DBCC results for 'master'. ************************************************************* Table sys.sysrowsetcolumns Object ID 4. Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). FirstIAM (1:98). Root (1:94). Dpages 7. Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). 9 pages used in 1 dedicated extents. Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). FirstIAM (0:0). Root (0:0). Dpages 0. Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). 0 pages used in 0 dedicated extents. Total number of extents is 1. ... ************************************************************* Processed 201 entries in system catalog for database ID 1. File 1. Number of extents = 44, used pages = 300, reserved pages = 345. File 1 (number of mixed extents = 29, mixed pages = 225). Object ID 4, index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data), data extents 1, pages 9, mixed extent pages 8. Object ID 5, index ID 1, partition ID 327680, alloc unit ID 327680 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 7, index ID 1, partition ID 458752, alloc unit ID 458752 (type In-row data), data extents 0, pages 5, mixed extent pages 5. Object ID 8, index ID 0, partition ID 524288, alloc unit ID 524288 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 13, index ID 1, partition ID 851968, alloc unit ID 851968 (type In-row data), data extents 1, pages 9, mixed extent pages 8. Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 26, index ID 1, partition ID 281474978414592, alloc unit ID 1703937 (type In-row data), data extents 0, pages 3, mixed extent pages 3. Object ID 27, index ID 1, partition ID 281474978480128, alloc unit ID 1769473 (type In-row data), data extents 0, pages 3, mixed extent pages 3. Object ID 27, index ID 2, partition ID 562949955190784, alloc unit ID 1769474 (type In-row data), index extents 0, pages 3, mixed extent pages 3. ... Object ID 1179151246, index ID 1, partition ID 72057594038845440, alloc unit ID 13435136 (type In-row data), data extents 2, pages 18, mixed extent pages 8. Object ID 1179151246, index ID 2, partition ID 72057594038910976, alloc unit ID 13566208 (type In-row data), index extents 1, pages 16, mixed extent pages 8. Object ID 1911677858, index ID 0, partition ID 72057594039631872, alloc unit ID 15073536 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Total number of extents = 41, used pages = 289, reserved pages = 323 in this database. (number of mixed extents = 27, mixed pages = 211) in this database. CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
ESTIMATEONLY belirtildiğinde, DBCC CHECKALLOC'u aşağıdaki sonuç kümesi verir.
Estimated TEMPDB space needed for CHECKALLOC (KB)
-------------------------------------------------
34
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
İzinler
Üyelik gerektirir sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü.
Örnekler
Aşağıdaki örnek yürütür. DBCC CHECKALLOC ve geçerli veritabanı için AdventureWorks Veritabanı.
Değişiklik Geçmişi
Güncelleştirilmiş içerik |
---|
Yeni işlevler ALL_ERRORMSGS tanımında açıklanan SQL Server 2008 SP1. |
See Also