DBCC CHECKALLOC Nedir

Veritabanı oluştuturulduğunda ya da manual olarak büyütüldüğünde ya da auto growth ile büyüdüğünde disk üzerinden bir alan tahsis eder. DBCC CHECKALLOC komutu ile tahsis edilen bu alanda tutarlılık testi yapılır.

 

Aşağıdaki şekilde kullanabilirsiniz.

 

DBCC CHECKALLOC (N'ASPNETDB') WITH NO_INFOMSGS, ALL_ERRORMSGS;

 

DBCC CHECKDB Detayları” ve “Suspect Olmuş Veritabanını Kurtarmak” isimli makalemde anlattığım REPAIR_ALLOW_DATA_LOSS ile sorunları düzeltebilirsiniz ama REPAIR_REBUILD işlemi bu komut ile kullanılamaz.

 

NOT: DBCC CHECKALLOC komutunu REPAIR_ALLOW_DATA_LOSS ile çalıştırdıktan sonra DBCC CHECKCONSTRAINTS komutunu çalıştırmanızı öneririm. Bu komutla ilgili bilgiyi “DBCC CHECKCONSTRAINTS Nedir” isimli makalemde bulabilirsiniz.

 

Script’in sonundaki ALL_ERRORMSGS yazmasak bile default olarak bu şekilde kabul eder. Her nesne için alınan bütün hataları göster anlamına gelir.

 

Script’in sonundaki NO_INFOMSGS bilgilendirme mesajlarını gösterme anlamına gelir.

 

DBCC CHECKALLOC’da DBCC CHECKDB gibi internal database snapshot kullanır. “Database Snapshot Nedir ve Nasıl Alınır?” isimli makalemi okumak isteyebilirsiniz. Aşağıdaki komutu kullanarak çalıştırırsanız internal database snapshot kullanmak yerine veritabanı üzerinde exclusive lock koyar. “SQL Server Lock Çeşitleri” isimli makalemi okumak isteyebilirsiniz.

 

DBCC CHECKDB ve DBCC CHECKFILEGROUP komutlarını çalıştırırsanız DBCC CHECKALLOC çalıştırmanıza gerek kalmaz. İlgili komutların detaylarını aşağıdaki makalelerimden bulabilirsiniz.

 

 

DBCC CHECKDB Detayları“,

 

DBCC CHECKFILEGROUP Nedir ve Ne Zaman Kullanılır

 

Önemli bir detay olarak bu komutu tempdb veritabanında çalıştıramazsınız ve bu komut ile filestream verinin tutarlılığı kontrol edilmez. File Stream ile ilgili bilgiyi “File Stream Nedir” isimli makalemde bulabilirsiniz.

 

Loading

Leave Your Comment